media: venus: venc: set correct resolution on compressed stream
authorStanimir Varbanov <stanimir.varbanov@linaro.org>
Fri, 18 Aug 2017 14:16:01 +0000 (10:16 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Sat, 26 Aug 2017 18:29:07 +0000 (14:29 -0400)
This change the alignment restriction for output type of buffers
only, also set corect input resolution and fill bidirectional
vb2 queue flag in order to map output type buffers read/write.
The last is needed by encoder firmware to add padding at the
bottom of output (input buffers).

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/media/platform/qcom/venus/venc.c

index 20a3daa82492e0e4e1b32eb74ae887d2dc135160..6f123a387cf9efa41366f7d4ad274510404398e2 100644 (file)
@@ -295,7 +295,7 @@ venc_try_fmt_common(struct venus_inst *inst, struct v4l2_format *f)
        pixmp->height = clamp(pixmp->height, inst->cap_height.min,
                              inst->cap_height.max);
 
-       if (inst->core->res->hfi_version == HFI_VERSION_1XX)
+       if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
                pixmp->height = ALIGN(pixmp->height, 32);
 
        pixmp->width = ALIGN(pixmp->width, 2);
@@ -753,8 +753,8 @@ static int venc_init_session(struct venus_inst *inst)
        if (ret)
                return ret;
 
-       ret = venus_helper_set_input_resolution(inst, inst->out_width,
-                                               inst->out_height);
+       ret = venus_helper_set_input_resolution(inst, inst->width,
+                                               inst->height);
        if (ret)
                goto deinit;
 
@@ -1016,6 +1016,8 @@ static int m2m_queue_init(void *priv, struct vb2_queue *src_vq,
        src_vq->allow_zero_bytesused = 1;
        src_vq->min_buffers_needed = 1;
        src_vq->dev = inst->core->dev;
+       if (inst->core->res->hfi_version == HFI_VERSION_1XX)
+               src_vq->bidirectional = 1;
        ret = vb2_queue_init(src_vq);
        if (ret)
                return ret;