diff options
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r-- | libavcodec/h264.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 89d2a6b540..624c407f97 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -986,10 +986,9 @@ static av_cold void common_init(H264Context *h) s->avctx->bits_per_raw_sample = 8; h->cur_chroma_format_idc = 1; - ff_h264dsp_init(&h->h264dsp, - s->avctx->bits_per_raw_sample, h->cur_chroma_format_idc); - ff_h264_pred_init(&h->hpc, s->codec_id, - s->avctx->bits_per_raw_sample, h->cur_chroma_format_idc); + ff_h264dsp_init(&h->h264dsp, 8, 1); + ff_h264qpel_init(&h->h264qpel, 8); + ff_h264_pred_init(&h->hpc, s->codec_id, 8, 1); h->dequant_coeff_pps = -1; s->unrestricted_mv = 1; @@ -2469,6 +2468,7 @@ static int h264_set_parameter_from_sps(H264Context *h) ff_h264dsp_init(&h->h264dsp, h->sps.bit_depth_luma, h->sps.chroma_format_idc); + ff_h264qpel_init(&h->h264qpel, h->sps.bit_depth_luma); ff_h264_pred_init(&h->hpc, s->codec_id, h->sps.bit_depth_luma, h->sps.chroma_format_idc); s->dsp.dct_bits = h->sps.bit_depth_luma > 8 ? 32 : 16; @@ -2625,6 +2625,7 @@ static int h264_slice_header_init(H264Context *h, int reinit) memcpy(c, h->s.thread_context[i], sizeof(MpegEncContext)); memset(&c->s + 1, 0, sizeof(H264Context) - sizeof(MpegEncContext)); c->h264dsp = h->h264dsp; + c->h264qpel = h->h264qpel; c->sps = h->sps; c->pps = h->pps; c->pixel_shift = h->pixel_shift; @@ -2666,8 +2667,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0) int must_reinit; int needs_reinit = 0; - s->me.qpel_put = s->dsp.put_h264_qpel_pixels_tab; - s->me.qpel_avg = s->dsp.avg_h264_qpel_pixels_tab; + s->me.qpel_put = h->h264qpel.put_h264_qpel_pixels_tab; + s->me.qpel_avg = h->h264qpel.avg_h264_qpel_pixels_tab; first_mb_in_slice = get_ue_golomb_long(&s->gb); |