static int vorbis_parse(AVCodecParserContext *s1, AVCodecContext *avctx,

                        const uint8_t **poutbuf, int *poutbuf_size,

                        const uint8_t *buf, int buf_size)

{

    VorbisParseContext *s = s1->priv_data;

    int duration;



    if (!s->vp && avctx->extradata && avctx->extradata_size) {

        s->vp = av_vorbis_parse_init(avctx->extradata, avctx->extradata_size);

        if (!s->vp)

            goto end;

    }



    if ((duration = av_vorbis_parse_frame(s->vp, buf, buf_size)) >= 0)

        s1->duration = duration;



end:

    /* always return the full packet. this parser isn't doing any splitting or

       combining, only packet analysis */

    *poutbuf      = buf;

    *poutbuf_size = buf_size;

    return buf_size;

}

static int vorbis_parse(AVCodecParserContext *s1, AVCodecContext *avctx,

                        const uint8_t **poutbuf, int *poutbuf_size,

                        const uint8_t *buf, int buf_size)

{

    VorbisParseContext *s = s1->priv_data;

    int duration;



    if (!s->vp && avctx->extradata && avctx->extradata_size) {

        s->vp = av_vorbis_parse_init(avctx->extradata, avctx->extradata_size);

        if (!s->vp)

            goto end;

    }



    if ((duration = av_vorbis_parse_frame(s->vp, buf, buf_size)) >= 0)

        s1->duration = duration;



end:

    



    *poutbuf      = buf;

    *poutbuf_size = buf_size;

    return buf_size;

}

        if (!s->vp)             goto end;
static int FUNC_0(AVCodecParserContext *VAR_0, AVCodecContext *VAR_1,

                        const uint8_t **VAR_2, int *VAR_3,

                        const uint8_t *VAR_4, int VAR_5)

{

    VorbisParseContext *s = VAR_0->priv_data;

    int VAR_6;



    if (!s->vp && VAR_1->extradata && VAR_1->extradata_size) {

        s->vp = av_vorbis_parse_init(VAR_1->extradata, VAR_1->extradata_size);

        if (!s->vp)

            goto end;

    }



    if ((VAR_6 = av_vorbis_parse_frame(s->vp, VAR_4, VAR_5)) >= 0)

        VAR_0->VAR_6 = VAR_6;



end:

    



    *VAR_2      = VAR_4;

    *VAR_3 = VAR_5;

    return VAR_5;

}

static int FUNC_0(AVCodecParserContext *VAR_0, AVCodecContext *VAR_1,
const uint8_t **VAR_2, int *VAR_3,
const uint8_t *VAR_4, int VAR_5)
{ VorbisParseContext *s = VAR_0->priv_data; int VAR_6; if (!s->vp && VAR_1->extradata && VAR_1->extradata_size) { s->vp = av_vorbis_parse_init(VAR_1->extradata, VAR_1->extradata_size); if (!s->vp)
goto end; } if ((VAR_6 = av_vorbis_parse_frame(s->vp, VAR_4, VAR_5)) >= 0)
VAR_0->VAR_6 = VAR_6; end:
*VAR_2      = VAR_4; *VAR_3 = VAR_5; return VAR_5; }