diff --git a/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp b/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp index 6f40f1f3ff9542a25e85b7640b56ff743054da87..5b806222999c2d8956740b38c21b260f2bf660f7 100644 --- a/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp +++ b/services/data_process/src/pipeline_node/multimedia_codec/decoder/decode_data_process.cpp @@ -521,6 +521,8 @@ void DecodeDataProcess::GetDecoderOutputBuffer(const sptr& sur DHLOGE("Acquire surface buffer failed!"); return; } + ret = surfaceBuffer->InvalidateCache(); + CHECK_AND_LOG(ret != GSERROR_OK, "Invalidate cache failed."); int32_t alignedWidth = surfaceBuffer->GetStride(); if (surfaceBuffer->GetSize() > BUFFER_MAX_SIZE || alignedWidth > ALIGNED_WIDTH_MAX_SIZE) { DHLOGE("surface buffer size or alignedWidth too long");