mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-14 22:22:59 +02:00
also parse extradata for MPEG4
Originally committed as revision 2493 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
8424cf505c
commit
c6f353ff61
@ -114,8 +114,10 @@ typedef struct ParseContext1{
|
|||||||
int frame_rate;
|
int frame_rate;
|
||||||
int progressive_sequence;
|
int progressive_sequence;
|
||||||
int width, height;
|
int width, height;
|
||||||
|
|
||||||
/* XXX: suppress that, needed by MPEG4 */
|
/* XXX: suppress that, needed by MPEG4 */
|
||||||
MpegEncContext *enc;
|
MpegEncContext *enc;
|
||||||
|
int first_picture;
|
||||||
} ParseContext1;
|
} ParseContext1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -439,21 +441,31 @@ static int av_mpeg4_decode_header(AVCodecParserContext *s1,
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
s->avctx = avctx;
|
s->avctx = avctx;
|
||||||
|
s->current_picture_ptr = &s->current_picture;
|
||||||
|
|
||||||
|
if (avctx->extradata_size && pc->first_picture){
|
||||||
|
init_get_bits(gb, avctx->extradata, avctx->extradata_size*8);
|
||||||
|
ret = ff_mpeg4_decode_picture_header(s, gb);
|
||||||
|
}
|
||||||
|
|
||||||
init_get_bits(gb, buf, 8 * buf_size);
|
init_get_bits(gb, buf, 8 * buf_size);
|
||||||
ret = ff_mpeg4_decode_picture_header(s, gb);
|
ret = ff_mpeg4_decode_picture_header(s, gb);
|
||||||
if (s->width) {
|
if (s->width) {
|
||||||
avctx->width = s->width;
|
avctx->width = s->width;
|
||||||
avctx->height = s->height;
|
avctx->height = s->height;
|
||||||
}
|
}
|
||||||
|
pc->first_picture = 0;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mpeg4video_parse_init(AVCodecParserContext *s)
|
int mpeg4video_parse_init(AVCodecParserContext *s)
|
||||||
{
|
{
|
||||||
ParseContext1 *pc = s->priv_data;
|
ParseContext1 *pc = s->priv_data;
|
||||||
|
|
||||||
pc->enc = av_mallocz(sizeof(MpegEncContext));
|
pc->enc = av_mallocz(sizeof(MpegEncContext));
|
||||||
if (!pc->enc)
|
if (!pc->enc)
|
||||||
return -1;
|
return -1;
|
||||||
|
pc->first_picture = 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user