Loading drivers/media/platform/msm/vidc/hfi_packetization.c +25 −0 Original line number Original line Diff line number Diff line Loading @@ -1448,6 +1448,12 @@ int create_pkt_cmd_session_set_property( case HAL_RATE_CONTROL_VBR_VFR: case HAL_RATE_CONTROL_VBR_VFR: pkt->rg_property_data[1] = HFI_RATE_CONTROL_VBR_VFR; pkt->rg_property_data[1] = HFI_RATE_CONTROL_VBR_VFR; break; break; case HAL_RATE_CONTROL_MBR_CFR: pkt->rg_property_data[1] = HFI_RATE_CONTROL_MBR_CFR; break; case HAL_RATE_CONTROL_MBR_VFR: pkt->rg_property_data[1] = HFI_RATE_CONTROL_MBR_VFR; break; default: default: dprintk(VIDC_ERR, dprintk(VIDC_ERR, "Invalid Rate control setting: %p\n", "Invalid Rate control setting: %p\n", Loading Loading @@ -1559,6 +1565,25 @@ int create_pkt_cmd_session_set_property( sizeof(struct hfi_quantization_range); sizeof(struct hfi_quantization_range); break; break; } } case HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED: { struct hfi_quantization_range *hfi; struct hfi_quantization_range *hal_range = (struct hfi_quantization_range *) pdata; pkt->rg_property_data[0] = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE; hfi = (struct hfi_quantization_range *) &pkt->rg_property_data[1]; hfi->min_qp = hal_range->min_qp; hfi->max_qp = hal_range->max_qp; hfi->layer_id = hal_range->layer_id; pkt->size += sizeof(u32) + sizeof(struct hfi_quantization_range); break; } case HAL_PARAM_VENC_SEARCH_RANGE: case HAL_PARAM_VENC_SEARCH_RANGE: { { struct hfi_vc1e_perf_cfg_type *hfi; struct hfi_vc1e_perf_cfg_type *hfi; Loading drivers/media/platform/msm/vidc/msm_venc.c +72 −2 Original line number Original line Diff line number Diff line Loading @@ -73,6 +73,8 @@ static const char *const mpeg_video_rate_control[] = { "VBR CFR", "VBR CFR", "CBR VFR", "CBR VFR", "CBR CFR", "CBR CFR", "MBR CFR", "MBR VFR", NULL NULL }; }; Loading Loading @@ -233,7 +235,7 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .name = "Video Framerate and Bitrate Control", .name = "Video Framerate and Bitrate Control", .type = V4L2_CTRL_TYPE_MENU, .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .minimum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .maximum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR, .maximum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR, .default_value = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .default_value = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .step = 0, .step = 0, .menu_skip_mask = ~( .menu_skip_mask = ~( Loading @@ -241,7 +243,9 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR) (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR) ), ), .qmenu = mpeg_video_rate_control, .qmenu = mpeg_video_rate_control, }, }, Loading Loading @@ -528,6 +532,28 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .default_value = 128, .default_value = 128, .step = 1, .step = 1, }, }, { .id = V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED, .name = "H264 Minimum QP PACKED", .type = V4L2_CTRL_TYPE_INTEGER, .minimum = 0x00010101, .maximum = 0x00333333, .default_value = 0x00010101, .step = 1, .menu_skip_mask = 0, .qmenu = NULL, }, { .id = V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED, .name = "H264 Maximum QP PACKED", .type = V4L2_CTRL_TYPE_INTEGER, .minimum = 0x00010101, .maximum = 0x00333333, .default_value = 0x00333333, .step = 1, .menu_skip_mask = 0, .qmenu = NULL, }, { { .id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE, .id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE, .name = "Slice Mode", .name = "Slice Mode", Loading Loading @@ -2200,10 +2226,14 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR: update_ctrl.val = update_ctrl.val = V4L2_MPEG_VIDEO_BITRATE_MODE_VBR; V4L2_MPEG_VIDEO_BITRATE_MODE_VBR; break; case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR: update_ctrl.val = update_ctrl.val = V4L2_MPEG_VIDEO_BITRATE_MODE_CBR; V4L2_MPEG_VIDEO_BITRATE_MODE_CBR; break; } } final_mode = ctrl->val; final_mode = ctrl->val; Loading Loading @@ -2508,6 +2538,46 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &qp_range; pdata = &qp_range; break; break; } } case V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED: { struct v4l2_ctrl *qp_max; qp_max = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED); if (ctrl->val >= qp_max->val) { dprintk(VIDC_ERR, "Bad range: Min QP PACKED (0x%x) > Max QP PACKED (0x%x)\n", ctrl->val, qp_max->val); rc = -ERANGE; break; } property_id = HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED; qp_range.layer_id = 0; qp_range.max_qp = qp_max->val; qp_range.min_qp = ctrl->val; pdata = &qp_range; break; } case V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED: { struct v4l2_ctrl *qp_min; qp_min = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED); if (ctrl->val <= qp_min->val) { dprintk(VIDC_ERR, "Bad range: Max QP PACKED (%d) < Min QP PACKED (%d)\n", ctrl->val, qp_min->val); rc = -ERANGE; break; } property_id = HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED; qp_range.layer_id = 0; qp_range.max_qp = ctrl->val; qp_range.min_qp = qp_min->val; pdata = &qp_range; break; } case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE: { case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE: { int temp = 0; int temp = 0; Loading drivers/media/platform/msm/vidc/vidc_hfi.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -363,6 +363,9 @@ struct hfi_hybrid_hierp { #define HFI_RATE_CONTROL_VBR_CFR (HFI_OX_BASE + 0x3) #define HFI_RATE_CONTROL_VBR_CFR (HFI_OX_BASE + 0x3) #define HFI_RATE_CONTROL_CBR_VFR (HFI_OX_BASE + 0x4) #define HFI_RATE_CONTROL_CBR_VFR (HFI_OX_BASE + 0x4) #define HFI_RATE_CONTROL_CBR_CFR (HFI_OX_BASE + 0x5) #define HFI_RATE_CONTROL_CBR_CFR (HFI_OX_BASE + 0x5) #define HFI_RATE_CONTROL_MBR_CFR (HFI_OX_BASE + 0x6) #define HFI_RATE_CONTROL_MBR_VFR (HFI_OX_BASE + 0x7) struct hfi_uncompressed_plane_actual_constraints_info { struct hfi_uncompressed_plane_actual_constraints_info { u32 buffer_type; u32 buffer_type; Loading drivers/media/platform/msm/vidc/vidc_hfi_api.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -236,6 +236,7 @@ enum hal_property { HAL_PARAM_VENC_LOW_LATENCY, HAL_PARAM_VENC_LOW_LATENCY, HAL_PARAM_VENC_CONSTRAINED_INTRA_PRED, HAL_PARAM_VENC_CONSTRAINED_INTRA_PRED, HAL_CONFIG_VENC_BLUR_RESOLUTION, HAL_CONFIG_VENC_BLUR_RESOLUTION, HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED, }; }; enum hal_domain { enum hal_domain { Loading Loading @@ -710,6 +711,8 @@ enum hal_rate_control { HAL_RATE_CONTROL_VBR_CFR, HAL_RATE_CONTROL_VBR_CFR, HAL_RATE_CONTROL_CBR_VFR, HAL_RATE_CONTROL_CBR_VFR, HAL_RATE_CONTROL_CBR_CFR, HAL_RATE_CONTROL_CBR_CFR, HAL_RATE_CONTROL_MBR_CFR, HAL_RATE_CONTROL_MBR_VFR, HAL_UNUSED_RC = 0x10000000, HAL_UNUSED_RC = 0x10000000, }; }; Loading include/uapi/linux/v4l2-controls.h +11 −0 Original line number Original line Diff line number Diff line Loading @@ -702,7 +702,13 @@ enum v4l2_mpeg_vidc_video_rate_control { V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR = 2, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR = 2, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR = 3, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR = 3, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR = 4, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR = 4, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR = 5, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR = 6, }; }; #define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR \ V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR #define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR \ V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR #define V4L2_CID_MPEG_VIDC_VIDEO_ROTATION (V4L2_CID_MPEG_MSM_VIDC_BASE+14) #define V4L2_CID_MPEG_VIDC_VIDEO_ROTATION (V4L2_CID_MPEG_MSM_VIDC_BASE+14) enum v4l2_mpeg_vidc_video_rotation { enum v4l2_mpeg_vidc_video_rotation { Loading Loading @@ -1155,6 +1161,11 @@ enum v4l2_mpeg_vidc_video_lowlatency_mode { #define V4L2_CID_MPEG_VIDC_VIDEO_BLUR_HEIGHT \ #define V4L2_CID_MPEG_VIDC_VIDEO_BLUR_HEIGHT \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 90) (V4L2_CID_MPEG_MSM_VIDC_BASE + 90) #define V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 91) #define V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 92) /* Camera class control IDs */ /* Camera class control IDs */ #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) Loading Loading
drivers/media/platform/msm/vidc/hfi_packetization.c +25 −0 Original line number Original line Diff line number Diff line Loading @@ -1448,6 +1448,12 @@ int create_pkt_cmd_session_set_property( case HAL_RATE_CONTROL_VBR_VFR: case HAL_RATE_CONTROL_VBR_VFR: pkt->rg_property_data[1] = HFI_RATE_CONTROL_VBR_VFR; pkt->rg_property_data[1] = HFI_RATE_CONTROL_VBR_VFR; break; break; case HAL_RATE_CONTROL_MBR_CFR: pkt->rg_property_data[1] = HFI_RATE_CONTROL_MBR_CFR; break; case HAL_RATE_CONTROL_MBR_VFR: pkt->rg_property_data[1] = HFI_RATE_CONTROL_MBR_VFR; break; default: default: dprintk(VIDC_ERR, dprintk(VIDC_ERR, "Invalid Rate control setting: %p\n", "Invalid Rate control setting: %p\n", Loading Loading @@ -1559,6 +1565,25 @@ int create_pkt_cmd_session_set_property( sizeof(struct hfi_quantization_range); sizeof(struct hfi_quantization_range); break; break; } } case HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED: { struct hfi_quantization_range *hfi; struct hfi_quantization_range *hal_range = (struct hfi_quantization_range *) pdata; pkt->rg_property_data[0] = HFI_PROPERTY_PARAM_VENC_SESSION_QP_RANGE; hfi = (struct hfi_quantization_range *) &pkt->rg_property_data[1]; hfi->min_qp = hal_range->min_qp; hfi->max_qp = hal_range->max_qp; hfi->layer_id = hal_range->layer_id; pkt->size += sizeof(u32) + sizeof(struct hfi_quantization_range); break; } case HAL_PARAM_VENC_SEARCH_RANGE: case HAL_PARAM_VENC_SEARCH_RANGE: { { struct hfi_vc1e_perf_cfg_type *hfi; struct hfi_vc1e_perf_cfg_type *hfi; Loading
drivers/media/platform/msm/vidc/msm_venc.c +72 −2 Original line number Original line Diff line number Diff line Loading @@ -73,6 +73,8 @@ static const char *const mpeg_video_rate_control[] = { "VBR CFR", "VBR CFR", "CBR VFR", "CBR VFR", "CBR CFR", "CBR CFR", "MBR CFR", "MBR VFR", NULL NULL }; }; Loading Loading @@ -233,7 +235,7 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .name = "Video Framerate and Bitrate Control", .name = "Video Framerate and Bitrate Control", .type = V4L2_CTRL_TYPE_MENU, .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .minimum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .maximum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR, .maximum = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR, .default_value = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .default_value = V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_OFF, .step = 0, .step = 0, .menu_skip_mask = ~( .menu_skip_mask = ~( Loading @@ -241,7 +243,9 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR) (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR) ), ), .qmenu = mpeg_video_rate_control, .qmenu = mpeg_video_rate_control, }, }, Loading Loading @@ -528,6 +532,28 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .default_value = 128, .default_value = 128, .step = 1, .step = 1, }, }, { .id = V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED, .name = "H264 Minimum QP PACKED", .type = V4L2_CTRL_TYPE_INTEGER, .minimum = 0x00010101, .maximum = 0x00333333, .default_value = 0x00010101, .step = 1, .menu_skip_mask = 0, .qmenu = NULL, }, { .id = V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED, .name = "H264 Maximum QP PACKED", .type = V4L2_CTRL_TYPE_INTEGER, .minimum = 0x00010101, .maximum = 0x00333333, .default_value = 0x00333333, .step = 1, .menu_skip_mask = 0, .qmenu = NULL, }, { { .id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE, .id = V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE, .name = "Slice Mode", .name = "Slice Mode", Loading Loading @@ -2200,10 +2226,14 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR: update_ctrl.val = update_ctrl.val = V4L2_MPEG_VIDEO_BITRATE_MODE_VBR; V4L2_MPEG_VIDEO_BITRATE_MODE_VBR; break; case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR: case V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR: update_ctrl.val = update_ctrl.val = V4L2_MPEG_VIDEO_BITRATE_MODE_CBR; V4L2_MPEG_VIDEO_BITRATE_MODE_CBR; break; } } final_mode = ctrl->val; final_mode = ctrl->val; Loading Loading @@ -2508,6 +2538,46 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &qp_range; pdata = &qp_range; break; break; } } case V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED: { struct v4l2_ctrl *qp_max; qp_max = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED); if (ctrl->val >= qp_max->val) { dprintk(VIDC_ERR, "Bad range: Min QP PACKED (0x%x) > Max QP PACKED (0x%x)\n", ctrl->val, qp_max->val); rc = -ERANGE; break; } property_id = HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED; qp_range.layer_id = 0; qp_range.max_qp = qp_max->val; qp_range.min_qp = ctrl->val; pdata = &qp_range; break; } case V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED: { struct v4l2_ctrl *qp_min; qp_min = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED); if (ctrl->val <= qp_min->val) { dprintk(VIDC_ERR, "Bad range: Max QP PACKED (%d) < Min QP PACKED (%d)\n", ctrl->val, qp_min->val); rc = -ERANGE; break; } property_id = HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED; qp_range.layer_id = 0; qp_range.max_qp = ctrl->val; qp_range.min_qp = qp_min->val; pdata = &qp_range; break; } case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE: { case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE: { int temp = 0; int temp = 0; Loading
drivers/media/platform/msm/vidc/vidc_hfi.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -363,6 +363,9 @@ struct hfi_hybrid_hierp { #define HFI_RATE_CONTROL_VBR_CFR (HFI_OX_BASE + 0x3) #define HFI_RATE_CONTROL_VBR_CFR (HFI_OX_BASE + 0x3) #define HFI_RATE_CONTROL_CBR_VFR (HFI_OX_BASE + 0x4) #define HFI_RATE_CONTROL_CBR_VFR (HFI_OX_BASE + 0x4) #define HFI_RATE_CONTROL_CBR_CFR (HFI_OX_BASE + 0x5) #define HFI_RATE_CONTROL_CBR_CFR (HFI_OX_BASE + 0x5) #define HFI_RATE_CONTROL_MBR_CFR (HFI_OX_BASE + 0x6) #define HFI_RATE_CONTROL_MBR_VFR (HFI_OX_BASE + 0x7) struct hfi_uncompressed_plane_actual_constraints_info { struct hfi_uncompressed_plane_actual_constraints_info { u32 buffer_type; u32 buffer_type; Loading
drivers/media/platform/msm/vidc/vidc_hfi_api.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -236,6 +236,7 @@ enum hal_property { HAL_PARAM_VENC_LOW_LATENCY, HAL_PARAM_VENC_LOW_LATENCY, HAL_PARAM_VENC_CONSTRAINED_INTRA_PRED, HAL_PARAM_VENC_CONSTRAINED_INTRA_PRED, HAL_CONFIG_VENC_BLUR_RESOLUTION, HAL_CONFIG_VENC_BLUR_RESOLUTION, HAL_PARAM_VENC_SESSION_QP_RANGE_PACKED, }; }; enum hal_domain { enum hal_domain { Loading Loading @@ -710,6 +711,8 @@ enum hal_rate_control { HAL_RATE_CONTROL_VBR_CFR, HAL_RATE_CONTROL_VBR_CFR, HAL_RATE_CONTROL_CBR_VFR, HAL_RATE_CONTROL_CBR_VFR, HAL_RATE_CONTROL_CBR_CFR, HAL_RATE_CONTROL_CBR_CFR, HAL_RATE_CONTROL_MBR_CFR, HAL_RATE_CONTROL_MBR_VFR, HAL_UNUSED_RC = 0x10000000, HAL_UNUSED_RC = 0x10000000, }; }; Loading
include/uapi/linux/v4l2-controls.h +11 −0 Original line number Original line Diff line number Diff line Loading @@ -702,7 +702,13 @@ enum v4l2_mpeg_vidc_video_rate_control { V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR = 2, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_VBR_CFR = 2, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR = 3, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_VFR = 3, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR = 4, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_CBR_CFR = 4, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR = 5, V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR = 6, }; }; #define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR \ V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_CFR #define V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR \ V4L2_CID_MPEG_VIDC_VIDEO_RATE_CONTROL_MBR_VFR #define V4L2_CID_MPEG_VIDC_VIDEO_ROTATION (V4L2_CID_MPEG_MSM_VIDC_BASE+14) #define V4L2_CID_MPEG_VIDC_VIDEO_ROTATION (V4L2_CID_MPEG_MSM_VIDC_BASE+14) enum v4l2_mpeg_vidc_video_rotation { enum v4l2_mpeg_vidc_video_rotation { Loading Loading @@ -1155,6 +1161,11 @@ enum v4l2_mpeg_vidc_video_lowlatency_mode { #define V4L2_CID_MPEG_VIDC_VIDEO_BLUR_HEIGHT \ #define V4L2_CID_MPEG_VIDC_VIDEO_BLUR_HEIGHT \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 90) (V4L2_CID_MPEG_MSM_VIDC_BASE + 90) #define V4L2_CID_MPEG_VIDEO_MIN_QP_PACKED \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 91) #define V4L2_CID_MPEG_VIDEO_MAX_QP_PACKED \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 92) /* Camera class control IDs */ /* Camera class control IDs */ #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) Loading