mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 00:54:09 +08:00
media: venus: Support V4L2 QP parameters in Venus encoder
Support V4L2 QP parameters in Venus encoder: * V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP * V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP * V4L2_CID_MPEG_VIDEO_H264_MIN_QP * V4L2_CID_MPEG_VIDEO_H264_MAX_QP Signed-off-by: Kelvin Lawson <klawson@lisden.com> Acked-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
4e1e0eb0e0
commit
2123cbd687
@ -651,6 +651,8 @@ static int venc_set_properties(struct venus_inst *inst)
|
||||
struct hfi_framerate frate;
|
||||
struct hfi_bitrate brate;
|
||||
struct hfi_idr_period idrp;
|
||||
struct hfi_quantization quant;
|
||||
struct hfi_quantization_range quant_range;
|
||||
u32 ptype, rate_control, bitrate, profile = 0, level = 0;
|
||||
int ret;
|
||||
|
||||
@ -770,6 +772,23 @@ static int venc_set_properties(struct venus_inst *inst)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ptype = HFI_PROPERTY_PARAM_VENC_SESSION_QP;
|
||||
quant.qp_i = ctr->h264_i_qp;
|
||||
quant.qp_p = ctr->h264_p_qp;
|
||||
quant.qp_b = ctr->h264_b_qp;
|
||||
quant.layer_id = 0;
|
||||
ret = hfi_session_set_property(inst, ptype, &quant);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ptype = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE;
|
||||
quant_range.min_qp = ctr->h264_min_qp;
|
||||
quant_range.max_qp = ctr->h264_max_qp;
|
||||
quant_range.layer_id = 0;
|
||||
ret = hfi_session_set_property(inst, ptype, &quant_range);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (inst->fmt_cap->pixfmt == V4L2_PIX_FMT_H264) {
|
||||
profile = venc_v4l2_to_hfi(V4L2_CID_MPEG_VIDEO_H264_PROFILE,
|
||||
ctr->profile.h264);
|
||||
|
Loading…
Reference in New Issue
Block a user