if(size <= 0) continue;
switch(AV_RB32(start)){
case VC1_CODE_SEQHDR:
- vc1_decode_sequence_header(avctx, &vpc->v, &gb);
+ ff_vc1_decode_sequence_header(avctx, &vpc->v, &gb);
break;
case VC1_CODE_ENTRYPOINT:
- vc1_decode_entry_point(avctx, &vpc->v, &gb);
+ ff_vc1_decode_entry_point(avctx, &vpc->v, &gb);
break;
case VC1_CODE_FRAME:
if(vpc->v.profile < PROFILE_ADVANCED)
- vc1_parse_frame_header (&vpc->v, &gb);
+ ff_vc1_parse_frame_header (&vpc->v, &gb);
else
- vc1_parse_frame_header_adv(&vpc->v, &gb);
+ ff_vc1_parse_frame_header_adv(&vpc->v, &gb);
/* keep AV_PICTURE_TYPE_BI internal to VC1 */
if (vpc->v.s.pict_type == AV_PICTURE_TYPE_BI)
}
/**
- * finds the end of the current frame in the bitstream.
+ * Find the end of the current frame in the bitstream.
* @return the position of the first byte of the next frame, or -1
*/
static int vc1_find_frame_end(ParseContext *pc, const uint8_t *buf,
return 0;
}
+static int vc1_parse_init(AVCodecParserContext *s)
+{
+ VC1ParseContext *vpc = s->priv_data;
+ vpc->v.s.slice_context_count = 1;
+ return ff_vc1_init_common(&vpc->v);
+}
+
AVCodecParser ff_vc1_parser = {
- .codec_ids = { CODEC_ID_VC1 },
+ .codec_ids = { AV_CODEC_ID_VC1 },
.priv_data_size = sizeof(VC1ParseContext),
+ .parser_init = vc1_parse_init,
.parser_parse = vc1_parse,
- .parser_close = ff_parse1_close,
+ .parser_close = ff_parse_close,
.split = vc1_split,
};