diff options
| -rw-r--r-- | drivers/media/platform/msm/vidc/msm_venc.c | 72 |
1 files changed, 5 insertions, 67 deletions
diff --git a/drivers/media/platform/msm/vidc/msm_venc.c b/drivers/media/platform/msm/vidc/msm_venc.c index 14b62984eae9..5c9dc6a53223 100644 --- a/drivers/media/platform/msm/vidc/msm_venc.c +++ b/drivers/media/platform/msm/vidc/msm_venc.c @@ -1552,52 +1552,6 @@ static int msm_venc_toggle_hier_p(struct msm_vidc_inst *inst, int layers) return rc; } -static int set_bitrate_for_each_layer(struct msm_vidc_inst *inst, - u32 num_enh_layers, u32 total_bitrate) -{ - u32 property_id = 0; - int i = 0, rc = 0; - struct hfi_device *hdev = NULL; - struct hal_bitrate bitrate; - struct hal_enable enable; - int bitrate_table[3][4] = { - {50, 50, 0, 0}, - {34, 33, 33, 0}, - {25, 25, 25, 25} - }; - - if (!inst || !inst->core || !inst->core->device) { - dprintk(VIDC_ERR, "%s - invalid input\n", __func__); - return -EINVAL; - } - - if (!num_enh_layers || num_enh_layers > ARRAY_SIZE(bitrate_table)) { - dprintk(VIDC_ERR, "%s - invalid number of enh layers: %d\n", - __func__, num_enh_layers); - return -EINVAL; - } - hdev = inst->core->device; - - property_id = HAL_PARAM_VENC_BITRATE_TYPE; - enable.enable = V4L2_CID_MPEG_VIDC_VIDEO_VENC_BITRATE_ENABLE; - rc = call_hfi_op(hdev, session_set_property, - (void *)inst->session, property_id, &enable); - if (rc) { - dprintk(VIDC_ERR, "Failed to set layerwise bitrate\n"); - return false; - } - - for (i = 0; !rc && i <= num_enh_layers; i++) { - property_id = HAL_CONFIG_VENC_TARGET_BITRATE; - bitrate.bit_rate = (u32)((total_bitrate * - bitrate_table[num_enh_layers - 1][i]) / 100); - bitrate.layer_id = i; - rc = call_hfi_op(hdev, session_set_property, - (void *)inst->session, property_id, &bitrate); - } - return rc; -} - static inline int msm_venc_power_save_mode_enable(struct msm_vidc_inst *inst) { u32 rc = 0; @@ -2269,26 +2223,10 @@ static int try_set_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) } case V4L2_CID_MPEG_VIDEO_BITRATE: { - struct v4l2_ctrl *hier_p = TRY_GET_CTRL( - V4L2_CID_MPEG_VIDC_VIDEO_HIER_P_NUM_LAYERS); - + property_id = HAL_CONFIG_VENC_TARGET_BITRATE; + bitrate.bit_rate = ctrl->val; bitrate.layer_id = 0; - if (hier_p->val && - inst->fmts[CAPTURE_PORT]->fourcc == - V4L2_PIX_FMT_H264) { - rc = set_bitrate_for_each_layer(inst, - hier_p->val, ctrl->val); - if (rc) { - dprintk(VIDC_ERR, - "failed to set bitrate for multiple layers\n"); - rc = -EINVAL; - } - } else { - property_id = HAL_CONFIG_VENC_TARGET_BITRATE; - bitrate.bit_rate = ctrl->val; - bitrate.layer_id = 0; - pdata = &bitrate; - } + pdata = &bitrate; break; } case V4L2_CID_MPEG_VIDEO_BITRATE_PEAK: @@ -3236,8 +3174,8 @@ static int try_set_ext_ctrl(struct msm_vidc_inst *inst, bitrate.bit_rate = control[i].value; property_id = HAL_CONFIG_VENC_TARGET_BITRATE; pdata = &bitrate; - dprintk(VIDC_DBG, "layerwise bitrate for %d\n", - i); + dprintk(VIDC_DBG, "bitrate for layer(%d)=%d\n", + i, bitrate.bit_rate); rc = call_hfi_op(hdev, session_set_property, (void *)inst->session, property_id, pdata); |
