diff options
author | Loic Poulain | 2017-11-24 10:34:01 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab | 2017-12-08 17:20:06 +0100 |
commit | a7837e11679e015ef6c4b3f04ae09d17b0980c4e (patch) | |
tree | a77421a8b085545326fd1dcd40737a5527606f04 /drivers/media/platform/qcom | |
parent | media: davinci: vpif_capture: add NULL check on devm_kzalloc return value (diff) | |
download | kernel-qcow2-linux-a7837e11679e015ef6c4b3f04ae09d17b0980c4e.tar.gz kernel-qcow2-linux-a7837e11679e015ef6c4b3f04ae09d17b0980c4e.tar.xz kernel-qcow2-linux-a7837e11679e015ef6c4b3f04ae09d17b0980c4e.zip |
media: venus: venc: configure entropy mode
H264 entropy mode can be selected via V4L2 API but is eventually not
applied. Configure encoder with selected mode, CALVC (def) or CABAC.
Note that hw/firmware also expects a CABAC model configuration which
currently doesn't have existing V4L2 API control. For now, use model_0
which seems always supported and so the default one.
Signed-off-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/platform/qcom')
-rw-r--r-- | drivers/media/platform/qcom/venus/venc.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/media/platform/qcom/venus/venc.c b/drivers/media/platform/qcom/venus/venc.c index 8cfc866b07e5..0c2331f53b79 100644 --- a/drivers/media/platform/qcom/venus/venc.c +++ b/drivers/media/platform/qcom/venus/venc.c @@ -641,6 +641,7 @@ static int venc_set_properties(struct venus_inst *inst) if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264) { struct hfi_h264_vui_timing_info info; + struct hfi_h264_entropy_control entropy; ptype = HFI_PROPERTY_PARAM_VENC_H264_VUI_TIMING_INFO; info.enable = 1; @@ -650,6 +651,16 @@ static int venc_set_properties(struct venus_inst *inst) ret = hfi_session_set_property(inst, ptype, &info); if (ret) return ret; + + ptype = HFI_PROPERTY_PARAM_VENC_H264_ENTROPY_CONTROL; + entropy.entropy_mode = venc_v4l2_to_hfi( + V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, + ctr->h264_entropy_mode); + entropy.cabac_model = HFI_H264_CABAC_MODEL_0; + + ret = hfi_session_set_property(inst, ptype, &entropy); + if (ret) + return ret; } /* IDR periodicity, n: |