[FFmpeg-devel] [PATCH 1/2] fftools/ffprobe: Flush decoder after draining
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Wed Feb 23 00:49:31 EET 2022
Andreas Rheinhardt:
> This is a prerequisite to continue using the decoder at all
> to decode the next interval (if any).
> This fixes a regression introduced in commit
> 2a88ebd096f3c748a2d99ed1b60b22879b3c567c and reported in ticket #8657.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
> I wonder whether it would not be simpler to let users reuse a decoder
> after draining simply by sending new packets (without flushing).
>
> fftools/ffprobe.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
> index 8a8e3de540..4205ddedda 100644
> --- a/fftools/ffprobe.c
> +++ b/fftools/ffprobe.c
> @@ -2730,8 +2730,11 @@ static int read_interval_packets(WriterContext *w, InputFile *ifile,
> //Flush remaining frames that are cached in the decoder
> for (i = 0; i < fmt_ctx->nb_streams; i++) {
> pkt->stream_index = i;
> - if (do_read_frames)
> + if (do_read_frames) {
> while (process_frame(w, ifile, frame, pkt, &(int){1}) > 0);
> + if (ifile->streams[i].dec_ctx)
> + avcodec_flush_buffers(ifile->streams[i].dec_ctx);
> + }
> }
>
> end:
Will apply tomorrow unless there are objections.
- Andreas
More information about the ffmpeg-devel
mailing list