From 27c89341f355630fae3a28abc22e6334fa3ded56 Mon Sep 17 00:00:00 2001 From: Ezequiel Garcia <ezequiel@collabora.com> Date: Fri, 22 May 2020 09:17:15 -0300 Subject: [PATCH] Clean V4L2 private controls Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> --- libv4l-rockchip_v2/libv4l-encplugin-rockchip.c | 9 ++++----- libv4l-rockchip_v2/libvepu/h264e/h264e.c | 2 +- libv4l-rockchip_v2/libvepu/rk_vepu_interface.h | 15 +++++++-------- libv4l-rockchip_v2/libvepu/vp8e/vp8e.c | 6 +++--- 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c b/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c index 244f5db..8dc04be 100644 --- a/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c +++ b/libv4l-rockchip_v2/libv4l-encplugin-rockchip.c @@ -228,7 +228,7 @@ static void *plugin_init(int fd) queue_init(&ctx->pending_buffers); memset(&ext_ctrl, 0, sizeof(ext_ctrl)); - ext_ctrl.id = V4L2_CID_PRIVATE_HANTRO_RET_PARAMS; + ext_ctrl.id = V4L2_CID_PRIVATE_HANTRO_H1_H264_PARAMS; ret = SYS_IOCTL(fd, VIDIOC_QUERY_EXT_CTRL, &ext_ctrl); if (ret) { goto fail; @@ -443,14 +443,13 @@ static int ioctl_dqbuf_locked(struct encoder_context *ctx, int fd, if (bytesused) { rk_vepu_assemble_bitstream(ctx->enc, fd, buffer); + /* TODO: Move to codec specific code? */ memset(ctx->get_param_payload, 0, ctx->get_param_payload_size); memset(&v4l2_ctrl, 0, sizeof(v4l2_ctrl)); - v4l2_ctrl.id = V4L2_CID_PRIVATE_HANTRO_RET_PARAMS; + v4l2_ctrl.id = V4L2_CID_PRIVATE_HANTRO_H1_H264_FEEDBACK; v4l2_ctrl.size = ctx->get_param_payload_size; v4l2_ctrl.ptr = ctx->get_param_payload; memset(&ext_ctrls, 0, sizeof(ext_ctrls)); - /* TODO: change this to config_store after the header is - * updated. */ ext_ctrls.ctrl_class = 0; ext_ctrls.count = 1; ext_ctrls.controls = &v4l2_ctrl; @@ -507,7 +506,7 @@ static int ioctl_s_ext_ctrls_locked(struct encoder_context *ctx, int fd, case V4L2_CID_MPEG_VIDEO_BITRATE: runtime_param_ptr->bitrate = ext_ctrls->controls[i].value; break; - case V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR: + case V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR: ctx->init_param.h264e.h264_sps_pps_before_idr = ext_ctrls->controls[i].value; break; diff --git a/libv4l-rockchip_v2/libvepu/h264e/h264e.c b/libv4l-rockchip_v2/libvepu/h264e/h264e.c index d321da8..dc321ce 100644 --- a/libv4l-rockchip_v2/libvepu/h264e/h264e.c +++ b/libv4l-rockchip_v2/libvepu/h264e/h264e.c @@ -490,7 +490,7 @@ static int h264e_init(struct rk_venc *ictx, if (ctx->pps.transform_8x8_mode_flag == 2) ctx->pps.transform_8x8_mode_flag = 1; - ctx->rk_ctrl_ids[0] = V4L2_CID_PRIVATE_HANTRO_REG_PARAMS; + ctx->rk_ctrl_ids[0] = V4L2_CID_PRIVATE_HANTRO_H1_H264_PARAMS; h264e_build_stream_header(ictx); diff --git a/libv4l-rockchip_v2/libvepu/rk_vepu_interface.h b/libv4l-rockchip_v2/libvepu/rk_vepu_interface.h index 9e4eb57..ef523f0 100644 --- a/libv4l-rockchip_v2/libvepu/rk_vepu_interface.h +++ b/libv4l-rockchip_v2/libvepu/rk_vepu_interface.h @@ -17,15 +17,14 @@ #include <stddef.h> #include <stdint.h> -#define V4L2_CID_USER_HANTRO_ENCODER_BASE (V4L2_CID_USER_BASE + 0x2000) -#define V4L2_CID_PRIVATE_HANTRO_HEADER (V4L2_CID_USER_HANTRO_ENCODER_BASE + 0) -#define V4L2_CID_PRIVATE_HANTRO_REG_PARAMS (V4L2_CID_USER_HANTRO_ENCODER_BASE + 1) -#define V4L2_CID_PRIVATE_HANTRO_HW_PARAMS (V4L2_CID_USER_HANTRO_ENCODER_BASE + 2) -#define V4L2_CID_PRIVATE_HANTRO_RET_PARAMS (V4L2_CID_USER_HANTRO_ENCODER_BASE + 3) +#define V4L2_CID_USER_HANTRO_ENCODER_BASE (V4L2_CID_USER_BASE + 0x2000) +#define V4L2_CID_PRIVATE_HANTRO_H1_H264_PARAMS (V4L2_CID_USER_HANTRO_ENCODER_BASE + 1) +#define V4L2_CID_PRIVATE_HANTRO_H1_H264_FEEDBACK (V4L2_CID_USER_HANTRO_ENCODER_BASE + 2) -#ifndef V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR -#define V4L2_CID_MPEG_VIDEO_H264_SPS_PPS_BEFORE_IDR (V4L2_CID_MPEG_BASE+388) -#endif +#define V4L2_CID_PRIVATE_HANTRO_H1_VP8_HEADER (V4L2_CID_USER_HANTRO_ENCODER_BASE + 10) +#define V4L2_CID_PRIVATE_HANTRO_H1_VP8_REG_PARAMS (V4L2_CID_USER_HANTRO_ENCODER_BASE + 11) +#define V4L2_CID_PRIVATE_HANTRO_H1_VP8_HW_PARAMS (V4L2_CID_USER_HANTRO_ENCODER_BASE + 12) +#define V4L2_CID_PRIVATE_HANTRO_H1_VP8_RET_PARAMS (V4L2_CID_USER_HANTRO_ENCODER_BASE + 13) /* The maximum number of controls returned by rk_vepu_get_config(). */ #define MAX_NUM_GET_CONFIG_CTRLS 5 diff --git a/libv4l-rockchip_v2/libvepu/vp8e/vp8e.c b/libv4l-rockchip_v2/libvepu/vp8e/vp8e.c index 4fc3963..bbd22ee 100644 --- a/libv4l-rockchip_v2/libvepu/vp8e/vp8e.c +++ b/libv4l-rockchip_v2/libvepu/vp8e/vp8e.c @@ -88,9 +88,9 @@ static int vp8e_init(struct rk_venc *ictx, return -1; } - ctx->rk_ctrl_ids[0] = V4L2_CID_PRIVATE_HANTRO_HEADER; - ctx->rk_ctrl_ids[1] = V4L2_CID_PRIVATE_HANTRO_REG_PARAMS; - ctx->rk_ctrl_ids[2] = V4L2_CID_PRIVATE_HANTRO_HW_PARAMS; + ctx->rk_ctrl_ids[0] = V4L2_CID_PRIVATE_HANTRO_H1_VP8_HEADER; + ctx->rk_ctrl_ids[1] = V4L2_CID_PRIVATE_HANTRO_H1_VP8_REG_PARAMS; + ctx->rk_ctrl_ids[2] = V4L2_CID_PRIVATE_HANTRO_H1_VP8_HW_PARAMS; return 0; } -- GitLab