diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 99172a1823..2047d5fc61 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -7973,7 +7973,8 @@ static int decode_nal_units(H264Context *h, uint8_t *buf, int buf_size){ } ptr= decode_nal(h, buf + buf_index, &dst_length, &consumed, h->is_avc ? nalsize : buf_size - buf_index); - if(ptr[dst_length - 1] == 0) dst_length--; + while(ptr[dst_length - 1] == 0 && dst_length > 1) + dst_length--; bit_length= 8*dst_length - decode_rbsp_trailing(ptr + dst_length - 1); if(s->avctx->debug&FF_DEBUG_STARTCODE){