From 1f3e07ba43d33ee4ee677bf997a19678d7cc8025 Mon Sep 17 00:00:00 2001 From: yangli <1220629463@qq.com> Date: Thu, 18 Jan 2024 18:27:05 +0800 Subject: [PATCH 1/4] 0118 Signed-off-by: yangli <1220629463@qq.com> --- .../dscreenmgr/2.0/src/av_sender_engine_adapter.cpp | 10 ++++++---- .../sourceservice/dscreenmgr/2.0/src/dscreen.cpp | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp index d708c421..df602e74 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp @@ -206,8 +206,9 @@ int32_t AVTransSenderAdapter::RegisterAdapterCallback(const std::shared_ptr lock(chnCreatedMtx_); - auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS)); - if (status == std::cv_status::timeout) { + auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), + [this]() {return chnCreateSuccess_.load() ? true : false; }); + if (!status) { DHLOGE("wait for av transport sender channel created timeout"); return ERR_DH_AV_TRANS_TIMEOUT; } @@ -221,8 +222,9 @@ int32_t AVTransSenderAdapter::WaitForChannelCreated() int32_t AVTransSenderAdapter::WaitForAVTransStarted() { std::unique_lock lock(transStartedMtx_); - auto status = transStartedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS)); - if (status == std::cv_status::timeout) { + auto status = transStartedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), + [this]() {return transStartSuccess_.load() ? true : false; }); + if (!status) { DHLOGE("wait for av transport sender started timeout"); return ERR_DH_AV_TRANS_TIMEOUT; } diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp index 41ccbcbb..8e663d9a 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp @@ -80,6 +80,7 @@ DScreen::~DScreen() ScreenMgrAdapter::GetInstance().RemoveVirtualScreen(screenId_); videoParam_ = nullptr; senderAdapter_ = nullptr; + sinkStartSuccess_ = false; DHLOGD("DScreen deconstruct end."); } @@ -498,7 +499,8 @@ int32_t DScreen::SetUp() int32_t DScreen::WaitForSinkStarted() { std::unique_lock lock(waitSinkMtx_); - auto status = waitSinkCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS)); + auto status = waitSinkCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), + [this]() {return chnCreateSuccess_.load(); }); if (status == std::cv_status::timeout) { DHLOGE("wait for sink device engine start timeout"); return ERR_DH_AV_TRANS_TIMEOUT; -- Gitee From 70c7a3ba3b15150ef5d277a1b8d949284dd89d1f Mon Sep 17 00:00:00 2001 From: yangli <1220629463@qq.com> Date: Thu, 18 Jan 2024 18:32:39 +0800 Subject: [PATCH 2/4] 0118 Signed-off-by: yangli <1220629463@qq.com> --- .../sourceservice/dscreenmgr/2.0/src/dscreen.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp index 8e663d9a..73736713 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp @@ -500,8 +500,8 @@ int32_t DScreen::WaitForSinkStarted() { std::unique_lock lock(waitSinkMtx_); auto status = waitSinkCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), - [this]() {return chnCreateSuccess_.load(); }); - if (status == std::cv_status::timeout) { + [this]() {return sinkStartSuccess_.load() ? true : false; }); + if (!status) { DHLOGE("wait for sink device engine start timeout"); return ERR_DH_AV_TRANS_TIMEOUT; } -- Gitee From 9e776d7aeff40c662781f4e6fe713e151a421312 Mon Sep 17 00:00:00 2001 From: yangli <1220629463@qq.com> Date: Thu, 18 Jan 2024 20:05:43 +0800 Subject: [PATCH 3/4] 0118 Signed-off-by: yangli <1220629463@qq.com> --- .../dscreenmgr/2.0/src/av_sender_engine_adapter.cpp | 4 ++-- .../sourceservice/dscreenmgr/2.0/src/dscreen.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp index df602e74..c6bbb0c3 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp @@ -207,7 +207,7 @@ int32_t AVTransSenderAdapter::WaitForChannelCreated() { std::unique_lock lock(chnCreatedMtx_); auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), - [this]() {return chnCreateSuccess_.load() ? true : false; }); + [this]() { return chnCreateSuccess_.load() ? true : false; }); if (!status) { DHLOGE("wait for av transport sender channel created timeout"); return ERR_DH_AV_TRANS_TIMEOUT; @@ -223,7 +223,7 @@ int32_t AVTransSenderAdapter::WaitForAVTransStarted() { std::unique_lock lock(transStartedMtx_); auto status = transStartedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), - [this]() {return transStartSuccess_.load() ? true : false; }); + [this]() { return transStartSuccess_.load() ? true : false; }); if (!status) { DHLOGE("wait for av transport sender started timeout"); return ERR_DH_AV_TRANS_TIMEOUT; diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp index 73736713..e4ab7ddd 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp @@ -500,7 +500,7 @@ int32_t DScreen::WaitForSinkStarted() { std::unique_lock lock(waitSinkMtx_); auto status = waitSinkCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), - [this]() {return sinkStartSuccess_.load() ? true : false; }); + [this]() { return sinkStartSuccess_.load() ? true : false; }); if (!status) { DHLOGE("wait for sink device engine start timeout"); return ERR_DH_AV_TRANS_TIMEOUT; -- Gitee From 0b70e275bc5a1472ea5129015e87a50edc82c940 Mon Sep 17 00:00:00 2001 From: yangli <1220629463@qq.com> Date: Fri, 19 Jan 2024 12:17:21 +0800 Subject: [PATCH 4/4] 0117 Signed-off-by: yangli <1220629463@qq.com> --- .../dscreenmgr/2.0/src/av_sender_engine_adapter.cpp | 4 ++-- .../sourceservice/dscreenmgr/2.0/src/dscreen.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp index c6bbb0c3..1b0d0993 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/av_sender_engine_adapter.cpp @@ -207,7 +207,7 @@ int32_t AVTransSenderAdapter::WaitForChannelCreated() { std::unique_lock lock(chnCreatedMtx_); auto status = chnCreatedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), - [this]() { return chnCreateSuccess_.load() ? true : false; }); + [this]() { return chnCreateSuccess_.load(); }); if (!status) { DHLOGE("wait for av transport sender channel created timeout"); return ERR_DH_AV_TRANS_TIMEOUT; @@ -223,7 +223,7 @@ int32_t AVTransSenderAdapter::WaitForAVTransStarted() { std::unique_lock lock(transStartedMtx_); auto status = transStartedCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), - [this]() { return transStartSuccess_.load() ? true : false; }); + [this]() { return transStartSuccess_.load(); }); if (!status) { DHLOGE("wait for av transport sender started timeout"); return ERR_DH_AV_TRANS_TIMEOUT; diff --git a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp index e4ab7ddd..d3dd8195 100644 --- a/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp +++ b/services/screenservice/sourceservice/dscreenmgr/2.0/src/dscreen.cpp @@ -500,7 +500,7 @@ int32_t DScreen::WaitForSinkStarted() { std::unique_lock lock(waitSinkMtx_); auto status = waitSinkCondVar_.wait_for(lock, std::chrono::milliseconds(WAIT_TIMEOUT_MS), - [this]() { return sinkStartSuccess_.load() ? true : false; }); + [this]() { return sinkStartSuccess_.load(); }); if (!status) { DHLOGE("wait for sink device engine start timeout"); return ERR_DH_AV_TRANS_TIMEOUT; -- Gitee