From f702cf422a2319f9c1fd10c8d46fab09a09d0268 Mon Sep 17 00:00:00 2001 From: Zhao Zhili Date: Tue, 1 Apr 2025 18:11:58 +0800 Subject: [PATCH] avcodec/mediacodecdec: Reset optional fields when parse format Parse format can be called multiple times, e.g., when resolution changed. If getInt32 fails, optional member variables will retain their previously set values without modification. This can be a big problem for new resolution with old crop info. This patch reset optional fields to zero when getInt32 failed. --- libavcodec/mediacodecdec_common.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavcodec/mediacodecdec_common.c b/libavcodec/mediacodecdec_common.c index 8a270f2f29..ae336ab835 100644 --- a/libavcodec/mediacodecdec_common.c +++ b/libavcodec/mediacodecdec_common.c @@ -537,6 +537,8 @@ static int mediacodec_wrap_sw_buffer(AVCodecContext *avctx, av_log(avctx, AV_LOG_ERROR, "Could not get %s from format %s\n", key, format); \ ret = AVERROR_EXTERNAL; \ goto fail; \ + } else { \ + (name) = 0; \ } \ } while (0) \