X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmpeg4video_parser.c;h=e291262d94f7ba9ea6b46d606f346f3bc07d7561;hb=3ca14aa5964ea5d11f7a15f9fff17924d6096d44;hp=162bc1d03e58b409267f4592ba86c00cd53ef264;hpb=5511ad14fe1cc871a5a256bf801db09cf1cc35f5;p=ffmpeg diff --git a/libavcodec/mpeg4video_parser.c b/libavcodec/mpeg4video_parser.c index 162bc1d03e5..e291262d94f 100644 --- a/libavcodec/mpeg4video_parser.c +++ b/libavcodec/mpeg4video_parser.c @@ -25,6 +25,11 @@ #include "mpeg4video.h" #include "mpeg4video_parser.h" +struct Mp4vParseContext { + ParseContext pc; + struct MpegEncContext enc; + int first_picture; +}; int ff_mpeg4_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size){ int vop_found, i; @@ -68,8 +73,8 @@ static int av_mpeg4_decode_header(AVCodecParserContext *s1, AVCodecContext *avctx, const uint8_t *buf, int buf_size) { - ParseContext1 *pc = s1->priv_data; - MpegEncContext *s = pc->enc; + struct Mp4vParseContext *pc = s1->priv_data; + MpegEncContext *s = &pc->enc; GetBitContext gb1, *gb = &gb1; int ret; @@ -93,12 +98,10 @@ static int av_mpeg4_decode_header(AVCodecParserContext *s1, static av_cold int mpeg4video_parse_init(AVCodecParserContext *s) { - ParseContext1 *pc = s->priv_data; + struct Mp4vParseContext *pc = s->priv_data; - pc->enc = av_mallocz(sizeof(MpegEncContext)); - if (!pc->enc) - return -1; pc->first_picture = 1; + pc->enc.slice_context_count = 1; return 0; } @@ -130,10 +133,10 @@ static int mpeg4video_parse(AVCodecParserContext *s, AVCodecParser ff_mpeg4video_parser = { - .codec_ids = { CODEC_ID_MPEG4 }, - .priv_data_size = sizeof(ParseContext1), + .codec_ids = { AV_CODEC_ID_MPEG4 }, + .priv_data_size = sizeof(struct Mp4vParseContext), .parser_init = mpeg4video_parse_init, .parser_parse = mpeg4video_parse, - .parser_close = ff_parse1_close, + .parser_close = ff_parse_close, .split = ff_mpeg4video_split, };