| 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;
|
|
|