h264: avoid stuck buffer pointer in decode_nal_units
authorJindřich Makovička <makovick@gmail.com>
Sat, 29 Sep 2012 09:16:45 +0000 (11:16 +0200)
committerReinhard Tartler <siretart@tauware.de>
Fri, 4 Jan 2013 06:43:38 +0000 (07:43 +0100)
commit11ecd8574a2edd482c687123f374f22c3390c6dc
tree43bbe2e0a8a7e13886c9b3955cf8d2d55126af8b
parent5754176b5bfb4a298c376b4bdcce218848d15936
h264: avoid stuck buffer pointer in decode_nal_units

When decode_nal_units() previously encountered a NAL_END_SEQUENCE,
and there are some junk bytes left in the input buffer, but no start codes,
buf_index gets stuck 3 bytes before the end of the buffer.

This can trigger an infinite loop in the caller code, eg. in
try_decode_trame(), as avcodec_decode_video() then keeps returning zeroes,
with 3 bytes of the input packet still available.

With this change, the remaining bytes are skipped so the whole packet gets
consumed.

CC:libav-stable@libav.org

Signed-off-by: Jindřich Makovička <makovick@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
(cherry picked from commit 1a8c6917f68f7378465e18f7615762bfd22704c2)

Conflicts:

libavcodec/h264.c
libavcodec/h264.c