[FFmpeg-devel] [PATCH] avcodec/hw_base_encode: fix NULL dereference if no frames before end-of-stream
James Hutchinson
jahutchinson99 at googlemail.com
Sat Jul 19 10:08:36 EEST 2025
If hw_base_encode_send_frame() is called with frame == NULL before any
input frames are submitted, ctx->pic_end is NULL and dereferencing it
causes a crash. This can occur in hardware encoding pipelines that flush
before receiving any input frames.
Fix by checking ctx->pic_end before accessing its pts field.
Link: https://github.com/tvheadend/tvheadend/issues/1833
Signed-off-by: James Hutchinson <jahutchinson99 at googlemail.com>
---
libavcodec/hw_base_encode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/hw_base_encode.c b/libavcodec/hw_base_encode.c
index 33a30c8d10..7aa8aeedb1 100644
--- a/libavcodec/hw_base_encode.c
+++ b/libavcodec/hw_base_encode.c
@@ -504,7 +504,7 @@ static int hw_base_encode_send_frame(AVCodecContext *avctx, FFHWBaseEncodeContex
// Fix timestamps if we hit end-of-stream before the initial decode
// delay has elapsed.
- if (ctx->input_order <= ctx->decode_delay)
+ if (ctx->input_order <= ctx->decode_delay && ctx->pic_end)
ctx->dts_pts_diff = ctx->pic_end->pts - ctx->first_pts;
}
--
2.50.0
More information about the ffmpeg-devel
mailing list