Loading drivers/media/platform/msm/vidc/hfi_packetization.c +9 −0 Original line number Diff line number Diff line Loading @@ -2180,6 +2180,15 @@ int create_pkt_cmd_session_set_property( pkt->size += sizeof(u32) + sizeof(struct hfi_iframe_size); break; } case HAL_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAME: { create_pkt_enable(pkt->rg_property_data, HFI_PROPERTY_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAMES, ((struct hal_enable *)pdata)->enable); pkt->size += sizeof(u32) + sizeof(struct hfi_enable); break; } /* FOLLOWING PROPERTIES ARE NOT IMPLEMENTED IN CORE YET */ case HAL_CONFIG_BUFFER_REQUIREMENTS: case HAL_CONFIG_PRIORITY: Loading drivers/media/platform/msm/vidc/msm_venc.c +29 −1 Original line number Diff line number Diff line Loading @@ -1423,7 +1423,16 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { (1 << V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_UNLIMITED)), .qmenu = iframe_sizes, }, { .id = V4L2_CID_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME, .name = "Send encoder output buffer for skipped frames", .type = V4L2_CTRL_TYPE_BOOLEAN, .minimum = V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE, .maximum = V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_ENABLE, .default_value = V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE, .step = 1, } }; #define NUM_CTRLS ARRAY_SIZE(msm_venc_ctrls) Loading Loading @@ -3712,6 +3721,25 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) ctrl->val); pdata = &iframesize_type; break; case V4L2_CID_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME: property_id = HAL_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAME; switch (ctrl->val) { case V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_ENABLE: enable.enable = 1; break; case V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE: enable.enable = 0; break; default: dprintk(VIDC_ERR, "Invalid send skipped frames control value %d\n", ctrl->val); rc = -ENOTSUPP; break; } pdata = &enable; break; default: dprintk(VIDC_ERR, "Unsupported index: %x\n", ctrl->id); rc = -ENOTSUPP; Loading drivers/media/platform/msm/vidc/vidc_hfi_api.h +1 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,7 @@ enum hal_property { HAL_PARAM_VENC_H264_TRANSFORM_8x8, HAL_PARAM_VENC_VIDEO_SIGNAL_INFO, HAL_PARAM_VENC_IFRAMESIZE_TYPE, HAL_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAME }; enum hal_domain { Loading drivers/media/platform/msm/vidc/vidc_hfi_helper.h +2 −0 Original line number Diff line number Diff line Loading @@ -388,6 +388,8 @@ struct hfi_buffer_info { (HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x033) #define HFI_PROPERTY_PARAM_VENC_IFRAMESIZE \ (HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x034) #define HFI_PROPERTY_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAMES \ (HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x035) #define HFI_PROPERTY_CONFIG_VENC_COMMON_START \ (HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x6000) Loading include/uapi/linux/v4l2-controls.h +7 −0 Original line number Diff line number Diff line Loading @@ -1225,6 +1225,13 @@ enum v4l2_mpeg_vidc_video_au_delimiter { V4L2_MPEG_VIDC_VIDEO_AU_DELIMITER_ENABLED = 1 }; #define V4L2_CID_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 103) enum v4l2_mpeg_vidc_video_venc_send_skipped_frame { V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE = 0, V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_ENABLE = 1 }; /* Camera class control IDs */ Loading Loading
drivers/media/platform/msm/vidc/hfi_packetization.c +9 −0 Original line number Diff line number Diff line Loading @@ -2180,6 +2180,15 @@ int create_pkt_cmd_session_set_property( pkt->size += sizeof(u32) + sizeof(struct hfi_iframe_size); break; } case HAL_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAME: { create_pkt_enable(pkt->rg_property_data, HFI_PROPERTY_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAMES, ((struct hal_enable *)pdata)->enable); pkt->size += sizeof(u32) + sizeof(struct hfi_enable); break; } /* FOLLOWING PROPERTIES ARE NOT IMPLEMENTED IN CORE YET */ case HAL_CONFIG_BUFFER_REQUIREMENTS: case HAL_CONFIG_PRIORITY: Loading
drivers/media/platform/msm/vidc/msm_venc.c +29 −1 Original line number Diff line number Diff line Loading @@ -1423,7 +1423,16 @@ static struct msm_vidc_ctrl msm_venc_ctrls[] = { (1 << V4L2_CID_MPEG_VIDC_VIDEO_IFRAME_SIZE_UNLIMITED)), .qmenu = iframe_sizes, }, { .id = V4L2_CID_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME, .name = "Send encoder output buffer for skipped frames", .type = V4L2_CTRL_TYPE_BOOLEAN, .minimum = V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE, .maximum = V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_ENABLE, .default_value = V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE, .step = 1, } }; #define NUM_CTRLS ARRAY_SIZE(msm_venc_ctrls) Loading Loading @@ -3712,6 +3721,25 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) ctrl->val); pdata = &iframesize_type; break; case V4L2_CID_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME: property_id = HAL_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAME; switch (ctrl->val) { case V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_ENABLE: enable.enable = 1; break; case V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE: enable.enable = 0; break; default: dprintk(VIDC_ERR, "Invalid send skipped frames control value %d\n", ctrl->val); rc = -ENOTSUPP; break; } pdata = &enable; break; default: dprintk(VIDC_ERR, "Unsupported index: %x\n", ctrl->id); rc = -ENOTSUPP; Loading
drivers/media/platform/msm/vidc/vidc_hfi_api.h +1 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,7 @@ enum hal_property { HAL_PARAM_VENC_H264_TRANSFORM_8x8, HAL_PARAM_VENC_VIDEO_SIGNAL_INFO, HAL_PARAM_VENC_IFRAMESIZE_TYPE, HAL_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAME }; enum hal_domain { Loading
drivers/media/platform/msm/vidc/vidc_hfi_helper.h +2 −0 Original line number Diff line number Diff line Loading @@ -388,6 +388,8 @@ struct hfi_buffer_info { (HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x033) #define HFI_PROPERTY_PARAM_VENC_IFRAMESIZE \ (HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x034) #define HFI_PROPERTY_PARAM_VENC_SEND_OUTPUT_FOR_SKIPPED_FRAMES \ (HFI_PROPERTY_PARAM_VENC_COMMON_START + 0x035) #define HFI_PROPERTY_CONFIG_VENC_COMMON_START \ (HFI_DOMAIN_BASE_VENC + HFI_ARCH_COMMON_OFFSET + 0x6000) Loading
include/uapi/linux/v4l2-controls.h +7 −0 Original line number Diff line number Diff line Loading @@ -1225,6 +1225,13 @@ enum v4l2_mpeg_vidc_video_au_delimiter { V4L2_MPEG_VIDC_VIDEO_AU_DELIMITER_ENABLED = 1 }; #define V4L2_CID_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME \ (V4L2_CID_MPEG_MSM_VIDC_BASE + 103) enum v4l2_mpeg_vidc_video_venc_send_skipped_frame { V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_DISABLE = 0, V4L2_MPEG_VIDC_VIDEO_SEND_SKIPPED_FRAME_ENABLE = 1 }; /* Camera class control IDs */ Loading