From a53ce39b2916486d51985b856edaa4b8833f4a6d Mon Sep 17 00:00:00 2001 From: hwwuhaobo Date: Tue, 4 Jul 2023 16:07:08 +0800 Subject: [PATCH] modify flag in release Signed-off-by: hwwuhaobo --- .../audioclient/spkclient/src/dspeaker_client.cpp | 2 +- .../managersink/include/daudio_sink_manager.h | 1 + .../managersink/src/daudio_sink_manager.cpp | 13 +++++++------ .../managersource/src/daudio_source_dev.cpp | 2 ++ .../src/av_receiver_engine_adapter.cpp | 1 + .../senderengine/src/av_sender_engine_adapter.cpp | 1 + 6 files changed, 13 insertions(+), 7 deletions(-) diff --git a/services/audioclient/spkclient/src/dspeaker_client.cpp b/services/audioclient/spkclient/src/dspeaker_client.cpp index 4a2ecd77..107f619f 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 799e55e7..4b1df962 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 721da665..93a36c37 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 cd5e4f4d..8df471f0 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 19fe5c15..4c00302b 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 30860276..bf1e0ba9 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; } -- Gitee