From 130ee2d62e03be2edc88482ba9d497a5fb8b06dd Mon Sep 17 00:00:00 2001 From: Kushal Jain Date: Wed, 4 Sep 2024 13:40:40 +0530 Subject: [PATCH 1/6] remove libre & baresip --- base/CMakeLists.txt | 6 ------ base/vcpkg.json | 8 -------- 2 files changed, 14 deletions(-) diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index a0891c043..a463baed0 100755 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -92,8 +92,6 @@ IF(ENABLE_CUDA) find_library(NVBUFUTILSLIB nvbuf_utils REQUIRED) find_library(EGLSTREAM_CAMCONSUMER_LIB nveglstream_camconsumer REQUIRED) find_library(NVARGUS_SOCKETCLINET_LIB nvargus_socketclient REQUIRED) - find_library(LIBRE_LIB NAMES libre.so libre.a REQUIRED) - find_library(BARESIP_LIB NAMES libbaresip.so REQUIRED) find_package(Curses REQUIRED) set(VCPKG_GTK_INCLUDE_DIRS @@ -127,8 +125,6 @@ IF(ENABLE_CUDA) ELSEIF(ENABLE_LINUX) find_library(LIBNVCUVID libnvcuvid.so PATHS /usr/lib/x86_64-linux-gnu NO_DEFAULT_PATH) find_library(LIBNVENCODE libnvidia-encode.so PATHS /usr/lib/x86_64-linux-gnu NO_DEFAULT_PATH) - find_library(LIBRE_LIB NAMES libre.so libre.a REQUIRED) - find_library(BARESIP_LIB NAMES libbaresip.so REQUIRED) SET(NVCODEC_LIB ${LIBNVCUVID} ${LIBNVENCODE}) SET(NVCUDAToolkit_LIBS libcuda.so @@ -512,8 +508,6 @@ target_include_directories ( aprapipes PRIVATE ${OpenCV_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${LIBMP4_INC_DIR} - ${BARESIP_INC_DIR} - ${LIBRE_INC_DIR} ${NVCODEC_INCLUDE_DIR} ) diff --git a/base/vcpkg.json b/base/vcpkg.json index b030aaefb..86632fbed 100644 --- a/base/vcpkg.json +++ b/base/vcpkg.json @@ -85,14 +85,6 @@ "name": "redis-plus-plus", "platform": "!arm64" }, - { - "name": "re", - "platform": "!windows" - }, - { - "name": "baresip", - "platform": "!windows" - }, { "name": "libmp4" } From 39c24b6c56c08de5469b14db71ef1b80153b3ca9 Mon Sep 17 00:00:00 2001 From: Kushal Jain <155632770+kushaljain-apra@users.noreply.github.com> Date: Mon, 16 Sep 2024 16:44:55 +0530 Subject: [PATCH 2/6] Update H264EncoderNVCodecHelper.cpp --- base/src/H264EncoderNVCodecHelper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/base/src/H264EncoderNVCodecHelper.cpp b/base/src/H264EncoderNVCodecHelper.cpp index c1463b240..6f1226258 100644 --- a/base/src/H264EncoderNVCodecHelper.cpp +++ b/base/src/H264EncoderNVCodecHelper.cpp @@ -603,7 +603,7 @@ class H264EncoderNVCodecHelper::Detail LOG_INFO << "Allocated <" << bufferLength << "> outputbitstreams to the encoder buffer."; m_nvcodecResources->m_nFreeOutputBitstreams += bufferLength; } - else + else if(!m_nvcodecResources->m_nFreeOutputBitstreams) { LOG_INFO << "waiting for free outputbitstream<> busy streams<" << m_nvcodecResources->m_nBusyOutputBitstreams << ">"; } @@ -715,4 +715,4 @@ void H264EncoderNVCodecHelper::endEncode() bool H264EncoderNVCodecHelper::getSPSPPS(void*& buffer, size_t& size, int& width, int& height) { return mDetail->getSPSPPS(buffer, size, width, height); -} \ No newline at end of file +} From e451b0579ea2c9816701159e48cff772a63851d8 Mon Sep 17 00:00:00 2001 From: Kushal Jain Date: Tue, 17 Sep 2024 11:43:09 +0530 Subject: [PATCH 3/6] added fix to terminate the control module with the pipeline --- base/src/PipeLine.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/base/src/PipeLine.cpp b/base/src/PipeLine.cpp index 0bc0f9d79..99f289d99 100755 --- a/base/src/PipeLine.cpp +++ b/base/src/PipeLine.cpp @@ -247,6 +247,12 @@ void PipeLine::wait_for_all(bool ignoreStatus) Module& m = *(i->get()); m.myThread.join(); } + + if ((modules[0]->controlModule) != nullptr) + { + Module& m = *(modules[0]->controlModule); + m.myThread.join(); + } } @@ -264,11 +270,24 @@ void PipeLine::interrup_wait_for_all() m.myThread.interrupt(); } + if ((modules[0]->controlModule) != nullptr) + { + Module& m = *(modules[0]->controlModule); + m.myThread.interrupt(); + } + for (auto i = modules.begin(); i != modules.end(); i++) { Module& m = *(i->get()); m.myThread.join(); } + + if ((modules[0]->controlModule) != nullptr) + { + Module& m = *(modules[0]->controlModule); + m.myThread.join(); + } + myStatus = PL_STOPPED; } From 94c9c0f8037560cd9c6bb44c95d0a95c90f231ec Mon Sep 17 00:00:00 2001 From: Kushal Jain Date: Tue, 17 Sep 2024 12:28:15 +0530 Subject: [PATCH 4/6] fix typo --- base/include/PipeLine.h | 2 +- base/src/PipeLine.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/base/include/PipeLine.h b/base/include/PipeLine.h index b47b0d035..f15dad608 100755 --- a/base/include/PipeLine.h +++ b/base/include/PipeLine.h @@ -47,7 +47,7 @@ class PipeLine { void stop(); void term(); void wait_for_all(bool ignoreStatus = false); - void interrup_wait_for_all(); + void interrupt_wait_for_all(); void flushAllQueues(); const char* getStatus(); }; diff --git a/base/src/PipeLine.cpp b/base/src/PipeLine.cpp index 99f289d99..dc128efdc 100755 --- a/base/src/PipeLine.cpp +++ b/base/src/PipeLine.cpp @@ -161,7 +161,7 @@ void PipeLine::run_all_threaded() } if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule); + Module& m = *(modules[0]->controlModule->get()); m.myThread = boost::thread(ref(m)); } mPlay = true; @@ -250,13 +250,13 @@ void PipeLine::wait_for_all(bool ignoreStatus) if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule); + Module& m = *(modules[0]->controlModule->get()); m.myThread.join(); } } -void PipeLine::interrup_wait_for_all() +void PipeLine::interrupt_wait_for_all() { if (myStatus > PL_STOPPING) { @@ -272,7 +272,7 @@ void PipeLine::interrup_wait_for_all() if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule); + Module& m = *(modules[0]->controlModule->get()); m.myThread.interrupt(); } @@ -284,7 +284,7 @@ void PipeLine::interrup_wait_for_all() if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule); + Module& m = *(modules[0]->controlModule->get()); m.myThread.join(); } From b9a5ea2ca59f1f42d9cc50eb4e802a1071357fe9 Mon Sep 17 00:00:00 2001 From: Kushal Jain Date: Tue, 17 Sep 2024 12:52:14 +0530 Subject: [PATCH 5/6] revert changes --- base/src/PipeLine.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/base/src/PipeLine.cpp b/base/src/PipeLine.cpp index dc128efdc..ac71af661 100755 --- a/base/src/PipeLine.cpp +++ b/base/src/PipeLine.cpp @@ -161,7 +161,7 @@ void PipeLine::run_all_threaded() } if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule->get()); + Module& m = *(modules[0]->controlModule); m.myThread = boost::thread(ref(m)); } mPlay = true; @@ -250,7 +250,7 @@ void PipeLine::wait_for_all(bool ignoreStatus) if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule->get()); + Module& m = *(modules[0]->controlModule); m.myThread.join(); } } @@ -272,7 +272,7 @@ void PipeLine::interrupt_wait_for_all() if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule->get()); + Module& m = *(modules[0]->controlModule); m.myThread.interrupt(); } @@ -284,7 +284,7 @@ void PipeLine::interrupt_wait_for_all() if ((modules[0]->controlModule) != nullptr) { - Module& m = *(modules[0]->controlModule->get()); + Module& m = *(modules[0]->controlModule); m.myThread.join(); } From 42550e305c609d0e9fd7f368db5a1f489607e9ae Mon Sep 17 00:00:00 2001 From: Kushal Jain Date: Tue, 17 Sep 2024 18:00:36 +0530 Subject: [PATCH 6/6] update pipeline.cpp to stop and terminate control module with pipeline --- base/src/PipeLine.cpp | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/base/src/PipeLine.cpp b/base/src/PipeLine.cpp index ac71af661..2a5ae6382 100755 --- a/base/src/PipeLine.cpp +++ b/base/src/PipeLine.cpp @@ -232,6 +232,11 @@ void PipeLine::stop() i->get()->stop(); } } + + if ((modules[0]->controlModule) != nullptr) + { + modules[0]->controlModule->stop(); + } } void PipeLine::wait_for_all(bool ignoreStatus) @@ -242,15 +247,15 @@ void PipeLine::wait_for_all(bool ignoreStatus) return; } - for (auto i = modules.begin(); i != modules.end(); i++) + if ((modules[0]->controlModule) != nullptr) { - Module& m = *(i->get()); + Module& m = *(modules[0]->controlModule); m.myThread.join(); } - if ((modules[0]->controlModule) != nullptr) + for (auto i = modules.begin(); i != modules.end(); i++) { - Module& m = *(modules[0]->controlModule); + Module& m = *(i->get()); m.myThread.join(); } } @@ -264,12 +269,6 @@ void PipeLine::interrupt_wait_for_all() return; } - for (auto i = modules.begin(); i != modules.end(); i++) - { - Module& m = *(i->get()); - m.myThread.interrupt(); - } - if ((modules[0]->controlModule) != nullptr) { Module& m = *(modules[0]->controlModule); @@ -279,7 +278,7 @@ void PipeLine::interrupt_wait_for_all() for (auto i = modules.begin(); i != modules.end(); i++) { Module& m = *(i->get()); - m.myThread.join(); + m.myThread.interrupt(); } if ((modules[0]->controlModule) != nullptr) @@ -288,6 +287,12 @@ void PipeLine::interrupt_wait_for_all() m.myThread.join(); } + for (auto i = modules.begin(); i != modules.end(); i++) + { + Module& m = *(i->get()); + m.myThread.join(); + } + myStatus = PL_STOPPED; }