diff --git a/services/audioclient/spkclient/src/dspeaker_client.cpp b/services/audioclient/spkclient/src/dspeaker_client.cpp index 4a2ecd77c533b16b7177156e8fe649bee7844082..107f619f77da6f244700f971c2c7d591660c28d3 100644 --- a/services/audioclient/spkclient/src/dspeaker_client.cpp +++ b/services/audioclient/spkclient/src/dspeaker_client.cpp @@ -266,7 +266,7 @@ void DSpeakerClient::PlayThreadRunning() void DSpeakerClient::FillJitterQueue() { - while (true) { + while (isRenderReady_.load()) { { std::lock_guard lock(dataQueueMtx_); if (dataQueue_.size() >= DATA_QUEUE_SIZE) { diff --git a/services/audiomanager/managersink/include/daudio_sink_manager.h b/services/audiomanager/managersink/include/daudio_sink_manager.h index 799e55e77f42a2baef09a0375bbf257981c87c61..4b1df962a506c553ba2608241f611d0defb8481f 100644 --- a/services/audiomanager/managersink/include/daudio_sink_manager.h +++ b/services/audiomanager/managersink/include/daudio_sink_manager.h @@ -65,6 +65,7 @@ private: std::thread devClearThread_; std::string localNetworkId_; + std::shared_ptr providerListener_; IAVEngineProvider *sendProviderPtr_ = nullptr; IAVEngineProvider *rcvProviderPtr_ = nullptr; void *pSHandler_ = nullptr; diff --git a/services/audiomanager/managersink/src/daudio_sink_manager.cpp b/services/audiomanager/managersink/src/daudio_sink_manager.cpp index 721da665a749a94859a331983655226e4b6578a6..93a36c373d0ed4ca348eae0deacb20a8ed5b6d3f 100644 --- a/services/audiomanager/managersink/src/daudio_sink_manager.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_manager.cpp @@ -70,7 +70,8 @@ int32_t DAudioSinkManager::Init() DHLOGE("Load av transport receiver engine provider failed."); return ERR_DH_AUDIO_FAILED; } - ret = rcvProviderPtr_->RegisterProviderCallback(std::make_shared()); + providerListener_ = std::make_shared(); + ret = rcvProviderPtr_->RegisterProviderCallback(providerListener_); if (ret != DH_SUCCESS) { DHLOGE("Register av transport receiver Provider Callback failed."); return ERR_DH_AUDIO_FAILED; @@ -82,7 +83,7 @@ int32_t DAudioSinkManager::Init() DHLOGI("Load av transport sender engine provider failed."); return ERR_DH_AUDIO_FAILED; } - ret = sendProviderPtr_->RegisterProviderCallback(std::make_shared()); + ret = sendProviderPtr_->RegisterProviderCallback(providerListener_); if (ret != DH_SUCCESS) { DHLOGE("Register av transport sender Provider Callback failed."); return ERR_DH_AUDIO_FAILED; @@ -322,13 +323,13 @@ int32_t EngineProviderListener::OnProviderEvent(const AVTransEvent &event) { DHLOGI("On provider event :%d", event.type); if (event.type == EventType::EVENT_CHANNEL_OPENED) { - DHLOGI("CreateAudioDevice enter"); + DHLOGI("Received control channel opened event, create audio device for peerDevId=%s", + GetAnonyString(event.peerDevId).c_str()); DAudioSinkManager::GetInstance().CreateAudioDevice(event.peerDevId); - DHLOGI("CreateAudioDevice end"); } else if (event.type == EventType::EVENT_CHANNEL_CLOSED) { - DHLOGI("CreateAudioDevice enter"); + DHLOGI("Received control channel closed event, clear audio device for peerDevId=%s", + GetAnonyString(event.peerDevId).c_str()); DAudioSinkManager::GetInstance().ClearAudioDev(event.peerDevId); - DHLOGI("CreateAudioDevice end"); } else { DHLOGE("Invaild event type."); } diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index cd5e4f4d56b19ca2862c7373c6a4b0ec7af0b6c1..8df471f0f2d937a000a33b2e90362a34218edafc 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -453,6 +453,8 @@ int32_t DAudioSourceDev::WaitForRPC(const AudioEventType type) DHLOGE("RPC notify Result Failed."); return ERR_DH_AUDIO_FAILED; } + rpcNotify_ = 0; + rpcResult_ = false; DHLOGD("Receive sink device notify type: %d.", type); return DH_SUCCESS; } diff --git a/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp b/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp index 19fe5c1582f61a86f32b4f5eaafb6b404fb14b06..4c00302b79071e777cdbee0407da3636be1fab2d 100644 --- a/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp +++ b/services/audiotransport/receiverengine/src/av_receiver_engine_adapter.cpp @@ -56,6 +56,7 @@ int32_t AVTransReceiverAdapter::Release() } initialized_ = false; receiverEngine_ = nullptr; + chnCreateSuccess_ = false; return DH_SUCCESS; } diff --git a/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp b/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp index 30860276896d55c7688f8efce25b7fd9dcb5e9cb..bf1e0ba9ea295b29a2d80b3802c0b0b22cf69b9b 100644 --- a/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp +++ b/services/audiotransport/senderengine/src/av_sender_engine_adapter.cpp @@ -61,6 +61,7 @@ int32_t AVTransSenderAdapter::Release() } initialized_ = false; senderEngine_ = nullptr; + chnCreateSuccess_ = false; return DH_SUCCESS; }