OSDN Git Service

media: venus: vdec,core: Handle picture structure event
authorStanimir Varbanov <stanimir.varbanov@linaro.org>
Wed, 26 Aug 2020 12:42:52 +0000 (14:42 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Wed, 13 Jan 2021 08:20:27 +0000 (09:20 +0100)
Handle progressive/interlaced bitstream event by similar way as
bit depth.

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/qcom/venus/core.h
drivers/media/platform/qcom/venus/vdec.c

index 8e14c39..dfc13b2 100644 (file)
@@ -375,6 +375,7 @@ struct venus_inst {
        union hfi_get_property hprop;
        unsigned int core_acquired: 1;
        unsigned int bit_depth;
+       unsigned int pic_struct;
        bool next_buf_last;
        bool drain_active;
 };
index fd06416..e4dc97f 100644 (file)
@@ -1371,6 +1371,9 @@ static void vdec_event_change(struct venus_inst *inst,
        if (inst->bit_depth != ev_data->bit_depth)
                inst->bit_depth = ev_data->bit_depth;
 
+       if (inst->pic_struct != ev_data->pic_struct)
+               inst->pic_struct = ev_data->pic_struct;
+
        dev_dbg(dev, VDBGM "event %s sufficient resources (%ux%u)\n",
                sufficient ? "" : "not", ev_data->width, ev_data->height);
 
@@ -1539,6 +1542,7 @@ static int vdec_open(struct file *file)
        inst->clk_data.core_id = VIDC_CORE_ID_DEFAULT;
        inst->core_acquired = false;
        inst->bit_depth = VIDC_BITDEPTH_8;
+       inst->pic_struct = HFI_INTERLACE_FRAME_PROGRESSIVE;
        init_waitqueue_head(&inst->reconf_wait);
        venus_helper_init_instance(inst);