aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/rtpdec.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2013-01-13 21:46:44 -0800
committerMichael Niedermayer <michaelni@gmx.at>2013-01-15 13:58:22 +0100
commitf6badba1859fb266a9c0bdaf006a04c73873cd90 (patch)
tree652a134162a7ba0677c2d8f947a43b2d2960a60b /libavformat/rtpdec.c
parent8ac8f04993e5ff53a9c799d72c3085c77c228134 (diff)
downloadffmpeg-f6badba1859fb266a9c0bdaf006a04c73873cd90.tar.gz
h264: don't clobber mmco opcode tables for non-first slice headers.
Clobbering these tables will temporarily clobber the template used as a basis for other threads to start decoding from. If the other decoding thread updates from the template right at that moment, subsequent threads will get invalid (or, usually, none at all) mmco tables. This leads to invalid reference lists and subsequent decode failures. Therefore, instead, decode the mmco tables only for the first slice in a field or frame. For other slices, decode the bits and ensure they are identical to the mmco tables in the first slice, but don't ever clobber the context state. This prevents other threads from using a clobbered/invalid template as starting point for decoding, and thus fixes decoding in these cases. This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with frame-multithreading enabled. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/rtpdec.c')
0 files changed, 0 insertions, 0 deletions