summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libhb/stream.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libhb/stream.c b/libhb/stream.c
index 32d407735..7d9b016cc 100644
--- a/libhb/stream.c
+++ b/libhb/stream.c
@@ -3432,6 +3432,12 @@ static int ffmpeg_read( hb_stream_t *stream, hb_buffer_t *buf )
again:
if ( ( err = av_read_frame( stream->ffmpeg_ic, stream->ffmpeg_pkt )) < 0 )
{
+ // av_read_frame can return EAGAIN. In this case, it expects
+ // to be called again to get more data.
+ if ( err == AVERROR(EAGAIN) )
+ {
+ goto again;
+ }
// XXX the following conditional is to handle avi files that
// use M$ 'packed b-frames' and occasionally have negative
// sizes for the null frames these require.