Message ID | 1498579734-1594-7-git-send-email-thierry.escande@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
W dniu 27.06.2017 o 18:08, Thierry Escande pisze: > From: Tony K Nadackal <tony.kn@samsung.com> > > This patch adds support for decoding 4:1:1 chroma subsampling in the > jpeg header parsing function. > > Signed-off-by: Tony K Nadackal <tony.kn@samsung.com> > Signed-off-by: Thierry Escande <thierry.escande@collabora.com> Acked-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com> > --- > drivers/media/platform/s5p-jpeg/jpeg-core.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c > index 0783809..cca0fb8 100644 > --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c > +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c > @@ -1099,6 +1099,8 @@ static void skip(struct s5p_jpeg_buffer *buf, long len) > static bool s5p_jpeg_subsampling_decode(struct s5p_jpeg_ctx *ctx, > unsigned int subsampling) > { > + unsigned int version; > + > switch (subsampling) { > case 0x11: > ctx->subsampling = V4L2_JPEG_CHROMA_SUBSAMPLING_444; > @@ -1112,6 +1114,19 @@ static bool s5p_jpeg_subsampling_decode(struct s5p_jpeg_ctx *ctx, > case 0x33: > ctx->subsampling = V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY; > break; > + case 0x41: > + /* > + * 4:1:1 subsampling only supported by 3250, 5420, and 5433 > + * variants > + */ > + version = ctx->jpeg->variant->version; > + if (version != SJPEG_EXYNOS3250 && > + version != SJPEG_EXYNOS5420 && > + version != SJPEG_EXYNOS5433) > + return false; > + > + ctx->subsampling = V4L2_JPEG_CHROMA_SUBSAMPLING_411; > + break; > default: > return false; > } >
diff --git a/drivers/media/platform/s5p-jpeg/jpeg-core.c b/drivers/media/platform/s5p-jpeg/jpeg-core.c index 0783809..cca0fb8 100644 --- a/drivers/media/platform/s5p-jpeg/jpeg-core.c +++ b/drivers/media/platform/s5p-jpeg/jpeg-core.c @@ -1099,6 +1099,8 @@ static void skip(struct s5p_jpeg_buffer *buf, long len) static bool s5p_jpeg_subsampling_decode(struct s5p_jpeg_ctx *ctx, unsigned int subsampling) { + unsigned int version; + switch (subsampling) { case 0x11: ctx->subsampling = V4L2_JPEG_CHROMA_SUBSAMPLING_444; @@ -1112,6 +1114,19 @@ static bool s5p_jpeg_subsampling_decode(struct s5p_jpeg_ctx *ctx, case 0x33: ctx->subsampling = V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY; break; + case 0x41: + /* + * 4:1:1 subsampling only supported by 3250, 5420, and 5433 + * variants + */ + version = ctx->jpeg->variant->version; + if (version != SJPEG_EXYNOS3250 && + version != SJPEG_EXYNOS5420 && + version != SJPEG_EXYNOS5433) + return false; + + ctx->subsampling = V4L2_JPEG_CHROMA_SUBSAMPLING_411; + break; default: return false; }