media: hantro: Simplify postprocessor
Add a 'postprocessed' boolean property to struct hantro_fmt to signal that a format is produced by the post-processor. This will allow to introduce the G2 post-processor in a simple way. Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
04dad52ee3
commit
53a3e71095
@ -263,6 +263,7 @@ struct hantro_ctx {
|
|||||||
* @max_depth: Maximum depth, for bitstream formats
|
* @max_depth: Maximum depth, for bitstream formats
|
||||||
* @enc_fmt: Format identifier for encoder registers.
|
* @enc_fmt: Format identifier for encoder registers.
|
||||||
* @frmsize: Supported range of frame sizes (only for bitstream formats).
|
* @frmsize: Supported range of frame sizes (only for bitstream formats).
|
||||||
|
* @postprocessed: Indicates if this format needs the post-processor.
|
||||||
*/
|
*/
|
||||||
struct hantro_fmt {
|
struct hantro_fmt {
|
||||||
char *name;
|
char *name;
|
||||||
@ -272,6 +273,7 @@ struct hantro_fmt {
|
|||||||
int max_depth;
|
int max_depth;
|
||||||
enum hantro_enc_fmt enc_fmt;
|
enum hantro_enc_fmt enc_fmt;
|
||||||
struct v4l2_frmsize_stepwise frmsize;
|
struct v4l2_frmsize_stepwise frmsize;
|
||||||
|
bool postprocessed;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct hantro_reg {
|
struct hantro_reg {
|
||||||
|
@ -53,15 +53,9 @@ const struct hantro_postproc_regs hantro_g1_postproc_regs = {
|
|||||||
bool hantro_needs_postproc(const struct hantro_ctx *ctx,
|
bool hantro_needs_postproc(const struct hantro_ctx *ctx,
|
||||||
const struct hantro_fmt *fmt)
|
const struct hantro_fmt *fmt)
|
||||||
{
|
{
|
||||||
struct hantro_dev *vpu = ctx->dev;
|
|
||||||
|
|
||||||
if (ctx->is_encoder)
|
if (ctx->is_encoder)
|
||||||
return false;
|
return false;
|
||||||
|
return fmt->postprocessed;
|
||||||
if (!vpu->variant->postproc_fmts)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return fmt->fourcc != V4L2_PIX_FMT_NV12;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hantro_postproc_g1_enable(struct hantro_ctx *ctx)
|
static void hantro_postproc_g1_enable(struct hantro_ctx *ctx)
|
||||||
|
@ -82,6 +82,7 @@ static const struct hantro_fmt imx8m_vpu_postproc_fmts[] = {
|
|||||||
{
|
{
|
||||||
.fourcc = V4L2_PIX_FMT_YUYV,
|
.fourcc = V4L2_PIX_FMT_YUYV,
|
||||||
.codec_mode = HANTRO_MODE_NONE,
|
.codec_mode = HANTRO_MODE_NONE,
|
||||||
|
.postprocessed = true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,6 +62,7 @@ static const struct hantro_fmt rockchip_vpu1_postproc_fmts[] = {
|
|||||||
{
|
{
|
||||||
.fourcc = V4L2_PIX_FMT_YUYV,
|
.fourcc = V4L2_PIX_FMT_YUYV,
|
||||||
.codec_mode = HANTRO_MODE_NONE,
|
.codec_mode = HANTRO_MODE_NONE,
|
||||||
|
.postprocessed = true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ static const struct hantro_fmt sama5d4_vdec_postproc_fmts[] = {
|
|||||||
{
|
{
|
||||||
.fourcc = V4L2_PIX_FMT_YUYV,
|
.fourcc = V4L2_PIX_FMT_YUYV,
|
||||||
.codec_mode = HANTRO_MODE_NONE,
|
.codec_mode = HANTRO_MODE_NONE,
|
||||||
|
.postprocessed = true,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user