diff --git a/codec/hal/idl_service/src/component_node.cpp b/codec/hal/idl_service/src/component_node.cpp index ec2cd275a7537916b143b43df34cce96613b932f..341e5c7ce341db29138ad9a5dab54dedc529fa74 100644 --- a/codec/hal/idl_service/src/component_node.cpp +++ b/codec/hal/idl_service/src/component_node.cpp @@ -438,19 +438,23 @@ int32_t ComponentNode::AllocateBuffer(uint32_t portIndex, OmxCodecBuffer &buffer int32_t ComponentNode::FreeBuffer(uint32_t portIndex, const OmxCodecBuffer &buffer) { - std::unique_lock poolLock(poolMutex_); - uint32_t bufferId = buffer.bufferId; - auto iter = std::find_if(bufferPool_.begin(), bufferPool_.end(), [bufferId, portIndex](const BufferInfo& info) { - return info.bufferId == bufferId && info.portIndex == portIndex; - }); - if (iter == bufferPool_.end()) { - CODEC_LOGE("Can not find buffer, port=%{public}u, id=%{public}u", portIndex, bufferId); - return OMX_ErrorBadParameter; + sptr codecBuffer = nullptr; + { + std::unique_lock poolLock(poolMutex_); + uint32_t bufferId = buffer.bufferId; + auto iter = std::find_if(bufferPool_.begin(), bufferPool_.end(), [bufferId, portIndex](const BufferInfo& info) { + return info.bufferId == bufferId && info.portIndex == portIndex; + }); + if (iter == bufferPool_.end()) { + CODEC_LOGE("Can not find buffer, port=%{public}u, id=%{public}u", portIndex, bufferId); + return OMX_ErrorBadParameter; + } + codecBuffer = iter->icodecBuf; + bufferPool_.erase(iter); + } + if (codecBuffer != nullptr) { + codecBuffer->FreeBuffer(); } - sptr codecBuffer = iter->icodecBuf; - CHECK_AND_RETURN_RET_LOG(codecBuffer != nullptr, OMX_ErrorBadParameter, "codecBuffer is null"); - codecBuffer->FreeBuffer(); - bufferPool_.erase(iter); return 0; } diff --git a/codec/test/benchmarktest/BUILD.gn b/codec/test/benchmarktest/BUILD.gn index c77a6c953c9f58cb5315b0d6a8e96e46a1769cbe..ed3efe732da1fad080f10a48e6f1fc4b12b4910a 100644 --- a/codec/test/benchmarktest/BUILD.gn +++ b/codec/test/benchmarktest/BUILD.gn @@ -16,7 +16,7 @@ import("//build/test.gni") import("../../codec.gni") ohos_benchmarktest("hdf_codec_benchmark_test") { - module_out_path = "drivers_peripheral_codec/codec" + module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec" include_dirs = [ "./include", "../../interfaces/include", @@ -33,7 +33,7 @@ ohos_benchmarktest("hdf_codec_benchmark_test") { "drivers_interface_codec:libcodec_proxy_4.0", "drivers_interface_display:libdisplay_buffer_hdi_impl", "drivers_interface_display:libdisplay_buffer_proxy_1.0", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "drivers_interface_display:libdisplay_composer_proxy_1.0", "graphic_surface:buffer_handle", "hdf_core:libhdf_host", diff --git a/codec/test/demo/heif/BUILD.gn b/codec/test/demo/heif/BUILD.gn index 962809e7bebe3cb8e93e708ff12611ff80f46d9d..0403fff6ada7be89feb3494f7a7e6e8cc650567d 100644 --- a/codec/test/demo/heif/BUILD.gn +++ b/codec/test/demo/heif/BUILD.gn @@ -33,7 +33,7 @@ ohos_executable("codec_heif_encode") { "drivers_interface_display:libdisplay_composer_proxy_1.1", "drivers_interface_display:libdisplay_composer_proxy_1.2", "drivers_interface_display:libdisplay_buffer_hdi_impl_v1_2", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "hdf_core:libhdf_host", "hdf_core:libhdf_ipc_adapter", "hdf_core:libhdf_utils", @@ -69,7 +69,7 @@ ohos_executable("codec_heif_decode") { "drivers_interface_display:libdisplay_composer_proxy_1.1", "drivers_interface_display:libdisplay_composer_proxy_1.2", "drivers_interface_display:libdisplay_buffer_hdi_impl_v1_2", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "drivers_interface_display:libdisplay_commontype_proxy_2.0", "hdf_core:libhdf_host", "hdf_core:libhdf_ipc_adapter", diff --git a/codec/test/demo/idl/BUILD.gn b/codec/test/demo/idl/BUILD.gn index e09326a0b49870503c9f87bde968086a03c90440..e75bb46ca3263428ce507f4250d4a91ac7d43e4b 100644 --- a/codec/test/demo/idl/BUILD.gn +++ b/codec/test/demo/idl/BUILD.gn @@ -31,7 +31,7 @@ ohos_executable("codec_idl_omx_decode") { "drivers_interface_codec:libcodec_proxy_4.0", "drivers_interface_display:libdisplay_buffer_hdi_impl", "drivers_interface_display:libdisplay_buffer_proxy_1.0", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "drivers_interface_display:libdisplay_composer_proxy_1.0", "graphic_surface:buffer_handle", "hdf_core:libhdf_host", @@ -69,7 +69,7 @@ ohos_executable("codec_idl_omx_encode") { "drivers_interface_codec:libcodec_proxy_4.0", "drivers_interface_display:libdisplay_buffer_hdi_impl", "drivers_interface_display:libdisplay_buffer_proxy_1.0", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "drivers_interface_display:libdisplay_composer_proxy_1.0", "graphic_surface:buffer_handle", "hdf_core:libhdf_host", diff --git a/codec/test/demo/jpeg/BUILD.gn b/codec/test/demo/jpeg/BUILD.gn index 4aa511132700740a313cba604e15e9e3b7481645..3dd3a4e6e2fb0dfc0494375986bd092e979c00b9 100644 --- a/codec/test/demo/jpeg/BUILD.gn +++ b/codec/test/demo/jpeg/BUILD.gn @@ -33,7 +33,7 @@ ohos_executable("codec_jpeg_decode") { "drivers_interface_codec:libimage_proxy_2.1", "drivers_interface_display:libdisplay_buffer_hdi_impl", "drivers_interface_display:libdisplay_buffer_proxy_1.0", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "drivers_interface_display:libdisplay_composer_proxy_1.0", "graphic_surface:buffer_handle", "hdf_core:libhdf_host", diff --git a/codec/test/fuzztest/image_fuzzer/imagedoheifdecode_fuzzer/BUILD.gn b/codec/test/fuzztest/image_fuzzer/imagedoheifdecode_fuzzer/BUILD.gn index 665cef4247ac5dcee2b7f13c3a31845bab237952..5586f57f64aa45e836ba8f66a32c34851bdccafd 100644 --- a/codec/test/fuzztest/image_fuzzer/imagedoheifdecode_fuzzer/BUILD.gn +++ b/codec/test/fuzztest/image_fuzzer/imagedoheifdecode_fuzzer/BUILD.gn @@ -35,7 +35,7 @@ ohos_fuzztest("ImageDoHeifDecodeFuzzTest") { "drivers_interface_display:libdisplay_composer_proxy_1.1", "drivers_interface_display:libdisplay_composer_proxy_1.2", "drivers_interface_display:libdisplay_buffer_hdi_impl_v1_2", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "hdf_core:libhdf_host", "hdf_core:libhdf_ipc_adapter", "hdf_core:libhdf_utils", diff --git a/codec/test/fuzztest/image_fuzzer/imagedoheifencode_fuzzer/BUILD.gn b/codec/test/fuzztest/image_fuzzer/imagedoheifencode_fuzzer/BUILD.gn index e16c6bca862ef991e6c08f71c4936ed279c59ae7..17d28e17c280b378167f6eafa3fd8dc11bc7dae9 100644 --- a/codec/test/fuzztest/image_fuzzer/imagedoheifencode_fuzzer/BUILD.gn +++ b/codec/test/fuzztest/image_fuzzer/imagedoheifencode_fuzzer/BUILD.gn @@ -35,7 +35,7 @@ ohos_fuzztest("ImageDoHeifEncodeFuzzTest") { "drivers_interface_display:libdisplay_composer_proxy_1.1", "drivers_interface_display:libdisplay_composer_proxy_1.2", "drivers_interface_display:libdisplay_buffer_hdi_impl_v1_2", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "hdf_core:libhdf_host", "hdf_core:libhdf_ipc_adapter", "hdf_core:libhdf_utils", diff --git a/codec/test/unittest/hdi_image/BUILD.gn b/codec/test/unittest/hdi_image/BUILD.gn index 487432eb238e2d36be8ce413705123d5f3fcfbf5..115c31434042055de52f1b830fa96f8e54d68f46 100644 --- a/codec/test/unittest/hdi_image/BUILD.gn +++ b/codec/test/unittest/hdi_image/BUILD.gn @@ -16,7 +16,7 @@ import("//build/test.gni") import("../../../codec.gni") ohos_unittest("codec_hdi_jpeg_test") { - module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec/codec" + module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec" sources = [ "codec_hdi_jpeg_test.cpp" ] @@ -26,7 +26,7 @@ ohos_unittest("codec_hdi_jpeg_test") { "drivers_interface_codec:libimage_proxy_2.1", "drivers_interface_display:libdisplay_buffer_hdi_impl", "drivers_interface_display:libdisplay_buffer_proxy_1.0", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "drivers_interface_display:libdisplay_composer_proxy_1.0", "graphic_surface:buffer_handle", "hdf_core:libhdf_host", @@ -42,7 +42,7 @@ ohos_unittest("codec_hdi_jpeg_test") { } ohos_unittest("codec_hdi_heif_encode_test") { - module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec/codec" + module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec" sources = [ "codec_hdi_heif_encode_test.cpp" ] @@ -56,7 +56,7 @@ ohos_unittest("codec_hdi_heif_encode_test") { "drivers_interface_display:libdisplay_composer_proxy_1.1", "drivers_interface_display:libdisplay_composer_proxy_1.2", "drivers_interface_display:libdisplay_buffer_hdi_impl_v1_2", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "hdf_core:libhdf_host", "hdf_core:libhdf_ipc_adapter", "hdf_core:libhdf_utils", @@ -74,7 +74,7 @@ ohos_unittest("codec_hdi_heif_encode_test") { } ohos_unittest("codec_hdi_heif_decode_test") { - module_out_path = "drivers_peripheral_codec/codec" + module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec" sources = [ "codec_hdi_heif_decode_test.cpp" ] @@ -88,7 +88,7 @@ ohos_unittest("codec_hdi_heif_decode_test") { "drivers_interface_display:libdisplay_composer_proxy_1.1", "drivers_interface_display:libdisplay_composer_proxy_1.2", "drivers_interface_display:libdisplay_buffer_hdi_impl_v1_2", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "hdf_core:libhdf_host", "hdf_core:libhdf_ipc_adapter", "hdf_core:libhdf_utils", diff --git a/codec/test/unittest/idl_omx/BUILD.gn b/codec/test/unittest/idl_omx/BUILD.gn index 25b2e8cf9b72cdb9f532c9b6c818e6dbd3e00504..9ede4c653c9409ef900aaae63db09e201a56dab2 100644 --- a/codec/test/unittest/idl_omx/BUILD.gn +++ b/codec/test/unittest/idl_omx/BUILD.gn @@ -16,7 +16,7 @@ import("//build/test.gni") import("../../../codec.gni") ohos_unittest("codec_idl_omx_test") { - module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec/codec" + module_out_path = "drivers_peripheral_codec/drivers_peripheral_codec" include_dirs = [ "./", "../../../interfaces/include", @@ -35,7 +35,7 @@ ohos_unittest("codec_idl_omx_test") { "drivers_interface_codec:libcodec_proxy_4.0", "drivers_interface_display:libdisplay_buffer_hdi_impl", "drivers_interface_display:libdisplay_buffer_proxy_1.0", - "drivers_interface_display:libdisplay_composer_hdi_impl_1.2", + "drivers_interface_display:libdisplay_composer_hdi_impl_1.3", "drivers_interface_display:libdisplay_composer_proxy_1.0", "graphic_surface:buffer_handle", "hdf_core:libhdf_host",