static int vp8_packet(AVFormatContext *s, int idx)

{

    struct ogg *ogg = s->priv_data;

    struct ogg_stream *os = ogg->streams + idx;

    uint8_t *p = os->buf + os->pstart;



    if ((!os->lastpts || os->lastpts == AV_NOPTS_VALUE) &&

        !(os->flags & OGG_FLAG_EOS)) {

        int seg;

        int duration;

        uint8_t *last_pkt = p;

        uint8_t *next_pkt;



        seg = os->segp;

        duration = (last_pkt[0] >> 4) & 1;

        next_pkt = last_pkt += os->psize;

        for (; seg < os->nsegs; seg++) {

            if (os->segments[seg] < 255) {

                duration += (last_pkt[0] >> 4) & 1;

                last_pkt  = next_pkt + os->segments[seg];

            }

            next_pkt += os->segments[seg];

        }

        os->lastpts =

        os->lastdts = vp8_gptopts(s, idx, os->granule, NULL) - duration;

        if(s->streams[idx]->start_time == AV_NOPTS_VALUE) {

            s->streams[idx]->start_time = os->lastpts;

            if (s->streams[idx]->duration)

                s->streams[idx]->duration -= s->streams[idx]->start_time;

        }

    }



    if (os->psize > 0)

        os->pduration = (p[0] >> 4) & 1;



    return 0;

}

static int vp8_packet(AVFormatContext *s, int idx)

{

    struct ogg *ogg = s->priv_data;

    struct ogg_stream *os = ogg->streams + idx;

    uint8_t *p = os->buf + os->pstart;



    if ((!os->lastpts || os->lastpts == AV_NOPTS_VALUE) &&

        !(os->flags & OGG_FLAG_EOS)) {

        int seg;

        int duration;

        uint8_t *last_pkt = p;

        uint8_t *next_pkt;



        seg = os->segp;

        duration = (last_pkt[0] >> 4) & 1;

        next_pkt = last_pkt += os->psize;

        for (; seg < os->nsegs; seg++) {

            if (os->segments[seg] < 255) {

                duration += (last_pkt[0] >> 4) & 1;

                last_pkt  = next_pkt + os->segments[seg];

            }

            next_pkt += os->segments[seg];

        }

        os->lastpts =

        os->lastdts = vp8_gptopts(s, idx, os->granule, NULL) - duration;

        if(s->streams[idx]->start_time == AV_NOPTS_VALUE) {

            s->streams[idx]->start_time = os->lastpts;

            if (s->streams[idx]->duration)

                s->streams[idx]->duration -= s->streams[idx]->start_time;

        }

    }



    if (os->psize > 0)

        os->pduration = (p[0] >> 4) & 1;



    return 0;

}

            if (s->streams[idx]->duration)
static int FUNC_0(AVFormatContext *VAR_0, int VAR_1)

{

    struct VAR_2 *VAR_2 = VAR_0->priv_data;

    struct ogg_stream *VAR_3 = VAR_2->streams + VAR_1;

    uint8_t *p = VAR_3->buf + VAR_3->pstart;



    if ((!VAR_3->lastpts || VAR_3->lastpts == AV_NOPTS_VALUE) &&

        !(VAR_3->flags & OGG_FLAG_EOS)) {

        int VAR_4;

        int VAR_5;

        uint8_t *last_pkt = p;

        uint8_t *next_pkt;



        VAR_4 = VAR_3->segp;

        VAR_5 = (last_pkt[0] >> 4) & 1;

        next_pkt = last_pkt += VAR_3->psize;

        for (; VAR_4 < VAR_3->nsegs; VAR_4++) {

            if (VAR_3->segments[VAR_4] < 255) {

                VAR_5 += (last_pkt[0] >> 4) & 1;

                last_pkt  = next_pkt + VAR_3->segments[VAR_4];

            }

            next_pkt += VAR_3->segments[VAR_4];

        }

        VAR_3->lastpts =

        VAR_3->lastdts = vp8_gptopts(VAR_0, VAR_1, VAR_3->granule, NULL) - VAR_5;

        if(VAR_0->streams[VAR_1]->start_time == AV_NOPTS_VALUE) {

            VAR_0->streams[VAR_1]->start_time = VAR_3->lastpts;

            if (VAR_0->streams[VAR_1]->VAR_5)

                VAR_0->streams[VAR_1]->VAR_5 -= VAR_0->streams[VAR_1]->start_time;

        }

    }



    if (VAR_3->psize > 0)

        VAR_3->pduration = (p[0] >> 4) & 1;



    return 0;

}

static int FUNC_0(AVFormatContext *VAR_0, int VAR_1)
{ struct VAR_2 *VAR_2 = VAR_0->priv_data; struct ogg_stream *VAR_3 = VAR_2->streams + VAR_1; uint8_t *p = VAR_3->buf + VAR_3->pstart; if ((!VAR_3->lastpts || VAR_3->lastpts == AV_NOPTS_VALUE) &&
!(VAR_3->flags & OGG_FLAG_EOS)) { int VAR_4; int VAR_5; uint8_t *last_pkt = p; uint8_t *next_pkt; VAR_4 = VAR_3->segp; VAR_5 = (last_pkt[0] >> 4) & 1; next_pkt = last_pkt += VAR_3->psize; for (; VAR_4 < VAR_3->nsegs; VAR_4++) { if (VAR_3->segments[VAR_4] < 255) { VAR_5 += (last_pkt[0] >> 4) & 1; last_pkt  = next_pkt + VAR_3->segments[VAR_4]; } next_pkt += VAR_3->segments[VAR_4]; } VAR_3->lastpts =
VAR_3->lastdts = vp8_gptopts(VAR_0, VAR_1, VAR_3->granule, NULL) - VAR_5; if(VAR_0->streams[VAR_1]->start_time == AV_NOPTS_VALUE) { VAR_0->streams[VAR_1]->start_time = VAR_3->lastpts; if (VAR_0->streams[VAR_1]->VAR_5)
VAR_0->streams[VAR_1]->VAR_5 -= VAR_0->streams[VAR_1]->start_time; } } if (VAR_3->psize > 0)
VAR_3->pduration = (p[0] >> 4) & 1; return 0; }