mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-17 21:14:47 +00:00
h264: improve checks before calling ff_h264_decode_extradata
The ff_h264_decode_extradata routine now checks for the buffer size and pointer internally. This makes it possible to remove the external checks in ff_h264_decode_init. In decode_frame there was a size check missing because the buffer gets tested prior to the invocation of ff_h264_decode_extradata(). Signed-off-by: Alexander Strasser <eclipse7@gmx.net>
This commit is contained in:
parent
715f259bf9
commit
baad01d8b4
@ -1083,8 +1083,7 @@ av_cold int ff_h264_decode_init(AVCodecContext *avctx){
|
||||
avctx->ticks_per_frame = 2;
|
||||
}
|
||||
|
||||
if(avctx->extradata_size > 0 && avctx->extradata &&
|
||||
ff_h264_decode_extradata(h, avctx->extradata, avctx->extradata_size))
|
||||
if(ff_h264_decode_extradata(h, avctx->extradata, avctx->extradata_size))
|
||||
return -1;
|
||||
|
||||
if(h->sps.bitstream_restriction_flag && s->avctx->has_b_frames < h->sps.num_reorder_frames){
|
||||
@ -3918,7 +3917,7 @@ static int decode_frame(AVCodecContext *avctx,
|
||||
|
||||
return 0;
|
||||
}
|
||||
if(h->is_avc && AV_RB32(buf)==0x0164001F && buf[5] && buf[8]==0x67)
|
||||
if(h->is_avc && buf_size >= 9 && AV_RB32(buf)==0x0164001F && buf[5] && buf[8]==0x67)
|
||||
return ff_h264_decode_extradata(h, buf, buf_size);
|
||||
|
||||
buf_index=decode_nal_units(h, buf, buf_size);
|
||||
|
Loading…
Reference in New Issue
Block a user