When dst_length == 0 bit_length has to be 0, too, but the current code still
calls decode_rbsp_trailing() and therefore bit_length might get negative. Although the remaining code is able to handle a negative bit_length, avoid the calculation at all by setting bit_length to 0 for dst_length == 0. patch by Reinhard Nissl, rnissl gmx de Originally committed as revision 8690 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
6ac9696e77
commit
ad1ea1f155
@ -8149,7 +8149,7 @@ static int decode_nal_units(H264Context *h, uint8_t *buf, int buf_size){
|
|||||||
}
|
}
|
||||||
while(ptr[dst_length - 1] == 0 && dst_length > 0)
|
while(ptr[dst_length - 1] == 0 && dst_length > 0)
|
||||||
dst_length--;
|
dst_length--;
|
||||||
bit_length= 8*dst_length - decode_rbsp_trailing(h, ptr + dst_length - 1);
|
bit_length= !dst_length ? 0 : (8*dst_length - decode_rbsp_trailing(h, ptr + dst_length - 1));
|
||||||
|
|
||||||
if(s->avctx->debug&FF_DEBUG_STARTCODE){
|
if(s->avctx->debug&FF_DEBUG_STARTCODE){
|
||||||
av_log(h->s.avctx, AV_LOG_DEBUG, "NAL %d at %d/%d length %d\n", h->nal_unit_type, buf_index, buf_size, dst_length);
|
av_log(h->s.avctx, AV_LOG_DEBUG, "NAL %d at %d/%d length %d\n", h->nal_unit_type, buf_index, buf_size, dst_length);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user