From 7e1cfb47e1ce3b8fa15aef9ce78ed8a6b074a630 Mon Sep 17 00:00:00 2001 From: w30042960 Date: Mon, 21 Apr 2025 15:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: w30042960 --- .../services/src/av_sync_manager.cpp | 4 ++-- av_transport/common/include/av_sync_utils.h | 2 +- av_transport/common/src/av_sync_utils.cpp | 15 ++++++++------- .../common/test/unittest/av_sync_utils_test.cpp | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/av_transport/av_trans_control_center/services/src/av_sync_manager.cpp b/av_transport/av_trans_control_center/services/src/av_sync_manager.cpp index 5991dc2f..e6835b58 100644 --- a/av_transport/av_trans_control_center/services/src/av_sync_manager.cpp +++ b/av_transport/av_trans_control_center/services/src/av_sync_manager.cpp @@ -28,8 +28,8 @@ namespace DistributedHardware { AVSyncManager::AVSyncManager() { AVTRANS_LOGI("AVSyncManager ctor."); - sourceMemory_ = { 0, 0, "" }; - sinkMemory_ = { 0, 0, "" }; + sourceMemory_ = { -1, 0, "" }; + sinkMemory_ = { -1, 0, "" }; } AVSyncManager::~AVSyncManager() diff --git a/av_transport/common/include/av_sync_utils.h b/av_transport/common/include/av_sync_utils.h index 62a7033e..fd36f963 100644 --- a/av_transport/common/include/av_sync_utils.h +++ b/av_transport/common/include/av_sync_utils.h @@ -48,7 +48,7 @@ AVTransSharedMemory CreateAVTransSharedMemory(const std::string &name, size_t si * @brief close shared memory space. * @param memory shared memory. */ -void CloseAVTransSharedMemory(const AVTransSharedMemory &memory) noexcept; +void CloseAVTransSharedMemory(AVTransSharedMemory &memory) noexcept; /** * @brief write the clock unit into the shared memory space. diff --git a/av_transport/common/src/av_sync_utils.cpp b/av_transport/common/src/av_sync_utils.cpp index 98729d43..9699cdde 100644 --- a/av_transport/common/src/av_sync_utils.cpp +++ b/av_transport/common/src/av_sync_utils.cpp @@ -30,9 +30,9 @@ namespace DistributedHardware { AVTransSharedMemory CreateAVTransSharedMemory(const std::string &name, size_t size) { int32_t fd = AshmemCreate(name.c_str(), size); - if (fd <= 0) { + if (fd < 0) { AVTRANS_LOGE("create av trans shared memory failed, name=%{public}s, fd=%{public}" PRId32, name.c_str(), fd); - return AVTransSharedMemory{0, 0, name}; + return AVTransSharedMemory{-1, 0, name}; } unsigned int prot = PROT_READ | PROT_WRITE; @@ -40,21 +40,21 @@ AVTransSharedMemory CreateAVTransSharedMemory(const std::string &name, size_t si if (result < 0) { AVTRANS_LOGE("AshmemSetProt failed, name=%{public}s, fd=%{public}" PRId32, name.c_str(), fd); (void)::close(fd); - return AVTransSharedMemory{0, 0, name}; + return AVTransSharedMemory{-1, 0, name}; } void *addr = ::mmap(nullptr, size, static_cast(prot), MAP_SHARED, fd, 0); if (addr == MAP_FAILED) { AVTRANS_LOGE("shared memory mmap failed, name=%{public}s, fd=%{public}" PRId32, name.c_str(), fd); (void)::close(fd); - return AVTransSharedMemory{0, 0, name}; + return AVTransSharedMemory{-1, 0, name}; } uint8_t *base = reinterpret_cast(addr); if (memset_s(base, size, INVALID_VALUE_FALG, size) != EOK) { AVTRANS_LOGE("memset_s failed."); (void)::close(fd); - return AVTransSharedMemory{0, 0, name}; + return AVTransSharedMemory{-1, 0, name}; } uint64_t tmpsize = static_cast(size); AVTRANS_LOGI("create av trans shared memory success, name=%{public}s, size=%{public}" PRIu64 ", fd=%{public}" @@ -62,7 +62,7 @@ AVTransSharedMemory CreateAVTransSharedMemory(const std::string &name, size_t si return AVTransSharedMemory{fd, size, name}; } -void CloseAVTransSharedMemory(const AVTransSharedMemory &memory) noexcept +void CloseAVTransSharedMemory(AVTransSharedMemory &memory) noexcept { AVTRANS_LOGI("close shared memory, name=%{public}s, size=%{public}" PRId32 ", fd=%{public}" PRId32, memory.name.c_str(), memory.size, memory.fd); @@ -70,8 +70,9 @@ void CloseAVTransSharedMemory(const AVTransSharedMemory &memory) noexcept AVTRANS_LOGE("invalid input shared memory"); return; } - if (memory.fd > 0) { + if (memory.fd >= 0) { (void)::close(memory.fd); + memory.fd = -1; } } diff --git a/av_transport/common/test/unittest/av_sync_utils_test.cpp b/av_transport/common/test/unittest/av_sync_utils_test.cpp index 0864867d..11c2a283 100644 --- a/av_transport/common/test/unittest/av_sync_utils_test.cpp +++ b/av_transport/common/test/unittest/av_sync_utils_test.cpp @@ -61,7 +61,7 @@ HWTEST_F(AvSyncUtilsTest, CreateAVTransSharedMemory_001, TestSize.Level0) std::string name = ""; size_t size = 0; auto ret = CreateAVTransSharedMemory(name, size); - EXPECT_EQ(0, ret.fd); + EXPECT_EQ(-1, ret.fd); } HWTEST_F(AvSyncUtilsTest, CloseAVTransSharedMemory_001, TestSize.Level0) -- Gitee