Commit 3d273e81 authored by Jernej Skrabec's avatar Jernej Skrabec Committed by Mauro Carvalho Chehab
Browse files

media: cedrus: Adjust buffer size based on codec



In some cases decoding engine needs extra space in capture buffers. This
is the case for decoding 10-bit HEVC frames into 8-bit capture format.
This commit only adds infrastructure for such cases.

Signed-off-by: default avatarJernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent a7fa9156
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -162,6 +162,8 @@ struct cedrus_dec_ops {
	int (*start)(struct cedrus_ctx *ctx);
	void (*stop)(struct cedrus_ctx *ctx);
	void (*trigger)(struct cedrus_ctx *ctx);
	unsigned int (*extra_cap_size)(struct cedrus_ctx *ctx,
				       struct v4l2_pix_format *pix_fmt);
};

struct cedrus_variant {
+4 −0
Original line number Diff line number Diff line
@@ -250,6 +250,10 @@ static int cedrus_try_fmt_vid_cap_p(struct cedrus_ctx *ctx,
	pix_fmt->height = ctx->src_fmt.height;
	cedrus_prepare_format(pix_fmt);

	if (ctx->current_codec->extra_cap_size)
		pix_fmt->sizeimage +=
			ctx->current_codec->extra_cap_size(ctx, pix_fmt);

	return 0;
}