msm: vidc: Use internal size for extradata plane
Derive extradata plane size using internal MACRO rather than getting from Venus. This helps to keep clients and driver in sync. CRs-Fixed: 1011881 Change-Id: I2b3536f5eb2742d6b6855140c40724f6425d1578 Signed-off-by: Praneeth Paladugu <ppaladug@codeaurora.org>
This commit is contained in:
parent
c605e110ab
commit
8ce53cecf0
1 changed files with 10 additions and 18 deletions
|
@ -1077,7 +1077,6 @@ int msm_vdec_g_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f)
|
|||
struct hfi_device *hdev;
|
||||
int rc = 0, i = 0, stride = 0, scanlines = 0, color_format = 0;
|
||||
unsigned int *plane_sizes = NULL, extra_idx = 0;
|
||||
struct hal_buffer_requirements *bufreq;
|
||||
|
||||
if (!inst || !f || !inst->core || !inst->core->device) {
|
||||
dprintk(VIDC_ERR,
|
||||
|
@ -1168,10 +1167,10 @@ int msm_vdec_g_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f)
|
|||
|
||||
extra_idx = EXTRADATA_IDX(fmt->num_planes);
|
||||
if (extra_idx && extra_idx < VIDEO_MAX_PLANES) {
|
||||
bufreq = get_buff_req_buffer(inst,
|
||||
HAL_BUFFER_EXTRADATA_OUTPUT);
|
||||
f->fmt.pix_mp.plane_fmt[extra_idx].sizeimage =
|
||||
bufreq ? bufreq->buffer_size : 0;
|
||||
VENUS_EXTRADATA_SIZE(
|
||||
inst->prop.height[CAPTURE_PORT],
|
||||
inst->prop.width[CAPTURE_PORT]);
|
||||
}
|
||||
|
||||
for (i = 0; i < fmt->num_planes; ++i)
|
||||
|
@ -1249,7 +1248,6 @@ int msm_vdec_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f)
|
|||
int ret = 0;
|
||||
int i;
|
||||
int max_input_size = 0;
|
||||
struct hal_buffer_requirements *bufreq;
|
||||
|
||||
if (!inst || !f) {
|
||||
dprintk(VIDC_ERR, "%s invalid parameters\n", __func__);
|
||||
|
@ -1294,16 +1292,12 @@ int msm_vdec_s_fmt(struct msm_vidc_inst *inst, struct v4l2_format *f)
|
|||
|
||||
extra_idx = EXTRADATA_IDX(fmt->num_planes);
|
||||
if (extra_idx && extra_idx < VIDEO_MAX_PLANES) {
|
||||
bufreq = get_buff_req_buffer(inst,
|
||||
HAL_BUFFER_EXTRADATA_OUTPUT);
|
||||
f->fmt.pix_mp.plane_fmt[extra_idx].sizeimage =
|
||||
bufreq ? bufreq->buffer_size : 0;
|
||||
VENUS_EXTRADATA_SIZE(
|
||||
inst->prop.height[CAPTURE_PORT],
|
||||
inst->prop.width[CAPTURE_PORT]);
|
||||
}
|
||||
|
||||
for (i = 0; i < fmt->num_planes; ++i)
|
||||
inst->bufq[CAPTURE_PORT].vb2_bufq.plane_sizes[i] =
|
||||
f->fmt.pix_mp.plane_fmt[i].sizeimage;
|
||||
|
||||
f->fmt.pix_mp.num_planes = fmt->num_planes;
|
||||
for (i = 0; i < fmt->num_planes; ++i) {
|
||||
inst->bufq[CAPTURE_PORT].vb2_bufq.plane_sizes[i] =
|
||||
|
@ -1590,12 +1584,10 @@ static int msm_vdec_queue_setup(struct vb2_queue *q,
|
|||
extra_idx =
|
||||
EXTRADATA_IDX(inst->fmts[CAPTURE_PORT]->num_planes);
|
||||
if (extra_idx && extra_idx < VIDEO_MAX_PLANES) {
|
||||
bufreq = get_buff_req_buffer(inst,
|
||||
HAL_BUFFER_EXTRADATA_OUTPUT);
|
||||
if (bufreq)
|
||||
sizes[extra_idx] = bufreq->buffer_size;
|
||||
else
|
||||
sizes[extra_idx] = 0;
|
||||
sizes[extra_idx] =
|
||||
VENUS_EXTRADATA_SIZE(
|
||||
inst->prop.height[CAPTURE_PORT],
|
||||
inst->prop.width[CAPTURE_PORT]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Add table
Reference in a new issue