Merge "vidc: Enable skip output buffers for video encoder"
This commit is contained in:
commit
751d87898b
5 changed files with 48 additions and 1 deletions
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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…
Add table
Reference in a new issue