Loading drivers/media/platform/msm/vidc/hfi_packetization.c +17 −4 Original line number Diff line number Diff line Loading @@ -1745,7 +1745,7 @@ int create_pkt_cmd_session_set_property( HFI_PROPERTY_PARAM_VDEC_SCS_THRESHOLD; hfi = (struct hfi_scs_threshold *) &pkt->rg_property_data[1]; hfi->threshold_value = ((struct hfi_scs_threshold *) pdata)->threshold_value; ((struct hal_scs_threshold *) pdata)->threshold_value; pkt->size += sizeof(u32) + sizeof(struct hfi_scs_threshold); break; } Loading Loading @@ -1882,9 +1882,22 @@ int create_pkt_cmd_session_set_property( } case HAL_CONFIG_VENC_PERF_MODE: { pkt->rg_property_data[0] = HFI_PROPERTY_CONFIG_VENC_PERF_MODE; pkt->rg_property_data[1] = *(u32 *)pdata; u32 hfi_perf_mode = 0; enum hal_perf_mode hal_perf_mode = *(enum hal_perf_mode *)pdata; switch (hal_perf_mode) { case HAL_PERF_MODE_POWER_SAVE: hfi_perf_mode = HFI_VENC_PERFMODE_POWER_SAVE; break; case HAL_PERF_MODE_POWER_MAX_QUALITY: hfi_perf_mode = HFI_VENC_PERFMODE_MAX_QUALITY; break; default: return -ENOTSUPP; } pkt->rg_property_data[0] = HFI_PROPERTY_CONFIG_VENC_PERF_MODE; pkt->rg_property_data[1] = hfi_perf_mode; pkt->size += sizeof(u32) * 2; break; } Loading drivers/media/platform/msm/vidc/msm_vdec.c +8 −15 Original line number Diff line number Diff line Loading @@ -2087,7 +2087,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) struct hal_extradata_enable extra; struct hal_buffer_alloc_mode alloc_mode; struct hal_multi_stream multi_stream; struct hfi_scs_threshold scs_threshold; struct hal_scs_threshold scs_threshold; struct hal_mvc_buffer_layout layout; struct v4l2_ctrl *temp_ctrl = NULL; struct hal_profile_level profile_level; Loading Loading @@ -2121,10 +2121,8 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) switch (ctrl->id) { case V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT: property_id = HAL_PARAM_NAL_STREAM_FORMAT_SELECT; stream_format.nal_stream_format_supported = (0x00000001 << ctrl->val); property_id = HAL_PARAM_NAL_STREAM_FORMAT_SELECT; stream_format.nal_stream_format_supported = BIT(ctrl->val); pdata = &stream_format; break; case V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER: Loading @@ -2133,20 +2131,17 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &property_val; break; case V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_PICTURE_TYPE: property_id = HAL_PARAM_VDEC_PICTURE_TYPE_DECODE; property_id = HAL_PARAM_VDEC_PICTURE_TYPE_DECODE; enable_picture.picture_type = ctrl->val; pdata = &enable_picture; break; case V4L2_CID_MPEG_VIDC_VIDEO_KEEP_ASPECT_RATIO: property_id = HAL_PARAM_VDEC_OUTPUT2_KEEP_ASPECT_RATIO; property_id = HAL_PARAM_VDEC_OUTPUT2_KEEP_ASPECT_RATIO; hal_property.enable = ctrl->val; pdata = &hal_property; break; case V4L2_CID_MPEG_VIDC_VIDEO_POST_LOOP_DEBLOCKER_MODE: property_id = HAL_CONFIG_VDEC_POST_LOOP_DEBLOCKER; property_id = HAL_CONFIG_VDEC_POST_LOOP_DEBLOCKER; hal_property.enable = ctrl->val; pdata = &hal_property; break; Loading @@ -2156,14 +2151,12 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &property_val; break; case V4L2_CID_MPEG_VIDC_VIDEO_MB_ERROR_MAP_REPORTING: property_id = HAL_CONFIG_VDEC_MB_ERROR_MAP_REPORTING; property_id = HAL_CONFIG_VDEC_MB_ERROR_MAP_REPORTING; hal_property.enable = ctrl->val; pdata = &hal_property; break; case V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER: property_id = HAL_PARAM_VDEC_CONTINUE_DATA_TRANSFER; property_id = HAL_PARAM_VDEC_CONTINUE_DATA_TRANSFER; hal_property.enable = ctrl->val; pdata = &hal_property; break; Loading drivers/media/platform/msm/vidc/msm_venc.c +23 −42 Original line number Diff line number Diff line Loading @@ -1867,7 +1867,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) struct hal_ltr_mark mark_ltr; struct hal_hybrid_hierp hyb_hierp; u32 hier_p_layers = 0, hier_b_layers = 0, mbi_statistics_mode = 0; struct hal_venc_perf_mode venc_mode; enum hal_perf_mode venc_mode; if (!inst || !inst->core || !inst->core->device) { dprintk(VIDC_ERR, "%s invalid parameters\n", __func__); Loading Loading @@ -1905,8 +1905,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } property_id = HAL_CONFIG_VENC_IDR_PERIOD; property_id = HAL_CONFIG_VENC_IDR_PERIOD; idr_period.idr_period = ctrl->val; pdata = &idr_period; break; Loading Loading @@ -1947,8 +1946,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } case V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME: property_id = HAL_CONFIG_VENC_REQUEST_IFRAME; property_id = HAL_CONFIG_VENC_REQUEST_IFRAME; request_iframe.enable = true; pdata = &request_iframe; break; Loading Loading @@ -2054,8 +2052,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL( V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.entropy_mode = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.cabac_model = venc_v4l2_to_hal( Loading @@ -2066,8 +2063,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.cabac_model = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.entropy_mode = venc_v4l2_to_hal( Loading @@ -2078,8 +2074,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( Loading @@ -2090,8 +2085,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( Loading @@ -2102,8 +2096,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_H264_PROFILE: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( Loading @@ -2116,8 +2109,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_H264_LEVEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( Loading @@ -2130,8 +2122,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( Loading @@ -2142,8 +2133,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( Loading @@ -2152,8 +2142,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &profile_level; break; case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL: property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL, ctrl->val); Loading Loading @@ -2202,8 +2191,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) rc = -EINVAL; break; } property_id = HAL_CONFIG_VPE_OPERATIONS; property_id = HAL_CONFIG_VPE_OPERATIONS; operations.rotate = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, ctrl->val); Loading @@ -2217,8 +2205,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) qpp = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP); qpb = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP); property_id = HAL_PARAM_VENC_SESSION_QP; property_id = HAL_PARAM_VENC_SESSION_QP; quantization.qpi = ctrl->val; quantization.qpp = qpp->val; quantization.qpb = qpb->val; Loading @@ -2233,8 +2220,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) qpi = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP); qpb = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP); property_id = HAL_PARAM_VENC_SESSION_QP; property_id = HAL_PARAM_VENC_SESSION_QP; quantization.qpp = ctrl->val; quantization.qpi = qpi->val; quantization.qpb = qpb->val; Loading @@ -2249,8 +2235,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) qpi = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP); qpp = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP); property_id = HAL_PARAM_VENC_SESSION_QP; property_id = HAL_PARAM_VENC_SESSION_QP; quantization.qpb = ctrl->val; quantization.qpi = qpi->val; quantization.qpp = qpp->val; Loading Loading @@ -2341,8 +2326,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) if (temp) temp_ctrl = TRY_GET_CTRL(temp); property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; multi_slice_control.multi_slice = ctrl->val; multi_slice_control.slice_size = temp ? temp_ctrl->val : 0; Loading @@ -2354,8 +2338,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_GOB: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE); property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; multi_slice_control.multi_slice = temp_ctrl->val; multi_slice_control.slice_size = ctrl->val; pdata = &multi_slice_control; Loading Loading @@ -2386,8 +2369,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) air_ref = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_AIR_REF); cir_mbs = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_CIR_MBS); property_id = HAL_PARAM_VENC_INTRA_REFRESH; property_id = HAL_PARAM_VENC_INTRA_REFRESH; intra_refresh.mode = ctrl->val; intra_refresh.air_mbs = air_mbs->val; Loading Loading @@ -2519,8 +2501,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } case V4L2_CID_MPEG_VIDEO_HEADER_MODE: property_id = HAL_PARAM_VENC_SYNC_FRAME_SEQUENCE_HEADER; property_id = HAL_PARAM_VENC_SYNC_FRAME_SEQUENCE_HEADER; switch (ctrl->val) { case V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE: Loading Loading @@ -2708,10 +2689,10 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_PERF_MODE: property_id = HAL_CONFIG_VENC_PERF_MODE; venc_mode.mode = ctrl->val; venc_mode = ctrl->val; pdata = &venc_mode; msm_dcvs_enc_set_power_save_mode(inst, venc_mode.mode == V4L2_MPEG_VIDC_VIDEO_PERF_POWER_SAVE); ctrl->val == V4L2_MPEG_VIDC_VIDEO_PERF_POWER_SAVE); break; case V4L2_CID_MPEG_VIDC_VIDEO_HIER_B_NUM_LAYERS: if (inst->fmts[CAPTURE_PORT]->fourcc != V4L2_PIX_FMT_HEVC) { Loading drivers/media/platform/msm/vidc/vidc_hfi_api.h +4 −3 Original line number Diff line number Diff line Loading @@ -1056,15 +1056,16 @@ struct hal_ltr_mark { u32 mark_frame; }; struct hal_venc_perf_mode { u32 mode; enum hal_perf_mode { HAL_PERF_MODE_POWER_SAVE, HAL_PERF_MODE_POWER_MAX_QUALITY, }; struct hal_hybrid_hierp { u32 layers; }; struct hfi_scs_threshold { struct hal_scs_threshold { u32 threshold_value; }; Loading drivers/media/platform/msm/vidc/vidc_hfi_helper.h +4 −0 Original line number Diff line number Diff line Loading @@ -742,6 +742,10 @@ struct hfi_vpe_color_space_conversion { u32 csc_limit[HFI_MAX_LIMIT_COEFFS]; }; struct hfi_scs_threshold { u32 threshold_value; }; #define HFI_ROTATE_NONE (HFI_COMMON_BASE + 0x1) #define HFI_ROTATE_90 (HFI_COMMON_BASE + 0x2) #define HFI_ROTATE_180 (HFI_COMMON_BASE + 0x3) Loading Loading
drivers/media/platform/msm/vidc/hfi_packetization.c +17 −4 Original line number Diff line number Diff line Loading @@ -1745,7 +1745,7 @@ int create_pkt_cmd_session_set_property( HFI_PROPERTY_PARAM_VDEC_SCS_THRESHOLD; hfi = (struct hfi_scs_threshold *) &pkt->rg_property_data[1]; hfi->threshold_value = ((struct hfi_scs_threshold *) pdata)->threshold_value; ((struct hal_scs_threshold *) pdata)->threshold_value; pkt->size += sizeof(u32) + sizeof(struct hfi_scs_threshold); break; } Loading Loading @@ -1882,9 +1882,22 @@ int create_pkt_cmd_session_set_property( } case HAL_CONFIG_VENC_PERF_MODE: { pkt->rg_property_data[0] = HFI_PROPERTY_CONFIG_VENC_PERF_MODE; pkt->rg_property_data[1] = *(u32 *)pdata; u32 hfi_perf_mode = 0; enum hal_perf_mode hal_perf_mode = *(enum hal_perf_mode *)pdata; switch (hal_perf_mode) { case HAL_PERF_MODE_POWER_SAVE: hfi_perf_mode = HFI_VENC_PERFMODE_POWER_SAVE; break; case HAL_PERF_MODE_POWER_MAX_QUALITY: hfi_perf_mode = HFI_VENC_PERFMODE_MAX_QUALITY; break; default: return -ENOTSUPP; } pkt->rg_property_data[0] = HFI_PROPERTY_CONFIG_VENC_PERF_MODE; pkt->rg_property_data[1] = hfi_perf_mode; pkt->size += sizeof(u32) * 2; break; } Loading
drivers/media/platform/msm/vidc/msm_vdec.c +8 −15 Original line number Diff line number Diff line Loading @@ -2087,7 +2087,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) struct hal_extradata_enable extra; struct hal_buffer_alloc_mode alloc_mode; struct hal_multi_stream multi_stream; struct hfi_scs_threshold scs_threshold; struct hal_scs_threshold scs_threshold; struct hal_mvc_buffer_layout layout; struct v4l2_ctrl *temp_ctrl = NULL; struct hal_profile_level profile_level; Loading Loading @@ -2121,10 +2121,8 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) switch (ctrl->id) { case V4L2_CID_MPEG_VIDC_VIDEO_STREAM_FORMAT: property_id = HAL_PARAM_NAL_STREAM_FORMAT_SELECT; stream_format.nal_stream_format_supported = (0x00000001 << ctrl->val); property_id = HAL_PARAM_NAL_STREAM_FORMAT_SELECT; stream_format.nal_stream_format_supported = BIT(ctrl->val); pdata = &stream_format; break; case V4L2_CID_MPEG_VIDC_VIDEO_OUTPUT_ORDER: Loading @@ -2133,20 +2131,17 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &property_val; break; case V4L2_CID_MPEG_VIDC_VIDEO_ENABLE_PICTURE_TYPE: property_id = HAL_PARAM_VDEC_PICTURE_TYPE_DECODE; property_id = HAL_PARAM_VDEC_PICTURE_TYPE_DECODE; enable_picture.picture_type = ctrl->val; pdata = &enable_picture; break; case V4L2_CID_MPEG_VIDC_VIDEO_KEEP_ASPECT_RATIO: property_id = HAL_PARAM_VDEC_OUTPUT2_KEEP_ASPECT_RATIO; property_id = HAL_PARAM_VDEC_OUTPUT2_KEEP_ASPECT_RATIO; hal_property.enable = ctrl->val; pdata = &hal_property; break; case V4L2_CID_MPEG_VIDC_VIDEO_POST_LOOP_DEBLOCKER_MODE: property_id = HAL_CONFIG_VDEC_POST_LOOP_DEBLOCKER; property_id = HAL_CONFIG_VDEC_POST_LOOP_DEBLOCKER; hal_property.enable = ctrl->val; pdata = &hal_property; break; Loading @@ -2156,14 +2151,12 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &property_val; break; case V4L2_CID_MPEG_VIDC_VIDEO_MB_ERROR_MAP_REPORTING: property_id = HAL_CONFIG_VDEC_MB_ERROR_MAP_REPORTING; property_id = HAL_CONFIG_VDEC_MB_ERROR_MAP_REPORTING; hal_property.enable = ctrl->val; pdata = &hal_property; break; case V4L2_CID_MPEG_VIDC_VIDEO_CONTINUE_DATA_TRANSFER: property_id = HAL_PARAM_VDEC_CONTINUE_DATA_TRANSFER; property_id = HAL_PARAM_VDEC_CONTINUE_DATA_TRANSFER; hal_property.enable = ctrl->val; pdata = &hal_property; break; Loading
drivers/media/platform/msm/vidc/msm_venc.c +23 −42 Original line number Diff line number Diff line Loading @@ -1867,7 +1867,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) struct hal_ltr_mark mark_ltr; struct hal_hybrid_hierp hyb_hierp; u32 hier_p_layers = 0, hier_b_layers = 0, mbi_statistics_mode = 0; struct hal_venc_perf_mode venc_mode; enum hal_perf_mode venc_mode; if (!inst || !inst->core || !inst->core->device) { dprintk(VIDC_ERR, "%s invalid parameters\n", __func__); Loading Loading @@ -1905,8 +1905,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } property_id = HAL_CONFIG_VENC_IDR_PERIOD; property_id = HAL_CONFIG_VENC_IDR_PERIOD; idr_period.idr_period = ctrl->val; pdata = &idr_period; break; Loading Loading @@ -1947,8 +1946,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } case V4L2_CID_MPEG_VIDC_VIDEO_REQUEST_IFRAME: property_id = HAL_CONFIG_VENC_REQUEST_IFRAME; property_id = HAL_CONFIG_VENC_REQUEST_IFRAME; request_iframe.enable = true; pdata = &request_iframe; break; Loading Loading @@ -2054,8 +2052,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL( V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.entropy_mode = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.cabac_model = venc_v4l2_to_hal( Loading @@ -2066,8 +2063,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.cabac_model = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.entropy_mode = venc_v4l2_to_hal( Loading @@ -2078,8 +2074,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( Loading @@ -2090,8 +2085,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( Loading @@ -2102,8 +2096,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_H264_PROFILE: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( Loading @@ -2116,8 +2109,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_H264_LEVEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( Loading @@ -2130,8 +2122,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( Loading @@ -2142,8 +2133,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDC_VIDEO_H263_LEVEL: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_H263_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( Loading @@ -2152,8 +2142,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) pdata = &profile_level; break; case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL: property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL, ctrl->val); Loading Loading @@ -2202,8 +2191,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) rc = -EINVAL; break; } property_id = HAL_CONFIG_VPE_OPERATIONS; property_id = HAL_CONFIG_VPE_OPERATIONS; operations.rotate = venc_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, ctrl->val); Loading @@ -2217,8 +2205,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) qpp = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP); qpb = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP); property_id = HAL_PARAM_VENC_SESSION_QP; property_id = HAL_PARAM_VENC_SESSION_QP; quantization.qpi = ctrl->val; quantization.qpp = qpp->val; quantization.qpb = qpb->val; Loading @@ -2233,8 +2220,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) qpi = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP); qpb = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP); property_id = HAL_PARAM_VENC_SESSION_QP; property_id = HAL_PARAM_VENC_SESSION_QP; quantization.qpp = ctrl->val; quantization.qpi = qpi->val; quantization.qpb = qpb->val; Loading @@ -2249,8 +2235,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) qpi = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP); qpp = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP); property_id = HAL_PARAM_VENC_SESSION_QP; property_id = HAL_PARAM_VENC_SESSION_QP; quantization.qpb = ctrl->val; quantization.qpi = qpi->val; quantization.qpp = qpp->val; Loading Loading @@ -2341,8 +2326,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) if (temp) temp_ctrl = TRY_GET_CTRL(temp); property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; multi_slice_control.multi_slice = ctrl->val; multi_slice_control.slice_size = temp ? temp_ctrl->val : 0; Loading @@ -2354,8 +2338,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) case V4L2_CID_MPEG_VIDEO_MULTI_SLICE_GOB: temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE); property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; property_id = HAL_PARAM_VENC_MULTI_SLICE_CONTROL; multi_slice_control.multi_slice = temp_ctrl->val; multi_slice_control.slice_size = ctrl->val; pdata = &multi_slice_control; Loading Loading @@ -2386,8 +2369,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) air_ref = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_AIR_REF); cir_mbs = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_CIR_MBS); property_id = HAL_PARAM_VENC_INTRA_REFRESH; property_id = HAL_PARAM_VENC_INTRA_REFRESH; intra_refresh.mode = ctrl->val; intra_refresh.air_mbs = air_mbs->val; Loading Loading @@ -2519,8 +2501,7 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } case V4L2_CID_MPEG_VIDEO_HEADER_MODE: property_id = HAL_PARAM_VENC_SYNC_FRAME_SEQUENCE_HEADER; property_id = HAL_PARAM_VENC_SYNC_FRAME_SEQUENCE_HEADER; switch (ctrl->val) { case V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE: Loading Loading @@ -2708,10 +2689,10 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_PERF_MODE: property_id = HAL_CONFIG_VENC_PERF_MODE; venc_mode.mode = ctrl->val; venc_mode = ctrl->val; pdata = &venc_mode; msm_dcvs_enc_set_power_save_mode(inst, venc_mode.mode == V4L2_MPEG_VIDC_VIDEO_PERF_POWER_SAVE); ctrl->val == V4L2_MPEG_VIDC_VIDEO_PERF_POWER_SAVE); break; case V4L2_CID_MPEG_VIDC_VIDEO_HIER_B_NUM_LAYERS: if (inst->fmts[CAPTURE_PORT]->fourcc != V4L2_PIX_FMT_HEVC) { Loading
drivers/media/platform/msm/vidc/vidc_hfi_api.h +4 −3 Original line number Diff line number Diff line Loading @@ -1056,15 +1056,16 @@ struct hal_ltr_mark { u32 mark_frame; }; struct hal_venc_perf_mode { u32 mode; enum hal_perf_mode { HAL_PERF_MODE_POWER_SAVE, HAL_PERF_MODE_POWER_MAX_QUALITY, }; struct hal_hybrid_hierp { u32 layers; }; struct hfi_scs_threshold { struct hal_scs_threshold { u32 threshold_value; }; Loading
drivers/media/platform/msm/vidc/vidc_hfi_helper.h +4 −0 Original line number Diff line number Diff line Loading @@ -742,6 +742,10 @@ struct hfi_vpe_color_space_conversion { u32 csc_limit[HFI_MAX_LIMIT_COEFFS]; }; struct hfi_scs_threshold { u32 threshold_value; }; #define HFI_ROTATE_NONE (HFI_COMMON_BASE + 0x1) #define HFI_ROTATE_90 (HFI_COMMON_BASE + 0x2) #define HFI_ROTATE_180 (HFI_COMMON_BASE + 0x3) Loading