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 };