After empty packet is sent and eof is set, remaining packet, if any, was not 
delivered by ff_bsf_get_packet*.

Signed-off-by: Niko Kurvinen <niko.kurvi...@iki.fi>
---
 libavcodec/bsf.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/libavcodec/bsf.c b/libavcodec/bsf.c
index 8ba021cb47..f9e6bbf499 100644
--- a/libavcodec/bsf.c
+++ b/libavcodec/bsf.c
@@ -233,11 +233,11 @@ int ff_bsf_get_packet(AVBSFContext *ctx, AVPacket **pkt)
     FFBSFContext *const bsfi = ffbsfcontext(ctx);
     AVPacket *tmp_pkt;
 
-    if (bsfi->eof)
-        return AVERROR_EOF;
-
-    if (IS_EMPTY(bsfi->buffer_pkt))
+    if (IS_EMPTY(bsfi->buffer_pkt)) {
+        if (bsfi->eof)
+            return AVERROR_EOF;
         return AVERROR(EAGAIN);
+    }
 
     tmp_pkt = av_packet_alloc();
     if (!tmp_pkt)
@@ -253,11 +253,11 @@ int ff_bsf_get_packet_ref(AVBSFContext *ctx, AVPacket 
*pkt)
 {
     FFBSFContext *const bsfi = ffbsfcontext(ctx);
 
-    if (bsfi->eof)
-        return AVERROR_EOF;
-
-    if (IS_EMPTY(bsfi->buffer_pkt))
+    if (IS_EMPTY(bsfi->buffer_pkt)) {
+        if (bsfi->eof)
+            return AVERROR_EOF;
         return AVERROR(EAGAIN);
+    }
 
     av_packet_move_ref(pkt, bsfi->buffer_pkt);
 
-- 
2.30.2

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to