From b8085836d4c0a0c06b0f95136380d7d787fcdfdb Mon Sep 17 00:00:00 2001 From: chongzhi Date: Wed, 30 Jul 2025 18:55:42 +0800 Subject: [PATCH] fix dma buffer flush cache problem Signed-off-by: chongzhi --- .../native/avmetadatahelper/avmetadatahelper_impl.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frameworks/native/avmetadatahelper/avmetadatahelper_impl.cpp b/frameworks/native/avmetadatahelper/avmetadatahelper_impl.cpp index 1708425d4..3670883b5 100644 --- a/frameworks/native/avmetadatahelper/avmetadatahelper_impl.cpp +++ b/frameworks/native/avmetadatahelper/avmetadatahelper_impl.cpp @@ -914,6 +914,13 @@ std::shared_ptr AVMetadataHelperImpl::FetchFrameBase(int64_t timeUs, i MEDIA_LOGI("final colorSpace %{public}u", pixelMap->InnerGetGrColorSpace().GetColorSpaceName()); DumpPixelMap(isDump_, pixelMap, DUMP_FILE_NAME_AFTER_ROTATE); + if (pixelMap->GetAllocatorType() == AllocatorType::DMA_ALLOC) { + auto sbBuffer = reinterpret_cast(pixelMap->GetFd()); + CHECK_AND_RETURN_RET(sbBuffer != nullptr && + ((sbBuffer->GetUsage() & SurfaceBufferUsage::BUFFER_USAGE_MEM_MMZ_CACHE) != 0), pixelMap); + sbBuffer->FlushCache(); + MEDIA_LOGI("final flush surfacebuffer cache"); + } return pixelMap; } -- Gitee