From c9ccbc7333eddd025ebbde5cc4f27d68a950c623 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 12 Apr 2015 19:13:56 +0200 Subject: [PATCH] h264: update the current bit depth/chroma type in init_slice_header() With frame threading, it is currently only updated in the context where the change occurs, but not in any other contexts. --- libavcodec/h264_slice.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c index a760068d0b..92fc51ec0f 100644 --- a/libavcodec/h264_slice.c +++ b/libavcodec/h264_slice.c @@ -1014,6 +1014,8 @@ static int h264_slice_header_init(H264Context *h, int reinit) h->avctx->bits_per_raw_sample = h->sps.bit_depth_luma; h->pixel_shift = h->sps.bit_depth_luma > 8; + h->chroma_format_idc = h->sps.chroma_format_idc; + h->bit_depth_luma = h->sps.bit_depth_luma; ff_h264dsp_init(&h->h264dsp, h->sps.bit_depth_luma, h->sps.chroma_format_idc); @@ -1158,11 +1160,8 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl) h->sps = *h->sps_buffers[h->pps.sps_id]; if (h->bit_depth_luma != h->sps.bit_depth_luma || - h->chroma_format_idc != h->sps.chroma_format_idc) { - h->bit_depth_luma = h->sps.bit_depth_luma; - h->chroma_format_idc = h->sps.chroma_format_idc; + h->chroma_format_idc != h->sps.chroma_format_idc) needs_reinit = 1; - } if (h->flags & CODEC_FLAG_LOW_DELAY || (h->sps.bitstream_restriction_flag &&