h264: make slice threading work with deblocking_filter=1

Multimedia / Libav - Anton Khirnov [khirnov.net] - 24 April 2016 03:06 UTC

In such a case, decode the MBs in parallel without the loop filter, then execute the filter serially.

The ref2frm array was previously moved to H264SliceContext. That was incorrect, since it applies to all the slices and should properly be in H264Context (it did not actually break decoding, since this distinction only becomes relevant with slice threading and deblocking_filter=1, which was not implemented before this commit). The ref2frm array is thus moved back to H264Context.

b77fffa h264: make slice threading work with deblocking_filter=1
libavcodec/h264.c | 5 ----
libavcodec/h264.h | 13 +++++-----
libavcodec/h264_slice.c | 62 ++++++++++++++++++++++++++++++++---------------
3 files changed, 48 insertions(+), 32 deletions(-)

Upstream: git.libav.org


  • Share