Loading drivers/media/platform/msm/vidc/hfi_packetization.c +3 −0 Original line number Diff line number Diff line Loading @@ -1420,6 +1420,9 @@ int create_pkt_cmd_session_set_property( case HAL_FLIP_VERTICAL: hfi->flip = HFI_FLIP_VERTICAL; break; case HAL_FLIP_BOTH: hfi->flip = HFI_FLIP_HORIZONTAL | HFI_FLIP_VERTICAL; break; default: dprintk(VIDC_ERR, "Invalid flip setting: %#x\n", prop->flip); Loading drivers/media/platform/msm/vidc/msm_venc.c +40 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,14 @@ static const char *const mpeg_video_rotation[] = { NULL }; static const char *const mpeg_video_flip[] = { "No Flip", "Horizontal Flip", "Vertical Flip", "Both", NULL }; static const char *const h264_video_entropy_cabac_model[] = { "Model 0", "Model 1", Loading Loading @@ -1045,6 +1053,21 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .default_value = 0, .step = 1, }, { .id = V4L2_CID_MPEG_VIDC_VIDEO_FLIP, .name = "Flip", .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE, .maximum = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH, .default_value = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE, .menu_skip_mask = ~( (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH) ), .qmenu = mpeg_video_flip, }, }; Loading Loading @@ -1436,11 +1459,27 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION: { temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_FLIP); property_id = HAL_PARAM_VPE_ROTATION; vpe_rotation.rotate = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, ctrl->val); vpe_rotation.flip = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_FLIP, temp_ctrl->val); pdata = &vpe_rotation; break; } case V4L2_CID_MPEG_VIDC_VIDEO_FLIP: { temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_ROTATION); property_id = HAL_PARAM_VPE_ROTATION; vpe_rotation.rotate = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, temp_ctrl->val); vpe_rotation.flip = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_FLIP, ctrl->val); vpe_rotation.flip = HAL_FLIP_NONE; pdata = &vpe_rotation; break; } Loading drivers/media/platform/msm/vidc/msm_vidc_common.c +13 −0 Original line number Diff line number Diff line Loading @@ -560,6 +560,19 @@ int msm_comm_v4l2_to_hal(int id, int value) default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_FLIP: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE: return HAL_FLIP_NONE; case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI: return HAL_FLIP_HORIZONTAL; case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT: return HAL_FLIP_VERTICAL; case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH: return HAL_FLIP_BOTH; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE: switch (value) { case V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED: Loading drivers/media/platform/msm/vidc/vidc_hfi_api.h +1 −0 Original line number Diff line number Diff line Loading @@ -660,6 +660,7 @@ enum hal_flip { HAL_FLIP_NONE, HAL_FLIP_HORIZONTAL, HAL_FLIP_VERTICAL, HAL_FLIP_BOTH, HAL_UNUSED_FLIP = 0x10000000, }; Loading include/uapi/linux/v4l2-controls.h +8 −0 Original line number Diff line number Diff line Loading @@ -1126,6 +1126,14 @@ enum v4l2_mpeg_vidc_video_tme_level { #define V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 114) #define V4L2_CID_MPEG_VIDC_VIDEO_FLIP (V4L2_CID_MPEG_MSM_VIDC_BASE + 115) enum v4l2_mpeg_vidc_video_flip { V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE = 0, V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI = 1, V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT = 2, V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH = 3, }; /* Camera class control IDs */ #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) Loading Loading
drivers/media/platform/msm/vidc/hfi_packetization.c +3 −0 Original line number Diff line number Diff line Loading @@ -1420,6 +1420,9 @@ int create_pkt_cmd_session_set_property( case HAL_FLIP_VERTICAL: hfi->flip = HFI_FLIP_VERTICAL; break; case HAL_FLIP_BOTH: hfi->flip = HFI_FLIP_HORIZONTAL | HFI_FLIP_VERTICAL; break; default: dprintk(VIDC_ERR, "Invalid flip setting: %#x\n", prop->flip); Loading
drivers/media/platform/msm/vidc/msm_venc.c +40 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,14 @@ static const char *const mpeg_video_rotation[] = { NULL }; static const char *const mpeg_video_flip[] = { "No Flip", "Horizontal Flip", "Vertical Flip", "Both", NULL }; static const char *const h264_video_entropy_cabac_model[] = { "Model 0", "Model 1", Loading Loading @@ -1045,6 +1053,21 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { .default_value = 0, .step = 1, }, { .id = V4L2_CID_MPEG_VIDC_VIDEO_FLIP, .name = "Flip", .type = V4L2_CTRL_TYPE_MENU, .minimum = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE, .maximum = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH, .default_value = V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE, .menu_skip_mask = ~( (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT) | (1 << V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH) ), .qmenu = mpeg_video_flip, }, }; Loading Loading @@ -1436,11 +1459,27 @@ int msm_venc_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) break; case V4L2_CID_MPEG_VIDC_VIDEO_ROTATION: { temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_FLIP); property_id = HAL_PARAM_VPE_ROTATION; vpe_rotation.rotate = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, ctrl->val); vpe_rotation.flip = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_FLIP, temp_ctrl->val); pdata = &vpe_rotation; break; } case V4L2_CID_MPEG_VIDC_VIDEO_FLIP: { temp_ctrl = TRY_GET_CTRL(V4L2_CID_MPEG_VIDC_VIDEO_ROTATION); property_id = HAL_PARAM_VPE_ROTATION; vpe_rotation.rotate = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_ROTATION, temp_ctrl->val); vpe_rotation.flip = msm_comm_v4l2_to_hal( V4L2_CID_MPEG_VIDC_VIDEO_FLIP, ctrl->val); vpe_rotation.flip = HAL_FLIP_NONE; pdata = &vpe_rotation; break; } Loading
drivers/media/platform/msm/vidc/msm_vidc_common.c +13 −0 Original line number Diff line number Diff line Loading @@ -560,6 +560,19 @@ int msm_comm_v4l2_to_hal(int id, int value) default: goto unknown_value; } case V4L2_CID_MPEG_VIDC_VIDEO_FLIP: switch (value) { case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE: return HAL_FLIP_NONE; case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI: return HAL_FLIP_HORIZONTAL; case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT: return HAL_FLIP_VERTICAL; case V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH: return HAL_FLIP_BOTH; default: goto unknown_value; } case V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE: switch (value) { case V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED: Loading
drivers/media/platform/msm/vidc/vidc_hfi_api.h +1 −0 Original line number Diff line number Diff line Loading @@ -660,6 +660,7 @@ enum hal_flip { HAL_FLIP_NONE, HAL_FLIP_HORIZONTAL, HAL_FLIP_VERTICAL, HAL_FLIP_BOTH, HAL_UNUSED_FLIP = 0x10000000, }; Loading
include/uapi/linux/v4l2-controls.h +8 −0 Original line number Diff line number Diff line Loading @@ -1126,6 +1126,14 @@ enum v4l2_mpeg_vidc_video_tme_level { #define V4L2_CID_MPEG_VIDC_VIDEO_VPE_CSC_CUSTOM_MATRIX \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 114) #define V4L2_CID_MPEG_VIDC_VIDEO_FLIP (V4L2_CID_MPEG_MSM_VIDC_BASE + 115) enum v4l2_mpeg_vidc_video_flip { V4L2_CID_MPEG_VIDC_VIDEO_FLIP_NONE = 0, V4L2_CID_MPEG_VIDC_VIDEO_FLIP_HORI = 1, V4L2_CID_MPEG_VIDC_VIDEO_FLIP_VERT = 2, V4L2_CID_MPEG_VIDC_VIDEO_FLIP_BOTH = 3, }; /* Camera class control IDs */ #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) Loading