From 9c1b40623f9752b4e3ee18f0226d7fabfbbc1ee7 Mon Sep 17 00:00:00 2001 From: xieqin Date: Wed, 27 Nov 2024 15:36:37 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A6=96=E6=AC=A1?= =?UTF-8?q?onStart=E5=9B=9E=E8=B0=83=E5=8F=82=E6=95=B0=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vap_module/src/main/cpp/include/player.h | 3 +++ vap_module/src/main/cpp/player.cpp | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/vap_module/src/main/cpp/include/player.h b/vap_module/src/main/cpp/include/player.h index 48d2d2c..9ecf24c 100644 --- a/vap_module/src/main/cpp/include/player.h +++ b/vap_module/src/main/cpp/include/player.h @@ -123,6 +123,9 @@ private: std::mutex mutex_; std::unique_ptr decInputThread_ = nullptr; std::unique_ptr decOutputThread_ = nullptr; + std::mutex callBackMutex_; + bool isRenderThreadInitialized_ = false; + std::condition_variable callbackCond_; VAPInfo sampleInfo_; int32_t stride_ = 0; diff --git a/vap_module/src/main/cpp/player.cpp b/vap_module/src/main/cpp/player.cpp index 4a2d0ac..48cf161 100644 --- a/vap_module/src/main/cpp/player.cpp +++ b/vap_module/src/main/cpp/player.cpp @@ -202,6 +202,9 @@ int32_t Player::Start() Release(); return AV_ERR_UNKNOWN; } + + std::unique_lock lock(callBackMutex_); + callbackCond_.wait(lock, [this] { return isRenderThreadInitialized_; }); CallBackJS(VapState::START, CallbackType::STATE_CHANGE); return AV_ERR_OK; } @@ -355,6 +358,12 @@ void Player::RenderThread() } InitJSAnimConfig(); + { + std::lock_guard lock(callBackMutex_); + isRenderThreadInitialized_ = true; + } + callbackCond_.notify_one(); + while (!isStop_ && isStarted_) { thread_local auto lastPushTime = std::chrono::system_clock::now(); if (isVideoEndOfFile_) { -- Gitee From 83ce8898441ad680c7062a079c581d4406cfab69 Mon Sep 17 00:00:00 2001 From: xieqin Date: Tue, 10 Dec 2024 15:39:23 +0800 Subject: [PATCH 2/3] =?UTF-8?q?Revert=20"fix:=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=A6=96=E6=AC=A1onStart=E5=9B=9E=E8=B0=83=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=BC=82=E5=B8=B8"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 9c1b40623f9752b4e3ee18f0226d7fabfbbc1ee7. --- vap_module/src/main/cpp/include/player.h | 3 --- vap_module/src/main/cpp/player.cpp | 9 --------- 2 files changed, 12 deletions(-) diff --git a/vap_module/src/main/cpp/include/player.h b/vap_module/src/main/cpp/include/player.h index 9ecf24c..48d2d2c 100644 --- a/vap_module/src/main/cpp/include/player.h +++ b/vap_module/src/main/cpp/include/player.h @@ -123,9 +123,6 @@ private: std::mutex mutex_; std::unique_ptr decInputThread_ = nullptr; std::unique_ptr decOutputThread_ = nullptr; - std::mutex callBackMutex_; - bool isRenderThreadInitialized_ = false; - std::condition_variable callbackCond_; VAPInfo sampleInfo_; int32_t stride_ = 0; diff --git a/vap_module/src/main/cpp/player.cpp b/vap_module/src/main/cpp/player.cpp index 48cf161..4a2d0ac 100644 --- a/vap_module/src/main/cpp/player.cpp +++ b/vap_module/src/main/cpp/player.cpp @@ -202,9 +202,6 @@ int32_t Player::Start() Release(); return AV_ERR_UNKNOWN; } - - std::unique_lock lock(callBackMutex_); - callbackCond_.wait(lock, [this] { return isRenderThreadInitialized_; }); CallBackJS(VapState::START, CallbackType::STATE_CHANGE); return AV_ERR_OK; } @@ -358,12 +355,6 @@ void Player::RenderThread() } InitJSAnimConfig(); - { - std::lock_guard lock(callBackMutex_); - isRenderThreadInitialized_ = true; - } - callbackCond_.notify_one(); - while (!isStop_ && isStarted_) { thread_local auto lastPushTime = std::chrono::system_clock::now(); if (isVideoEndOfFile_) { -- Gitee From ccbe9d91a4dd1d65e478491993e141f4c0534ceb Mon Sep 17 00:00:00 2001 From: xieqin Date: Tue, 10 Dec 2024 15:44:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4START=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E5=9B=9E=E8=B0=83=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vap_module/src/main/cpp/player.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vap_module/src/main/cpp/player.cpp b/vap_module/src/main/cpp/player.cpp index 4a2d0ac..b6ab84b 100644 --- a/vap_module/src/main/cpp/player.cpp +++ b/vap_module/src/main/cpp/player.cpp @@ -202,7 +202,6 @@ int32_t Player::Start() Release(); return AV_ERR_UNKNOWN; } - CallBackJS(VapState::START, CallbackType::STATE_CHANGE); return AV_ERR_OK; } @@ -355,6 +354,8 @@ void Player::RenderThread() } InitJSAnimConfig(); + CallBackJS(VapState::START, CallbackType::STATE_CHANGE); + while (!isStop_ && isStarted_) { thread_local auto lastPushTime = std::chrono::system_clock::now(); if (isVideoEndOfFile_) { -- Gitee