Mercurial > libavformat.hg
diff mpeg.c @ 5642:747753995dee libavformat
Dont give up after 100kb of zero bytes but returnd EAGAIN
fixes issue1729
| author | michael |
|---|---|
| date | Wed, 10 Feb 2010 14:25:57 +0000 |
| parents | dea6e2d5442d |
| children | 536e5527c1e0 |
line wrap: on
line diff
--- a/mpeg.c Wed Feb 10 12:44:16 2010 +0000 +++ b/mpeg.c Wed Feb 10 14:25:57 2010 +0000 @@ -247,8 +247,13 @@ 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)
