video: driver: fixes for nv12 format and dpb buffer

fixes for nv12 format and dpb buffers. modified
PIX_FMTS and corresponding driver color format
structure, therby fixing enum_fmts.

Change-Id: I955b76dd4938e96fe259311e107a0cdca39425bc
Signed-off-by: Darshana Patil <darshana@codeaurora.org>
这个提交包含在:
Darshana Patil
2021-01-26 17:03:39 -08:00
父节点 ad18bb5c23
当前提交 b226d6a089
修改 8 个文件,包含 61 行新增99 行删除

查看文件

@@ -125,7 +125,7 @@ static u32 msm_vidc_decoder_line_size_iris2(struct msm_vidc_inst *inst)
u32 width, height, out_min_count, num_vpp_pipes, vpp_delay;
struct v4l2_format *f;
bool is_opb;
u32 pixelformat;
u32 color_fmt;
if (!inst || !inst->core) {
d_vpr_e("%s: invalid params\n", __func__);
@@ -138,12 +138,17 @@ static u32 msm_vidc_decoder_line_size_iris2(struct msm_vidc_inst *inst)
}
num_vpp_pipes = core->capabilities[NUM_VPP_PIPE].value;
pixelformat = inst->fmts[OUTPUT_PORT].fmt.pix_mp.pixelformat;
if (pixelformat == MSM_VIDC_FMT_NV12 ||
pixelformat == MSM_VIDC_FMT_P010)
color_fmt = v4l2_colorformat_to_driver(
inst->fmts[OUTPUT_PORT].fmt.pix_mp.pixelformat, __func__);
if (is_linear_colorformat(color_fmt))
is_opb = true;
else
is_opb = false;
/*
* assume worst case, since color format is unknown at this
* time
*/
is_opb = true;
if (inst->decode_vpp_delay.enable)
vpp_delay = inst->decode_vpp_delay.size;
@@ -155,7 +160,6 @@ static u32 msm_vidc_decoder_line_size_iris2(struct msm_vidc_inst *inst)
height = f->fmt.pix_mp.height;
out_min_count = inst->buffers.output.min_count;
out_min_count = max(vpp_delay + 1, out_min_count);
if (inst->codec == MSM_VIDC_H264)
HFI_BUFFER_LINE_H264D(size, width, height, is_opb,
num_vpp_pipes);