static int ogg_read_header(AVFormatContext *avfcontext, AVFormatParameters *ap)

{

    OggContext *context = avfcontext->priv_data;

    ogg_packet op ;    

    char *buf ;

    ogg_page og ;

    AVStream *ast ;

    AVCodecContext *codec;

    uint8_t *p;

    int i;

     

    ogg_sync_init(&context->oy) ;

    buf = ogg_sync_buffer(&context->oy, DECODER_BUFFER_SIZE) ;



    if(get_buffer(&avfcontext->pb, buf, DECODER_BUFFER_SIZE) <= 0)

	return AVERROR_IO ;

    

    ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ;   

    ogg_sync_pageout(&context->oy, &og) ;

    ogg_stream_init(&context->os, ogg_page_serialno(&og)) ;

    ogg_stream_pagein(&context->os, &og) ;

    

    /* currently only one vorbis stream supported */



    ast = av_new_stream(avfcontext, 0) ;

    if(!ast)

	return AVERROR_NOMEM ;

    av_set_pts_info(ast, 60, 1, AV_TIME_BASE);



    codec= &ast->codec;

    codec->codec_type = CODEC_TYPE_AUDIO;

    codec->codec_id = CODEC_ID_VORBIS;

    for(i=0; i<3; i++){

        if(next_packet(avfcontext, &op)){


        }



        codec->extradata_size+= 2 + op.bytes;

        codec->extradata= av_realloc(codec->extradata, codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);

        p= codec->extradata + codec->extradata_size - 2 - op.bytes;

        *(p++)= op.bytes>>8;

        *(p++)= op.bytes&0xFF;

        memcpy(p, op.packet, op.bytes);

    }



    return 0 ;

}
static int ogg_read_header(AVFormatContext *avfcontext, AVFormatParameters *ap)

{

    OggContext *context = avfcontext->priv_data;

    ogg_packet op ;    

    char *buf ;

    ogg_page og ;

    AVStream *ast ;

    AVCodecContext *codec;

    uint8_t *p;

    int i;

     

    ogg_sync_init(&context->oy) ;

    buf = ogg_sync_buffer(&context->oy, DECODER_BUFFER_SIZE) ;



    if(get_buffer(&avfcontext->pb, buf, DECODER_BUFFER_SIZE) <= 0)

	return AVERROR_IO ;

    

    ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ;   

    ogg_sync_pageout(&context->oy, &og) ;

    ogg_stream_init(&context->os, ogg_page_serialno(&og)) ;

    ogg_stream_pagein(&context->os, &og) ;

    

    



    ast = av_new_stream(avfcontext, 0) ;

    if(!ast)

	return AVERROR_NOMEM ;

    av_set_pts_info(ast, 60, 1, AV_TIME_BASE);



    codec= &ast->codec;

    codec->codec_type = CODEC_TYPE_AUDIO;

    codec->codec_id = CODEC_ID_VORBIS;

    for(i=0; i<3; i++){

        if(next_packet(avfcontext, &op)){


        }



        codec->extradata_size+= 2 + op.bytes;

        codec->extradata= av_realloc(codec->extradata, codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);

        p= codec->extradata + codec->extradata_size - 2 - op.bytes;

        *(p++)= op.bytes>>8;

        *(p++)= op.bytes&0xFF;

        memcpy(p, op.packet, op.bytes);

    }



    return 0 ;

}
static int FUNC_0(AVFormatContext *VAR_0, AVFormatParameters *VAR_1)

{

    OggContext *context = VAR_0->priv_data;

    ogg_packet op ;    

    char *VAR_2 ;

    ogg_page og ;

    AVStream *ast ;

    AVCodecContext *codec;

    uint8_t *p;

    int VAR_3;

     

    ogg_sync_init(&context->oy) ;

    VAR_2 = ogg_sync_buffer(&context->oy, DECODER_BUFFER_SIZE) ;



    if(get_buffer(&VAR_0->pb, VAR_2, DECODER_BUFFER_SIZE) <= 0)

	return AVERROR_IO ;

    

    ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ;   

    ogg_sync_pageout(&context->oy, &og) ;

    ogg_stream_init(&context->os, ogg_page_serialno(&og)) ;

    ogg_stream_pagein(&context->os, &og) ;

    

    



    ast = av_new_stream(VAR_0, 0) ;

    if(!ast)

	return AVERROR_NOMEM ;

    av_set_pts_info(ast, 60, 1, AV_TIME_BASE);



    codec= &ast->codec;

    codec->codec_type = CODEC_TYPE_AUDIO;

    codec->codec_id = CODEC_ID_VORBIS;

    for(VAR_3=0; VAR_3<3; VAR_3++){

        if(next_packet(VAR_0, &op)){


        }



        codec->extradata_size+= 2 + op.bytes;

        codec->extradata= av_realloc(codec->extradata, codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);

        p= codec->extradata + codec->extradata_size - 2 - op.bytes;

        *(p++)= op.bytes>>8;

        *(p++)= op.bytes&0xFF;

        memcpy(p, op.packet, op.bytes);

    }



    return 0 ;

}
static int FUNC_0(AVFormatContext *VAR_0, AVFormatParameters *VAR_1)
{ OggContext *context = VAR_0->priv_data; ogg_packet op ; char *VAR_2 ; ogg_page og ; AVStream *ast ; AVCodecContext *codec; uint8_t *p; int VAR_3; ogg_sync_init(&context->oy) ; VAR_2 = ogg_sync_buffer(&context->oy, DECODER_BUFFER_SIZE) ; if(get_buffer(&VAR_0->pb, VAR_2, DECODER_BUFFER_SIZE) <= 0)
return AVERROR_IO ; ogg_sync_wrote(&context->oy, DECODER_BUFFER_SIZE) ; ogg_sync_pageout(&context->oy, &og) ; ogg_stream_init(&context->os, ogg_page_serialno(&og)) ; ogg_stream_pagein(&context->os, &og) ; ast = av_new_stream(VAR_0, 0) ; if(!ast)
return AVERROR_NOMEM ; av_set_pts_info(ast, 60, 1, AV_TIME_BASE); codec= &ast->codec; codec->codec_type = CODEC_TYPE_AUDIO; codec->codec_id = CODEC_ID_VORBIS; for(VAR_3=0; VAR_3<3; VAR_3++){ if(next_packet(VAR_0, &op)){ } codec->extradata_size+= 2 + op.bytes; codec->extradata= av_realloc(codec->extradata, codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE); p= codec->extradata + codec->extradata_size - 2 - op.bytes; *(p++)= op.bytes>>8; *(p++)= op.bytes&0xFF; memcpy(p, op.packet, op.bytes); } return 0 ; }