From 0332324a48c8571ff30b50c194e68bf04a3e3f2b Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Wed, 10 Feb 2010 14:25:57 +0000
Subject: [PATCH] Dont give up after 100kb of zero bytes but returnd EAGAIN
 fixes issue1729

Originally committed as revision 21738 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/mpeg.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index d4d4d212b09..2b1cc34349b 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -247,8 +247,13 @@ static int mpegps_read_pes_header(AVFormatContext *s,
         startcode = find_next_start_code(s->pb, &size, &m->header_state);
         last_sync = url_ftell(s->pb);
     //printf("startcode=%x pos=0x%"PRIx64"\n", startcode, url_ftell(s->pb));
-    if (startcode < 0)
-        return AVERROR(EIO);
+    if (startcode < 0){
+        if(url_feof(s->pb))
+            return AVERROR_EOF;
+        //FIXME we should remember header_state
+        return AVERROR(EAGAIN);
+    }
+
     if (startcode == PACK_START_CODE)
         goto redo;
     if (startcode == SYSTEM_HEADER_START_CODE)
-- 
GitLab