00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #include "parser.h"
00022 
00023 static int parse(AVCodecParserContext *s,
00024                            AVCodecContext *avctx,
00025                            const uint8_t **poutbuf, int *poutbuf_size,
00026                            const uint8_t *buf, int buf_size)
00027 {
00028     if(avctx->codec_id == CODEC_ID_THEORA)
00029         s->pict_type= (buf[0]&0x40) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I;
00030     else
00031         s->pict_type= (buf[0]&0x80) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I;
00032 
00033     *poutbuf = buf;
00034     *poutbuf_size = buf_size;
00035     return buf_size;
00036 }
00037 
00038 AVCodecParser ff_vp3_parser = {
00039     .codec_ids      = { CODEC_ID_THEORA, CODEC_ID_VP3, CODEC_ID_VP6,
00040                         CODEC_ID_VP6F,   CODEC_ID_VP6A },
00041     .parser_parse   = parse,
00042 };