[FFmpeg-devel] [PATCH] fftools/ffmpeg_filter: at EOF, unref frame used for FPS conversion logic

Zhao Zhili quinkblack at foxmail.com
Tue Jun 24 06:33:33 EEST 2025



> On Jun 24, 2025, at 11:09, Steven Zhou <steven.zhou at netint.ca> wrote:
> 
> fftools/ffmpeg_filter: at EOF, unref frame used for FPS conversion logic
> 
> Ever since commit 64f3feb added `avcodec_free_context(&enc->enc_ctx);` to
> `enc_free()` the encoder context is closed before filtergraph output context. 
> The filtergraph output context holds a reference to last AVFrame to pass through
> it for FPS conversion purposes. This is problematic for HWFrameContexts which
> may rely on encoder context to free HW AVFrames.

What’s the encoder? This sounds a defect in encoder implementation.

> This change unrefs the AVFrame
> ref held by filtergraph output context during processing of EOF frame.
> 
> Signed-off-by: Steven Zhou <steven.zhou at netint.ca>
> ---
> fftools/ffmpeg_filter.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
> index a0dc4c745e..cf2d016b2d 100644
> --- a/fftools/ffmpeg_filter.c
> +++ b/fftools/ffmpeg_filter.c
> @@ -2560,8 +2560,10 @@ static int fg_output_frame(OutputFilterPriv *ofp, FilterGraphThread *fgt,
>         av_frame_move_ref(frame_prev, frame);
>     }
> 
> -    if (!frame)
> +    if (!frame) {
> +        av_frame_unref(frame_prev);
>         return close_output(ofp, fgt);
> +    }
> 
>     return 0;
> }
> -- 
> 2.25.1
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".



More information about the ffmpeg-devel mailing list