[Ffmpeg-cvslog] r8690 - trunk/libavcodec/h264.c
diego
subversion
Mon Apr 9 16:10:07 CEST 2007
Author: diego
Date: Mon Apr 9 16:10:07 2007
New Revision: 8690
Modified:
trunk/libavcodec/h264.c
Log:
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
Modified: trunk/libavcodec/h264.c
==============================================================================
--- trunk/libavcodec/h264.c (original)
+++ trunk/libavcodec/h264.c Mon Apr 9 16:10:07 2007
@@ -8149,7 +8149,7 @@ static int decode_nal_units(H264Context
}
while(ptr[dst_length - 1] == 0 && dst_length > 0)
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){
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);
More information about the ffmpeg-cvslog
mailing list