Loading drivers/media/platform/msm/vidc/hfi_response_handler.c +12 −85 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ static int hfi_process_sess_evt_seq_changed(u32 device_id, struct hfi_profile_level *profile_level; struct hfi_bit_depth *pixel_depth; struct hfi_pic_struct *pic_struct; u32 entropy_mode = 0; u8 *data_ptr; int prop_id; enum msm_vidc_pixel_depth luma_bit_depth, chroma_bit_depth; Loading Loading @@ -158,6 +159,8 @@ static int hfi_process_sess_evt_seq_changed(u32 device_id, data_ptr = data_ptr + sizeof(u32); profile_level = (struct hfi_profile_level *) data_ptr; event_notify.profile = profile_level->profile; event_notify.level = profile_level->level; dprintk(VIDC_DBG, "profile: %d level: %d\n", profile_level->profile, profile_level->level); Loading Loading @@ -219,6 +222,15 @@ static int hfi_process_sess_evt_seq_changed(u32 device_id, data_ptr += sizeof(struct hfi_colour_space); break; case HFI_PROPERTY_CONFIG_VDEC_ENTROPY: data_ptr = data_ptr + sizeof(u32); entropy_mode = *(u32 *)data_ptr; event_notify.entropy_mode = entropy_mode; dprintk(VIDC_DBG, "Entropy Mode: 0x%x\n", entropy_mode); data_ptr += sizeof(u32); break; default: dprintk(VIDC_ERR, "%s cmd: %#x not supported\n", Loading Loading @@ -1001,59 +1013,6 @@ enum vidc_status hfi_process_sys_init_done_prop_read( return status; } static void hfi_process_sess_get_prop_dec_entropy( struct hfi_msg_session_property_info_packet *prop, enum hal_h264_entropy *entropy) { u32 req_bytes, hfi_entropy; req_bytes = prop->size - sizeof( struct hfi_msg_session_property_info_packet); if (!req_bytes || req_bytes % sizeof(hfi_entropy)) { dprintk(VIDC_ERR, "%s: bad packet: %d\n", __func__, req_bytes); return; } hfi_entropy = prop->rg_property_data[1]; *entropy = hfi_entropy == HFI_H264_ENTROPY_CAVLC ? HAL_H264_ENTROPY_CAVLC : hfi_entropy == HFI_H264_ENTROPY_CABAC ? HAL_H264_ENTROPY_CABAC : HAL_UNUSED_ENTROPY; } static void hfi_process_sess_get_prop_profile_level( struct hfi_msg_session_property_info_packet *prop, struct hfi_profile_level *profile_level) { struct hfi_profile_level *hfi_profile_level; u32 req_bytes; dprintk(VIDC_DBG, "Entered %s\n", __func__); if (!prop) { dprintk(VIDC_ERR, "hal_process_sess_get_profile_level: bad_prop: %pK\n", prop); return; } req_bytes = prop->size - sizeof( struct hfi_msg_session_property_info_packet); if (!req_bytes || req_bytes % sizeof(struct hfi_profile_level)) { dprintk(VIDC_ERR, "hal_process_sess_get_profile_level: bad_pkt: %d\n", req_bytes); return; } hfi_profile_level = (struct hfi_profile_level *) &prop->rg_property_data[1]; profile_level->profile = hfi_profile_level->profile; profile_level->level = hfi_profile_level->level; dprintk(VIDC_DBG, "%s profile: %d level: %d\n", __func__, profile_level->profile, profile_level->level); } static void hfi_process_sess_get_prop_buf_req( struct hfi_msg_session_property_info_packet *prop, struct buffer_requirements *buffreq) Loading Loading @@ -1179,8 +1138,6 @@ static int hfi_process_session_prop_info(u32 device_id, struct msm_vidc_cb_info *info) { struct msm_vidc_cb_cmd_done cmd_done = {0}; struct hfi_profile_level profile_level = {0}; enum hal_h264_entropy entropy = {0}; struct buffer_requirements buff_req = { { {0} } }; dprintk(VIDC_DBG, "Received SESSION_PROPERTY_INFO[%#x]\n", Loading Loading @@ -1210,36 +1167,6 @@ static int hfi_process_session_prop_info(u32 device_id, .response.cmd = cmd_done, }; return 0; case HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT: hfi_process_sess_get_prop_profile_level(pkt, &profile_level); cmd_done.device_id = device_id; cmd_done.session_id = (void *)(uintptr_t)pkt->session_id; cmd_done.status = VIDC_ERR_NONE; cmd_done.data.property.profile_level = (struct hal_profile_level) { .profile = profile_level.profile, .level = profile_level.level, }; cmd_done.size = sizeof(struct hal_profile_level); *info = (struct msm_vidc_cb_info) { .response_type = HAL_SESSION_PROPERTY_INFO, .response.cmd = cmd_done, }; return 0; case HFI_PROPERTY_CONFIG_VDEC_ENTROPY: hfi_process_sess_get_prop_dec_entropy(pkt, &entropy); cmd_done.device_id = device_id; cmd_done.session_id = (void *)(uintptr_t)pkt->session_id; cmd_done.status = VIDC_ERR_NONE; cmd_done.data.property.h264_entropy = entropy; cmd_done.size = sizeof(enum hal_h264_entropy); *info = (struct msm_vidc_cb_info) { .response_type = HAL_SESSION_PROPERTY_INFO, .response.cmd = cmd_done, }; return 0; default: dprintk(VIDC_DBG, Loading drivers/media/platform/msm/vidc/msm_vdec.c +4 −74 Original line number Diff line number Diff line Loading @@ -1418,76 +1418,6 @@ static struct v4l2_ctrl *get_ctrl_from_cluster(int id, return NULL; } static int vdec_v4l2_to_hal(int id, int value) { switch (id) { /* H264 */ case V4L2_CID_MPEG_VIDEO_H264_PROFILE: switch (value) { case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE: return HAL_H264_PROFILE_BASELINE; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE: return HAL_H264_PROFILE_CONSTRAINED_BASE; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH: return HAL_H264_PROFILE_CONSTRAINED_HIGH; case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN: return HAL_H264_PROFILE_MAIN; case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED: return HAL_H264_PROFILE_EXTENDED; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH: return HAL_H264_PROFILE_HIGH; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10: return HAL_H264_PROFILE_HIGH10; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422: return HAL_H264_PROFILE_HIGH422; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE: return HAL_H264_PROFILE_HIGH444; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LEVEL: switch (value) { case V4L2_MPEG_VIDEO_H264_LEVEL_1_0: return HAL_H264_LEVEL_1; case V4L2_MPEG_VIDEO_H264_LEVEL_1B: return HAL_H264_LEVEL_1b; case V4L2_MPEG_VIDEO_H264_LEVEL_1_1: return HAL_H264_LEVEL_11; case V4L2_MPEG_VIDEO_H264_LEVEL_1_2: return HAL_H264_LEVEL_12; case V4L2_MPEG_VIDEO_H264_LEVEL_1_3: return HAL_H264_LEVEL_13; case V4L2_MPEG_VIDEO_H264_LEVEL_2_0: return HAL_H264_LEVEL_2; case V4L2_MPEG_VIDEO_H264_LEVEL_2_1: return HAL_H264_LEVEL_21; case V4L2_MPEG_VIDEO_H264_LEVEL_2_2: return HAL_H264_LEVEL_22; case V4L2_MPEG_VIDEO_H264_LEVEL_3_0: return HAL_H264_LEVEL_3; case V4L2_MPEG_VIDEO_H264_LEVEL_3_1: return HAL_H264_LEVEL_31; case V4L2_MPEG_VIDEO_H264_LEVEL_3_2: return HAL_H264_LEVEL_32; case V4L2_MPEG_VIDEO_H264_LEVEL_4_0: return HAL_H264_LEVEL_4; case V4L2_MPEG_VIDEO_H264_LEVEL_4_1: return HAL_H264_LEVEL_41; case V4L2_MPEG_VIDEO_H264_LEVEL_4_2: return HAL_H264_LEVEL_42; case V4L2_MPEG_VIDEO_H264_LEVEL_5_0: return HAL_H264_LEVEL_5; case V4L2_MPEG_VIDEO_H264_LEVEL_5_1: return HAL_H264_LEVEL_51; default: goto unknown_value; } } unknown_value: dprintk(VIDC_WARN, "Unknown control (%x, %d)\n", id, value); return -EINVAL; } int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) { int rc = 0; Loading Loading @@ -1670,9 +1600,9 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = vdec_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = vdec_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -1681,9 +1611,9 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = vdec_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = vdec_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading drivers/media/platform/msm/vidc/msm_venc.c +22 −234 Original line number Diff line number Diff line Loading @@ -1621,218 +1621,6 @@ static struct v4l2_ctrl *get_ctrl_from_cluster(int id, return NULL; } /* Helper function to translate V4L2_* to HAL_* */ static inline int venc_v4l2_to_hal(int id, int value) { switch (id) { /* H264 */ case V4L2_CID_MPEG_VIDEO_H264_PROFILE: switch (value) { case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE: return HAL_H264_PROFILE_BASELINE; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE: return HAL_H264_PROFILE_CONSTRAINED_BASE; case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN: return HAL_H264_PROFILE_MAIN; case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED: return HAL_H264_PROFILE_EXTENDED; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH: return HAL_H264_PROFILE_HIGH; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10: return HAL_H264_PROFILE_HIGH10; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422: return HAL_H264_PROFILE_HIGH422; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE: return HAL_H264_PROFILE_HIGH444; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH: return HAL_H264_PROFILE_CONSTRAINED_HIGH; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LEVEL: switch (value) { case V4L2_MPEG_VIDEO_H264_LEVEL_1_0: return HAL_H264_LEVEL_1; case V4L2_MPEG_VIDEO_H264_LEVEL_1B: return HAL_H264_LEVEL_1b; case V4L2_MPEG_VIDEO_H264_LEVEL_1_1: return HAL_H264_LEVEL_11; case V4L2_MPEG_VIDEO_H264_LEVEL_1_2: return HAL_H264_LEVEL_12; case V4L2_MPEG_VIDEO_H264_LEVEL_1_3: return HAL_H264_LEVEL_13; case V4L2_MPEG_VIDEO_H264_LEVEL_2_0: return HAL_H264_LEVEL_2; case V4L2_MPEG_VIDEO_H264_LEVEL_2_1: return HAL_H264_LEVEL_21; case V4L2_MPEG_VIDEO_H264_LEVEL_2_2: return HAL_H264_LEVEL_22; case V4L2_MPEG_VIDEO_H264_LEVEL_3_0: return HAL_H264_LEVEL_3; case V4L2_MPEG_VIDEO_H264_LEVEL_3_1: return HAL_H264_LEVEL_31; case V4L2_MPEG_VIDEO_H264_LEVEL_3_2: return HAL_H264_LEVEL_32; case V4L2_MPEG_VIDEO_H264_LEVEL_4_0: return HAL_H264_LEVEL_4; case V4L2_MPEG_VIDEO_H264_LEVEL_4_1: return HAL_H264_LEVEL_41; case V4L2_MPEG_VIDEO_H264_LEVEL_4_2: return HAL_H264_LEVEL_42; case V4L2_MPEG_VIDEO_H264_LEVEL_5_0: return HAL_H264_LEVEL_5; case V4L2_MPEG_VIDEO_H264_LEVEL_5_1: return HAL_H264_LEVEL_51; case V4L2_MPEG_VIDEO_H264_LEVEL_5_2: return HAL_H264_LEVEL_52; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE: switch (value) { case V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC: return HAL_H264_ENTROPY_CAVLC; case V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC: return HAL_H264_ENTROPY_CABAC; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_0: return HAL_H264_CABAC_MODEL_0; case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_1: return HAL_H264_CABAC_MODEL_1; case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_2: return HAL_H264_CABAC_MODEL_2; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL: switch (value) { case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0: return HAL_VPX_PROFILE_VERSION_0; case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1: return HAL_VPX_PROFILE_VERSION_1; case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2: return HAL_VPX_PROFILE_VERSION_2; case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3: return HAL_VPX_PROFILE_VERSION_3; case V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED: return HAL_VPX_PROFILE_UNUSED; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE: switch (value) { case V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN: return HAL_HEVC_PROFILE_MAIN; case V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN10: return HAL_HEVC_PROFILE_MAIN10; case V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN_STILL_PIC: return HAL_HEVC_PROFILE_MAIN_STILL_PIC; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL: switch (value) { case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1: return HAL_HEVC_MAIN_TIER_LEVEL_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2: return HAL_HEVC_MAIN_TIER_LEVEL_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2_1: return HAL_HEVC_MAIN_TIER_LEVEL_2_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3: return HAL_HEVC_MAIN_TIER_LEVEL_3; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3_1: return HAL_HEVC_MAIN_TIER_LEVEL_3_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4: return HAL_HEVC_MAIN_TIER_LEVEL_4; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4_1: return HAL_HEVC_MAIN_TIER_LEVEL_4_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5: return HAL_HEVC_MAIN_TIER_LEVEL_5; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1: return HAL_HEVC_MAIN_TIER_LEVEL_5_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_2: return HAL_HEVC_MAIN_TIER_LEVEL_5_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6: return HAL_HEVC_MAIN_TIER_LEVEL_6; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_1: return HAL_HEVC_MAIN_TIER_LEVEL_6_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_2: return HAL_HEVC_MAIN_TIER_LEVEL_6_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_1: return HAL_HEVC_HIGH_TIER_LEVEL_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2: return HAL_HEVC_HIGH_TIER_LEVEL_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2_1: return HAL_HEVC_HIGH_TIER_LEVEL_2_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3: return HAL_HEVC_HIGH_TIER_LEVEL_3; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3_1: return HAL_HEVC_HIGH_TIER_LEVEL_3_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4: return HAL_HEVC_HIGH_TIER_LEVEL_4; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4_1: return HAL_HEVC_HIGH_TIER_LEVEL_4_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5: return HAL_HEVC_HIGH_TIER_LEVEL_5; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_1: return HAL_HEVC_HIGH_TIER_LEVEL_5_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_2: return HAL_HEVC_HIGH_TIER_LEVEL_5_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6: return HAL_HEVC_HIGH_TIER_LEVEL_6; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1: return HAL_HEVC_HIGH_TIER_LEVEL_6_1; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_NONE: return HAL_ROTATE_NONE; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_90: return HAL_ROTATE_90; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_180: return HAL_ROTATE_180; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_270: return HAL_ROTATE_270; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE: switch (value) { case V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED: return HAL_H264_DB_MODE_DISABLE; case V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED: return HAL_H264_DB_MODE_ALL_BOUNDARY; case L_MODE: return HAL_H264_DB_MODE_SKIP_SLICE_BOUNDARY; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_TYPE: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_DEFAULT: return HAL_IFRAMESIZE_TYPE_DEFAULT; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_MEDIUM: return HAL_IFRAMESIZE_TYPE_MEDIUM; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_HUGE: return HAL_IFRAMESIZE_TYPE_HUGE; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_UNLIMITED: return HAL_IFRAMESIZE_TYPE_UNLIMITED; default: goto unknown_value; } } unknown_value: dprintk(VIDC_WARN, "Unknown control (%x, %d)\n", id, value); return -EINVAL; } int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) { int rc = 0; Loading Loading @@ -2055,9 +1843,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.entropy_mode = venc_v4l2_to_hal( h264_entropy_control.entropy_mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.cabac_model = venc_v4l2_to_hal( h264_entropy_control.cabac_model = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL, temp_ctrl->val); pdata = &h264_entropy_control; Loading @@ -2066,9 +1854,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.cabac_model = venc_v4l2_to_hal( h264_entropy_control.cabac_model = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.entropy_mode = venc_v4l2_to_hal( h264_entropy_control.entropy_mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL, temp_ctrl->val); pdata = &h264_entropy_control; Loading @@ -2077,9 +1865,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -2088,9 +1876,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading @@ -2099,9 +1887,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -2112,9 +1900,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading @@ -2123,7 +1911,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL: property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL, ctrl->val); profile_level.level = HAL_VPX_PROFILE_UNUSED; Loading @@ -2134,9 +1922,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -2145,9 +1933,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading @@ -2162,7 +1950,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } property_id = HAL_CONFIG_VPE_OPERATIONS; operations.rotate = venc_v4l2_to_hal( operations.rotate = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, ctrl->val); operations.flip = HAL_FLIP_NONE; Loading Loading @@ -2271,7 +2059,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) property_id = HAL_PARAM_VENC_H264_DEBLOCK_CONTROL; h264_db_control.slice_alpha_offset = alpha->val; h264_db_control.slice_beta_offset = beta->val; h264_db_control.mode = venc_v4l2_to_hal( h264_db_control.mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, ctrl->val); pdata = &h264_db_control; Loading @@ -2289,7 +2077,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) property_id = HAL_PARAM_VENC_H264_DEBLOCK_CONTROL; h264_db_control.slice_alpha_offset = ctrl->val; h264_db_control.slice_beta_offset = beta->val; h264_db_control.mode = venc_v4l2_to_hal( h264_db_control.mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, mode->val); pdata = &h264_db_control; Loading @@ -2306,7 +2094,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) property_id = HAL_PARAM_VENC_H264_DEBLOCK_CONTROL; h264_db_control.slice_alpha_offset = alpha->val; h264_db_control.slice_beta_offset = ctrl->val; h264_db_control.mode = venc_v4l2_to_hal( h264_db_control.mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, mode->val); pdata = &h264_db_control; Loading Loading @@ -2602,7 +2390,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_TYPE: property_id = HAL_PARAM_VENC_IFRAMESIZE_TYPE; iframesize_type = venc_v4l2_to_hal( iframesize_type = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_TYPE, ctrl->val); pdata = &iframesize_type; Loading drivers/media/platform/msm/vidc/msm_vidc.c +3 −0 Original line number Diff line number Diff line Loading @@ -1315,6 +1315,9 @@ void *msm_vidc_open(int core_id, int session_type) inst->instant_bitrate = 0; inst->pic_struct = MSM_VIDC_PIC_STRUCT_PROGRESSIVE; inst->colour_space = MSM_VIDC_BT601_6_525; inst->profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE; inst->level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0; inst->entropy_mode = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC; for (i = SESSION_MSG_INDEX(SESSION_MSG_START); i <= SESSION_MSG_INDEX(SESSION_MSG_END); i++) { Loading drivers/media/platform/msm/vidc/msm_vidc_common.c +313 −5 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
drivers/media/platform/msm/vidc/hfi_response_handler.c +12 −85 Original line number Diff line number Diff line Loading @@ -110,6 +110,7 @@ static int hfi_process_sess_evt_seq_changed(u32 device_id, struct hfi_profile_level *profile_level; struct hfi_bit_depth *pixel_depth; struct hfi_pic_struct *pic_struct; u32 entropy_mode = 0; u8 *data_ptr; int prop_id; enum msm_vidc_pixel_depth luma_bit_depth, chroma_bit_depth; Loading Loading @@ -158,6 +159,8 @@ static int hfi_process_sess_evt_seq_changed(u32 device_id, data_ptr = data_ptr + sizeof(u32); profile_level = (struct hfi_profile_level *) data_ptr; event_notify.profile = profile_level->profile; event_notify.level = profile_level->level; dprintk(VIDC_DBG, "profile: %d level: %d\n", profile_level->profile, profile_level->level); Loading Loading @@ -219,6 +222,15 @@ static int hfi_process_sess_evt_seq_changed(u32 device_id, data_ptr += sizeof(struct hfi_colour_space); break; case HFI_PROPERTY_CONFIG_VDEC_ENTROPY: data_ptr = data_ptr + sizeof(u32); entropy_mode = *(u32 *)data_ptr; event_notify.entropy_mode = entropy_mode; dprintk(VIDC_DBG, "Entropy Mode: 0x%x\n", entropy_mode); data_ptr += sizeof(u32); break; default: dprintk(VIDC_ERR, "%s cmd: %#x not supported\n", Loading Loading @@ -1001,59 +1013,6 @@ enum vidc_status hfi_process_sys_init_done_prop_read( return status; } static void hfi_process_sess_get_prop_dec_entropy( struct hfi_msg_session_property_info_packet *prop, enum hal_h264_entropy *entropy) { u32 req_bytes, hfi_entropy; req_bytes = prop->size - sizeof( struct hfi_msg_session_property_info_packet); if (!req_bytes || req_bytes % sizeof(hfi_entropy)) { dprintk(VIDC_ERR, "%s: bad packet: %d\n", __func__, req_bytes); return; } hfi_entropy = prop->rg_property_data[1]; *entropy = hfi_entropy == HFI_H264_ENTROPY_CAVLC ? HAL_H264_ENTROPY_CAVLC : hfi_entropy == HFI_H264_ENTROPY_CABAC ? HAL_H264_ENTROPY_CABAC : HAL_UNUSED_ENTROPY; } static void hfi_process_sess_get_prop_profile_level( struct hfi_msg_session_property_info_packet *prop, struct hfi_profile_level *profile_level) { struct hfi_profile_level *hfi_profile_level; u32 req_bytes; dprintk(VIDC_DBG, "Entered %s\n", __func__); if (!prop) { dprintk(VIDC_ERR, "hal_process_sess_get_profile_level: bad_prop: %pK\n", prop); return; } req_bytes = prop->size - sizeof( struct hfi_msg_session_property_info_packet); if (!req_bytes || req_bytes % sizeof(struct hfi_profile_level)) { dprintk(VIDC_ERR, "hal_process_sess_get_profile_level: bad_pkt: %d\n", req_bytes); return; } hfi_profile_level = (struct hfi_profile_level *) &prop->rg_property_data[1]; profile_level->profile = hfi_profile_level->profile; profile_level->level = hfi_profile_level->level; dprintk(VIDC_DBG, "%s profile: %d level: %d\n", __func__, profile_level->profile, profile_level->level); } static void hfi_process_sess_get_prop_buf_req( struct hfi_msg_session_property_info_packet *prop, struct buffer_requirements *buffreq) Loading Loading @@ -1179,8 +1138,6 @@ static int hfi_process_session_prop_info(u32 device_id, struct msm_vidc_cb_info *info) { struct msm_vidc_cb_cmd_done cmd_done = {0}; struct hfi_profile_level profile_level = {0}; enum hal_h264_entropy entropy = {0}; struct buffer_requirements buff_req = { { {0} } }; dprintk(VIDC_DBG, "Received SESSION_PROPERTY_INFO[%#x]\n", Loading Loading @@ -1210,36 +1167,6 @@ static int hfi_process_session_prop_info(u32 device_id, .response.cmd = cmd_done, }; return 0; case HFI_PROPERTY_PARAM_PROFILE_LEVEL_CURRENT: hfi_process_sess_get_prop_profile_level(pkt, &profile_level); cmd_done.device_id = device_id; cmd_done.session_id = (void *)(uintptr_t)pkt->session_id; cmd_done.status = VIDC_ERR_NONE; cmd_done.data.property.profile_level = (struct hal_profile_level) { .profile = profile_level.profile, .level = profile_level.level, }; cmd_done.size = sizeof(struct hal_profile_level); *info = (struct msm_vidc_cb_info) { .response_type = HAL_SESSION_PROPERTY_INFO, .response.cmd = cmd_done, }; return 0; case HFI_PROPERTY_CONFIG_VDEC_ENTROPY: hfi_process_sess_get_prop_dec_entropy(pkt, &entropy); cmd_done.device_id = device_id; cmd_done.session_id = (void *)(uintptr_t)pkt->session_id; cmd_done.status = VIDC_ERR_NONE; cmd_done.data.property.h264_entropy = entropy; cmd_done.size = sizeof(enum hal_h264_entropy); *info = (struct msm_vidc_cb_info) { .response_type = HAL_SESSION_PROPERTY_INFO, .response.cmd = cmd_done, }; return 0; default: dprintk(VIDC_DBG, Loading
drivers/media/platform/msm/vidc/msm_vdec.c +4 −74 Original line number Diff line number Diff line Loading @@ -1418,76 +1418,6 @@ static struct v4l2_ctrl *get_ctrl_from_cluster(int id, return NULL; } static int vdec_v4l2_to_hal(int id, int value) { switch (id) { /* H264 */ case V4L2_CID_MPEG_VIDEO_H264_PROFILE: switch (value) { case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE: return HAL_H264_PROFILE_BASELINE; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE: return HAL_H264_PROFILE_CONSTRAINED_BASE; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH: return HAL_H264_PROFILE_CONSTRAINED_HIGH; case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN: return HAL_H264_PROFILE_MAIN; case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED: return HAL_H264_PROFILE_EXTENDED; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH: return HAL_H264_PROFILE_HIGH; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10: return HAL_H264_PROFILE_HIGH10; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422: return HAL_H264_PROFILE_HIGH422; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE: return HAL_H264_PROFILE_HIGH444; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LEVEL: switch (value) { case V4L2_MPEG_VIDEO_H264_LEVEL_1_0: return HAL_H264_LEVEL_1; case V4L2_MPEG_VIDEO_H264_LEVEL_1B: return HAL_H264_LEVEL_1b; case V4L2_MPEG_VIDEO_H264_LEVEL_1_1: return HAL_H264_LEVEL_11; case V4L2_MPEG_VIDEO_H264_LEVEL_1_2: return HAL_H264_LEVEL_12; case V4L2_MPEG_VIDEO_H264_LEVEL_1_3: return HAL_H264_LEVEL_13; case V4L2_MPEG_VIDEO_H264_LEVEL_2_0: return HAL_H264_LEVEL_2; case V4L2_MPEG_VIDEO_H264_LEVEL_2_1: return HAL_H264_LEVEL_21; case V4L2_MPEG_VIDEO_H264_LEVEL_2_2: return HAL_H264_LEVEL_22; case V4L2_MPEG_VIDEO_H264_LEVEL_3_0: return HAL_H264_LEVEL_3; case V4L2_MPEG_VIDEO_H264_LEVEL_3_1: return HAL_H264_LEVEL_31; case V4L2_MPEG_VIDEO_H264_LEVEL_3_2: return HAL_H264_LEVEL_32; case V4L2_MPEG_VIDEO_H264_LEVEL_4_0: return HAL_H264_LEVEL_4; case V4L2_MPEG_VIDEO_H264_LEVEL_4_1: return HAL_H264_LEVEL_41; case V4L2_MPEG_VIDEO_H264_LEVEL_4_2: return HAL_H264_LEVEL_42; case V4L2_MPEG_VIDEO_H264_LEVEL_5_0: return HAL_H264_LEVEL_5; case V4L2_MPEG_VIDEO_H264_LEVEL_5_1: return HAL_H264_LEVEL_51; default: goto unknown_value; } } unknown_value: dprintk(VIDC_WARN, "Unknown control (%x, %d)\n", id, value); return -EINVAL; } int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) { int rc = 0; Loading Loading @@ -1670,9 +1600,9 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = vdec_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = vdec_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -1681,9 +1611,9 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = vdec_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = vdec_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading
drivers/media/platform/msm/vidc/msm_venc.c +22 −234 Original line number Diff line number Diff line Loading @@ -1621,218 +1621,6 @@ static struct v4l2_ctrl *get_ctrl_from_cluster(int id, return NULL; } /* Helper function to translate V4L2_* to HAL_* */ static inline int venc_v4l2_to_hal(int id, int value) { switch (id) { /* H264 */ case V4L2_CID_MPEG_VIDEO_H264_PROFILE: switch (value) { case V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE: return HAL_H264_PROFILE_BASELINE; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE: return HAL_H264_PROFILE_CONSTRAINED_BASE; case V4L2_MPEG_VIDEO_H264_PROFILE_MAIN: return HAL_H264_PROFILE_MAIN; case V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED: return HAL_H264_PROFILE_EXTENDED; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH: return HAL_H264_PROFILE_HIGH; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10: return HAL_H264_PROFILE_HIGH10; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422: return HAL_H264_PROFILE_HIGH422; case V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE: return HAL_H264_PROFILE_HIGH444; case V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH: return HAL_H264_PROFILE_CONSTRAINED_HIGH; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LEVEL: switch (value) { case V4L2_MPEG_VIDEO_H264_LEVEL_1_0: return HAL_H264_LEVEL_1; case V4L2_MPEG_VIDEO_H264_LEVEL_1B: return HAL_H264_LEVEL_1b; case V4L2_MPEG_VIDEO_H264_LEVEL_1_1: return HAL_H264_LEVEL_11; case V4L2_MPEG_VIDEO_H264_LEVEL_1_2: return HAL_H264_LEVEL_12; case V4L2_MPEG_VIDEO_H264_LEVEL_1_3: return HAL_H264_LEVEL_13; case V4L2_MPEG_VIDEO_H264_LEVEL_2_0: return HAL_H264_LEVEL_2; case V4L2_MPEG_VIDEO_H264_LEVEL_2_1: return HAL_H264_LEVEL_21; case V4L2_MPEG_VIDEO_H264_LEVEL_2_2: return HAL_H264_LEVEL_22; case V4L2_MPEG_VIDEO_H264_LEVEL_3_0: return HAL_H264_LEVEL_3; case V4L2_MPEG_VIDEO_H264_LEVEL_3_1: return HAL_H264_LEVEL_31; case V4L2_MPEG_VIDEO_H264_LEVEL_3_2: return HAL_H264_LEVEL_32; case V4L2_MPEG_VIDEO_H264_LEVEL_4_0: return HAL_H264_LEVEL_4; case V4L2_MPEG_VIDEO_H264_LEVEL_4_1: return HAL_H264_LEVEL_41; case V4L2_MPEG_VIDEO_H264_LEVEL_4_2: return HAL_H264_LEVEL_42; case V4L2_MPEG_VIDEO_H264_LEVEL_5_0: return HAL_H264_LEVEL_5; case V4L2_MPEG_VIDEO_H264_LEVEL_5_1: return HAL_H264_LEVEL_51; case V4L2_MPEG_VIDEO_H264_LEVEL_5_2: return HAL_H264_LEVEL_52; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE: switch (value) { case V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC: return HAL_H264_ENTROPY_CAVLC; case V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC: return HAL_H264_ENTROPY_CABAC; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_0: return HAL_H264_CABAC_MODEL_0; case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_1: return HAL_H264_CABAC_MODEL_1; case V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL_2: return HAL_H264_CABAC_MODEL_2; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL: switch (value) { case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_0: return HAL_VPX_PROFILE_VERSION_0; case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_1: return HAL_VPX_PROFILE_VERSION_1; case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_2: return HAL_VPX_PROFILE_VERSION_2; case V4L2_MPEG_VIDC_VIDEO_VP8_VERSION_3: return HAL_VPX_PROFILE_VERSION_3; case V4L2_MPEG_VIDC_VIDEO_VP8_UNUSED: return HAL_VPX_PROFILE_UNUSED; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE: switch (value) { case V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN: return HAL_HEVC_PROFILE_MAIN; case V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN10: return HAL_HEVC_PROFILE_MAIN10; case V4L2_MPEG_VIDC_VIDEO_HEVC_PROFILE_MAIN_STILL_PIC: return HAL_HEVC_PROFILE_MAIN_STILL_PIC; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL: switch (value) { case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_1: return HAL_HEVC_MAIN_TIER_LEVEL_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2: return HAL_HEVC_MAIN_TIER_LEVEL_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_2_1: return HAL_HEVC_MAIN_TIER_LEVEL_2_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3: return HAL_HEVC_MAIN_TIER_LEVEL_3; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_3_1: return HAL_HEVC_MAIN_TIER_LEVEL_3_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4: return HAL_HEVC_MAIN_TIER_LEVEL_4; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_4_1: return HAL_HEVC_MAIN_TIER_LEVEL_4_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5: return HAL_HEVC_MAIN_TIER_LEVEL_5; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_1: return HAL_HEVC_MAIN_TIER_LEVEL_5_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_5_2: return HAL_HEVC_MAIN_TIER_LEVEL_5_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6: return HAL_HEVC_MAIN_TIER_LEVEL_6; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_1: return HAL_HEVC_MAIN_TIER_LEVEL_6_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_MAIN_TIER_LEVEL_6_2: return HAL_HEVC_MAIN_TIER_LEVEL_6_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_1: return HAL_HEVC_HIGH_TIER_LEVEL_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2: return HAL_HEVC_HIGH_TIER_LEVEL_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_2_1: return HAL_HEVC_HIGH_TIER_LEVEL_2_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3: return HAL_HEVC_HIGH_TIER_LEVEL_3; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_3_1: return HAL_HEVC_HIGH_TIER_LEVEL_3_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4: return HAL_HEVC_HIGH_TIER_LEVEL_4; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_4_1: return HAL_HEVC_HIGH_TIER_LEVEL_4_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5: return HAL_HEVC_HIGH_TIER_LEVEL_5; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_1: return HAL_HEVC_HIGH_TIER_LEVEL_5_1; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_5_2: return HAL_HEVC_HIGH_TIER_LEVEL_5_2; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6: return HAL_HEVC_HIGH_TIER_LEVEL_6; case V4L2_MPEG_VIDC_VIDEO_HEVC_LEVEL_HIGH_TIER_LEVEL_6_1: return HAL_HEVC_HIGH_TIER_LEVEL_6_1; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_NONE: return HAL_ROTATE_NONE; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_90: return HAL_ROTATE_90; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_180: return HAL_ROTATE_180; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION_270: return HAL_ROTATE_270; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE: switch (value) { case V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED: return HAL_H264_DB_MODE_DISABLE; case V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED: return HAL_H264_DB_MODE_ALL_BOUNDARY; case L_MODE: return HAL_H264_DB_MODE_SKIP_SLICE_BOUNDARY; default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_TYPE: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_DEFAULT: return HAL_IFRAMESIZE_TYPE_DEFAULT; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_MEDIUM: return HAL_IFRAMESIZE_TYPE_MEDIUM; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_HUGE: return HAL_IFRAMESIZE_TYPE_HUGE; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_UNLIMITED: return HAL_IFRAMESIZE_TYPE_UNLIMITED; default: goto unknown_value; } } unknown_value: dprintk(VIDC_WARN, "Unknown control (%x, %d)\n", id, value); return -EINVAL; } int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) { int rc = 0; Loading Loading @@ -2055,9 +1843,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.entropy_mode = venc_v4l2_to_hal( h264_entropy_control.entropy_mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.cabac_model = venc_v4l2_to_hal( h264_entropy_control.cabac_model = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL, temp_ctrl->val); pdata = &h264_entropy_control; Loading @@ -2066,9 +1854,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE); property_id = HAL_PARAM_VENC_H264_ENTROPY_CONTROL; h264_entropy_control.cabac_model = venc_v4l2_to_hal( h264_entropy_control.cabac_model = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE, ctrl->val); h264_entropy_control.entropy_mode = venc_v4l2_to_hal( h264_entropy_control.entropy_mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_H264_CABAC_MODEL, temp_ctrl->val); pdata = &h264_entropy_control; Loading @@ -2077,9 +1865,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -2088,9 +1876,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading @@ -2099,9 +1887,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -2112,9 +1900,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDEO_H264_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading @@ -2123,7 +1911,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL: property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_VP8_PROFILE_LEVEL, ctrl->val); profile_level.level = HAL_VPX_PROFILE_UNUSED; Loading @@ -2134,9 +1922,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.profile = venc_v4l2_to_hal(ctrl->id, profile_level.profile = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.level = venc_v4l2_to_hal( profile_level.level = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_HEVC_TIER_LEVEL, temp_ctrl->val); pdata = &profile_level; Loading @@ -2145,9 +1933,9 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE); property_id = HAL_PARAM_PROFILE_LEVEL_CURRENT; profile_level.level = venc_v4l2_to_hal(ctrl->id, profile_level.level = msm_comm_v4l2_to_hal(ctrl->id, ctrl->val); profile_level.profile = venc_v4l2_to_hal( profile_level.profile = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_HEVC_PROFILE, temp_ctrl->val); pdata = &profile_level; Loading @@ -2162,7 +1950,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; } property_id = HAL_CONFIG_VPE_OPERATIONS; operations.rotate = venc_v4l2_to_hal( operations.rotate = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, ctrl->val); operations.flip = HAL_FLIP_NONE; Loading Loading @@ -2271,7 +2059,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) property_id = HAL_PARAM_VENC_H264_DEBLOCK_CONTROL; h264_db_control.slice_alpha_offset = alpha->val; h264_db_control.slice_beta_offset = beta->val; h264_db_control.mode = venc_v4l2_to_hal( h264_db_control.mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, ctrl->val); pdata = &h264_db_control; Loading @@ -2289,7 +2077,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) property_id = HAL_PARAM_VENC_H264_DEBLOCK_CONTROL; h264_db_control.slice_alpha_offset = ctrl->val; h264_db_control.slice_beta_offset = beta->val; h264_db_control.mode = venc_v4l2_to_hal( h264_db_control.mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, mode->val); pdata = &h264_db_control; Loading @@ -2306,7 +2094,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) property_id = HAL_PARAM_VENC_H264_DEBLOCK_CONTROL; h264_db_control.slice_alpha_offset = alpha->val; h264_db_control.slice_beta_offset = ctrl->val; h264_db_control.mode = venc_v4l2_to_hal( h264_db_control.mode = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE, mode->val); pdata = &h264_db_control; Loading Loading @@ -2602,7 +2390,7 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_TYPE: property_id = HAL_PARAM_VENC_IFRAMESIZE_TYPE; iframesize_type = venc_v4l2_to_hal( iframesize_type = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_TYPE, ctrl->val); pdata = &iframesize_type; Loading
drivers/media/platform/msm/vidc/msm_vidc.c +3 −0 Original line number Diff line number Diff line Loading @@ -1315,6 +1315,9 @@ void *msm_vidc_open(int core_id, int session_type) inst->instant_bitrate = 0; inst->pic_struct = MSM_VIDC_PIC_STRUCT_PROGRESSIVE; inst->colour_space = MSM_VIDC_BT601_6_525; inst->profile = V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE; inst->level = V4L2_MPEG_VIDEO_H264_LEVEL_1_0; inst->entropy_mode = V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC; for (i = SESSION_MSG_INDEX(SESSION_MSG_START); i <= SESSION_MSG_INDEX(SESSION_MSG_END); i++) { Loading
drivers/media/platform/msm/vidc/msm_vidc_common.c +313 −5 File changed.Preview size limit exceeded, changes collapsed. Show changes