scenario: A properly coded frame is followed by an end of sequence NAL unit,
authorReinhard Nissl <rnissl@gmx.de>
Mon, 9 Apr 2007 12:55:07 +0000 (12:55 +0000)
committerDiego Biurrun <diego@biurrun.de>
Mon, 9 Apr 2007 12:55:07 +0000 (12:55 +0000)
i.e. the four bytes 00 00 01 0a.
When decode_nal() decodes the end of sequence NAL unit, it returns with
dst_length == 0. The original code leads to a return -1 which discards
the current properly decoded frame.
patch by Reinhard Nissl, rnissl gmx de

Originally committed as revision 8688 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h264.c

index e4e3234..6daa0f0 100644 (file)
@@ -8144,7 +8144,7 @@ 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==NULL || dst_length <= 0){
+        if (ptr==NULL || dst_length < 0){
             return -1;
         }
         while(ptr[dst_length - 1] == 0 && dst_length > 1)