[FFmpeg-devel] [PATCH 2/2] avcodec/decode: don't discard the buffered packet if the underlying bsf can't take it
Anton Khirnov
anton at khirnov.net
Wed Jul 12 12:08:40 EEST 2023
Quoting James Almer (2023-07-12 04:06:44)
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> libavcodec/decode.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index 239ad70b41..cd49cca7c2 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -242,7 +242,8 @@ int ff_decode_get_packet(AVCodecContext *avctx, AVPacket *pkt)
> (!AVPACKET_IS_EMPTY(avci->buffer_pkt) || dc->draining_started)) {
> ret = av_bsf_send_packet(avci->bsf, avci->buffer_pkt);
> if (ret < 0) {
> - av_packet_unref(avci->buffer_pkt);
> + if (ret != AVERROR(EAGAIN))
> + av_packet_unref(avci->buffer_pkt);
It seems very wrong for ff_decode_get_packet() to return EAGAIN when
we have a buffered packet.
--
Anton Khirnov
More information about the ffmpeg-devel
mailing list