From 3a762127e16d6ec0163478ead136614a5e6ae6d8 Mon Sep 17 00:00:00 2001 From: fandongyu Date: Sat, 26 Oct 2024 16:46:49 +0800 Subject: [PATCH] Signed-off-by:fandongyu Signed-off-by: fandongyu --- .../libs/image/libextplugin/src/ext_decoder.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp b/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp index 72d41acae..184ca4427 100644 --- a/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp +++ b/plugins/common/libs/image/libextplugin/src/ext_decoder.cpp @@ -403,6 +403,10 @@ bool ExtDecoder::GetScaledSize(int &dWidth, int &dHeight, float &scale) finalScale = Max(static_cast(dWidth) / info_.width(), static_cast(dHeight) / info_.height()); } + if (codec_ == nullptr) { + IMAGE_LOGE("codec is null in GetScaledSize!"); + return false; + } auto scaledDimension = codec_->getScaledDimensions(finalScale); dWidth = scaledDimension.width(); dHeight = scaledDimension.height(); @@ -824,6 +828,10 @@ uint32_t ExtDecoder::Decode(uint32_t index, DecodeContext &context) return SUCCESS; } #endif + uint32_t res = PreDecodeCheck(index); + if (res != SUCCESS) { + return res; + } context.outInfo.size.width = static_cast(dstInfo_.width()); context.outInfo.size.height = static_cast(dstInfo_.height()); if (IsHeifToYuvDecode(context)) { @@ -834,10 +842,6 @@ uint32_t ExtDecoder::Decode(uint32_t index, DecodeContext &context) context.isHardDecode = true; return DoHeifToSingleHdrDecode(context); } - uint32_t res = PreDecodeCheck(index); - if (res != SUCCESS) { - return res; - } SkEncodedImageFormat skEncodeFormat = codec_->getEncodedFormat(); PixelFormat format = context.info.pixelFormat; bool isOutputYuv420Format = IsYuv420Format(context.info.pixelFormat);