From e592f6b41579515284fd6060bc0463915e90815c Mon Sep 17 00:00:00 2001 From: Wangfei Date: Wed, 22 May 2019 10:47:30 -0400 Subject: [PATCH] libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver Intel media-driver requires enablement of diff_cu_qp_delta_depth when cu_qp_delta_enabled_flag enabled. Fixes: #177 --- gst-libs/gst/vaapi/gstvaapiencoder_h265.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c index c9f1628..972dcab 100644 --- a/gst-libs/gst/vaapi/gstvaapiencoder_h265.c +++ b/gst-libs/gst/vaapi/gstvaapiencoder_h265.c @@ -1643,6 +1643,16 @@ fill_picture (GstVaapiEncoderH265 * encoder, GstVaapiEncPicture * picture, || GST_VAAPI_ENCODER_TUNE (encoder) == GST_VAAPI_ENCODER_TUNE_LOW_POWER) pic_param->pic_fields.bits.cu_qp_delta_enabled_flag = 1; + /* XXX: Intel's media-driver, when using low-power mode, requires + * that diff_cu_qp_delta_depth has to be equal to + * log2_diff_max_min_luma_coding_block_size, meaning 3. + * + * For now we assume that on only Intel's media-drivers supports + * H265 low-power */ + if ((GST_VAAPI_ENCODER_TUNE (encoder) == GST_VAAPI_ENCODER_TUNE_LOW_POWER) && + (pic_param->pic_fields.bits.cu_qp_delta_enabled_flag)) + pic_param->diff_cu_qp_delta_depth = 3; + pic_param->pic_fields.bits.pps_loop_filter_across_slices_enabled_flag = TRUE; if (GST_VAAPI_ENC_PICTURE_IS_IDR (picture)) -- 2.7.4