Index: patched-ffmpeg-mt/libavformat/oggdec.c |
=================================================================== |
--- patched-ffmpeg-mt/libavformat/oggdec.c (revision 41250) |
+++ patched-ffmpeg-mt/libavformat/oggdec.c (working copy) |
@@ -132,6 +132,7 @@ |
os->lastdts = AV_NOPTS_VALUE; |
os->nsegs = 0; |
os->segp = 0; |
+ os->incomplete = 0; |
} |
ogg->curidx = -1; |
@@ -279,7 +280,7 @@ |
for (i = 0; i < nsegs; i++) |
size += os->segments[i]; |
- if (flags & OGG_FLAG_CONT){ |
+ if (flags & OGG_FLAG_CONT || os->incomplete){ |
if (!os->psize){ |
while (os->segp < os->nsegs){ |
int seg = os->segments[os->segp++]; |
@@ -374,6 +375,7 @@ |
if (!complete && os->segp == os->nsegs){ |
ogg->curidx = -1; |
+ os->incomplete = 1; |
} |
}while (!complete); |
@@ -384,11 +386,12 @@ |
#endif |
ogg->curidx = idx; |
+ os->incomplete = 0; |
- if (os->header < 0){ |
+ if (!ogg->headers){ |
int hdr = os->codec->header (s, idx); |
+ os->header = os->seq; |
if (!hdr){ |
- os->header = os->seq; |
os->segp = segp; |
os->psize = psize; |
ogg->headers = 1; |