Revision ecc0027b

View differences:

libavformat/oggdec.c
122 122
        os->lastdts = AV_NOPTS_VALUE;
123 123
        os->nsegs = 0;
124 124
        os->segp = 0;
125
        os->incomplete = 0;
125 126
    }
126 127

  
127 128
    ogg->curidx = -1;
......
268 269
    for (i = 0; i < nsegs; i++)
269 270
        size += os->segments[i];
270 271

  
271
    if (flags & OGG_FLAG_CONT){
272
    if (flags & OGG_FLAG_CONT || os->incomplete){
272 273
        if (!os->psize){
273 274
            while (os->segp < os->nsegs){
274 275
                int seg = os->segments[os->segp++];
......
356 357

  
357 358
        if (!complete && os->segp == os->nsegs){
358 359
            ogg->curidx = -1;
360
            os->incomplete = 1;
359 361
        }
360 362
    }while (!complete);
361 363

  
......
366 368
#endif
367 369

  
368 370
    ogg->curidx = idx;
371
    os->incomplete = 0;
369 372

  
370 373
    if (os->header < 0){
371 374
        int hdr = os->codec->header (s, idx);
libavformat/oggdec.h
71 71
    int header;
72 72
    int nsegs, segp;
73 73
    uint8_t segments[255];
74
    int incomplete; ///< whether we're expecting a continuation in the next page
74 75
    int page_end;   ///< current packet is the last one completed in the page
75 76
    void *private;
76 77
};

Also available in: Unified diff