media: hantro: jpeg: Add JFIF APP0 segment to JPEG encoder output
authorChen-Yu Tsai <wenst@chromium.org>
Fri, 7 Jan 2022 09:34:51 +0000 (10:34 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Fri, 28 Jan 2022 12:24:11 +0000 (13:24 +0100)
While the V4L2_PIX_FMT_JPEG format doesn't specify any requirements for
the APP0 or APP1 segments, it would be nice if the output is JFIF
compliant. While some programs can read JPEG streams that aren't, some
guess work is involved.

Add the standard JFIF APP0 segment to the JPEG header, so that the JPEG
encoder output is JFIF compliant.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/staging/media/hantro/hantro_jpeg.c
drivers/staging/media/hantro/hantro_jpeg.h

index df62fbdff7c9c7dc2b5f1b99853e460e6d7ffc1d..7d4018bd6876f23f8f381c9ce589a1bd66a21be7 100644 (file)
 #include "hantro_jpeg.h"
 #include "hantro.h"
 
-#define LUMA_QUANT_OFF         7
-#define CHROMA_QUANT_OFF       72
-#define HEIGHT_OFF             141
-#define WIDTH_OFF              143
+#define LUMA_QUANT_OFF         25
+#define CHROMA_QUANT_OFF       90
+#define HEIGHT_OFF             159
+#define WIDTH_OFF              161
 
-#define HUFF_LUMA_DC_OFF       160
-#define HUFF_LUMA_AC_OFF       193
-#define HUFF_CHROMA_DC_OFF     376
-#define HUFF_CHROMA_AC_OFF     409
+#define HUFF_LUMA_DC_OFF       178
+#define HUFF_LUMA_AC_OFF       211
+#define HUFF_CHROMA_DC_OFF     394
+#define HUFF_CHROMA_AC_OFF     427
 
 /* Default tables from JPEG ITU-T.81
  * (ISO/IEC 10918-1) Annex K, tables K.1 and K.2
@@ -144,6 +144,11 @@ static const unsigned char hantro_jpeg_header[JPEG_HEADER_SIZE] = {
        /* SOI */
        0xff, 0xd8,
 
+       /* JFIF-APP0 */
+       0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46,
+       0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01,
+       0x00, 0x00,
+
        /* DQT */
        0xff, 0xdb, 0x00, 0x84,
 
index 035ab25b803f7926f496430cb6d03aa37474057b..f33c492134e433961442ab04ef37067634bf146f 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0+ */
 
-#define JPEG_HEADER_SIZE       601
+#define JPEG_HEADER_SIZE       619
 #define JPEG_QUANT_SIZE                64
 
 struct hantro_jpeg_ctx {