if (!(avctx->flags2 & AV_CODEC_FLAG2_CHUNKS)) {
h->current_slice = 0;
- if (!h->first_field)
+ if (!h->first_field) {
h->cur_pic_ptr = NULL;
- ff_h264_sei_uninit(&h->sei);
+ ff_h264_sei_uninit(&h->sei);
+ }
}
if (h->nal_length_size == 4) {
AVFrame *src = srcp->f;
int ret;
- if (src->format == AV_PIX_FMT_VIDEOTOOLBOX && src->buf[0]->size == 1)
- return AVERROR_INVALIDDATA;
-
ret = av_frame_ref(dst, src);
if (ret < 0)
return ret;
{
int cnt= buf[5]&0x1f;
const uint8_t *p= buf+6;
+ if (!cnt)
+ return 0;
while(cnt--){
int nalsize= AV_RB16(p) + 2;
if(nalsize > buf_size - (p-buf) || (p[2] & 0x9F) != 7)
&h->ps, &h->is_avc, &h->nal_length_size,
avctx->err_recognition, avctx);
}
- if(h->is_avc && buf_size >= 9 && buf[0]==1 && buf[2]==0 && (buf[4]&0xFC)==0xFC && (buf[5]&0x1F) && buf[8]==0x67){
+ if (h->is_avc && buf_size >= 9 && buf[0]==1 && buf[2]==0 && (buf[4]&0xFC)==0xFC) {
if (is_extra(buf, buf_size))
return ff_h264_decode_extradata(buf, buf_size,
&h->ps, &h->is_avc, &h->nal_length_size,