Loading drivers/media/platform/msm/vidc/msm_vdec.c +3 −0 Original line number Diff line number Diff line Loading @@ -564,6 +564,8 @@ int msm_vdec_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f) inst->bufq[CAPTURE_PORT].plane_sizes[i] = f->fmt.pix_mp.plane_fmt[i].sizeimage; } rc = msm_comm_try_get_bufreqs(inst); } else if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { fmt = msm_comm_get_pixel_fmt_fourcc(vdec_formats, Loading Loading @@ -890,6 +892,7 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) "Failed setting OUTPUT2 size : %d\n", rc); rc = msm_comm_try_get_bufreqs(inst); break; default: dprintk(VIDC_ERR, Loading drivers/media/platform/msm/vidc/msm_vidc_common.c +48 −14 Original line number Diff line number Diff line Loading @@ -3990,7 +3990,7 @@ int msm_comm_qbuf(struct msm_vidc_inst *inst, struct vb2_buffer *vb) static int msm_vidc_update_host_buff_counts(struct msm_vidc_inst *inst) { int extra_buffers, buffer_type; int extra_buffers; struct hal_buffer_requirements *bufreq; bufreq = get_buff_req_buffer(inst, Loading @@ -4006,20 +4006,54 @@ static int msm_vidc_update_host_buff_counts(struct msm_vidc_inst *inst) bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; buffer_type = msm_comm_get_hal_output_buffer(inst); if (msm_comm_get_stream_output_mode(inst) == HAL_VIDEO_DECODER_SECONDARY) { bufreq = get_buff_req_buffer(inst, buffer_type); HAL_BUFFER_OUTPUT); if (!bufreq) { dprintk(VIDC_ERR, "Failed : No buffer requirements : %x\n", buffer_type); HAL_BUFFER_OUTPUT); return -EINVAL; } extra_buffers = msm_vidc_get_extra_buff_count(inst, buffer_type); /* For DPB buffers, no need to add Extra buffers */ bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; bufreq->buffer_count_actual = bufreq->buffer_count_min_host = bufreq->buffer_count_min; bufreq = get_buff_req_buffer(inst, HAL_BUFFER_OUTPUT2); if (!bufreq) { dprintk(VIDC_ERR, "Failed : No buffer requirements : %x\n", HAL_BUFFER_OUTPUT2); return -EINVAL; } extra_buffers = msm_vidc_get_extra_buff_count(inst, HAL_BUFFER_OUTPUT); bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; } else { bufreq = get_buff_req_buffer(inst, HAL_BUFFER_OUTPUT); if (!bufreq) { dprintk(VIDC_ERR, "Failed : No buffer requirements : %x\n", HAL_BUFFER_OUTPUT); return -EINVAL; } extra_buffers = msm_vidc_get_extra_buff_count(inst, HAL_BUFFER_OUTPUT); bufreq->buffer_count_actual = bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; } return 0; } Loading Loading
drivers/media/platform/msm/vidc/msm_vdec.c +3 −0 Original line number Diff line number Diff line Loading @@ -564,6 +564,8 @@ int msm_vdec_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f) inst->bufq[CAPTURE_PORT].plane_sizes[i] = f->fmt.pix_mp.plane_fmt[i].sizeimage; } rc = msm_comm_try_get_bufreqs(inst); } else if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { fmt = msm_comm_get_pixel_fmt_fourcc(vdec_formats, Loading Loading @@ -890,6 +892,7 @@ int msm_vdec_s_ctrl(struct msm_vidc_inst *inst, struct v4l2_ctrl *ctrl) "Failed setting OUTPUT2 size : %d\n", rc); rc = msm_comm_try_get_bufreqs(inst); break; default: dprintk(VIDC_ERR, Loading
drivers/media/platform/msm/vidc/msm_vidc_common.c +48 −14 Original line number Diff line number Diff line Loading @@ -3990,7 +3990,7 @@ int msm_comm_qbuf(struct msm_vidc_inst *inst, struct vb2_buffer *vb) static int msm_vidc_update_host_buff_counts(struct msm_vidc_inst *inst) { int extra_buffers, buffer_type; int extra_buffers; struct hal_buffer_requirements *bufreq; bufreq = get_buff_req_buffer(inst, Loading @@ -4006,20 +4006,54 @@ static int msm_vidc_update_host_buff_counts(struct msm_vidc_inst *inst) bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; buffer_type = msm_comm_get_hal_output_buffer(inst); if (msm_comm_get_stream_output_mode(inst) == HAL_VIDEO_DECODER_SECONDARY) { bufreq = get_buff_req_buffer(inst, buffer_type); HAL_BUFFER_OUTPUT); if (!bufreq) { dprintk(VIDC_ERR, "Failed : No buffer requirements : %x\n", buffer_type); HAL_BUFFER_OUTPUT); return -EINVAL; } extra_buffers = msm_vidc_get_extra_buff_count(inst, buffer_type); /* For DPB buffers, no need to add Extra buffers */ bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; bufreq->buffer_count_actual = bufreq->buffer_count_min_host = bufreq->buffer_count_min; bufreq = get_buff_req_buffer(inst, HAL_BUFFER_OUTPUT2); if (!bufreq) { dprintk(VIDC_ERR, "Failed : No buffer requirements : %x\n", HAL_BUFFER_OUTPUT2); return -EINVAL; } extra_buffers = msm_vidc_get_extra_buff_count(inst, HAL_BUFFER_OUTPUT); bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; } else { bufreq = get_buff_req_buffer(inst, HAL_BUFFER_OUTPUT); if (!bufreq) { dprintk(VIDC_ERR, "Failed : No buffer requirements : %x\n", HAL_BUFFER_OUTPUT); return -EINVAL; } extra_buffers = msm_vidc_get_extra_buff_count(inst, HAL_BUFFER_OUTPUT); bufreq->buffer_count_actual = bufreq->buffer_count_min_host = bufreq->buffer_count_min + extra_buffers; } return 0; } Loading