h264: improve behaviour with invalid reference lists
authorAnton Khirnov <anton@khirnov.net>
Thu, 17 Dec 2015 18:38:24 +0000 (19:38 +0100)
committerAnton Khirnov <anton@khirnov.net>
Fri, 1 Jan 2016 15:09:14 +0000 (16:09 +0100)
commit9d74012761bc3ee676fe43321d5699e4877fde5b
tree0d3abb72b26c112f681b638bb943e3dd23658036
parent40d949677335a564f769823f4afdb7e7a3da8d6b
h264: improve behaviour with invalid reference lists

Before 741b494fa8cd28a7d096349bac183893c236e3f9, when the reference list
modification description was invalid, the code would substitute the
corresponding reference from the initial ("default") reference list.
After that commit, it will just return an error.

Since there are apparently invalid samples in the wild that used to play
fine with the old code, it is a good idea to re-add some sort of error
resilience here. So, when the reference list modification results in a
missing frame, substitute a previous reference frame for it. The
relevant sample again decodes fine with the same output as previously.
libavcodec/h264_refs.c