________________________________________
From: James Almer
Sent: Tuesday, April 7, 2026 15:35
To: Grzegorz Rys; [email protected]
Cc: Tomasz Szumski
Subject: Re: [PATCH 1/3] Allow JPEG XS to be stored in mp4/mkv container

On 4/7/2026 9:21 AM, Grzegorz Rys wrote:
> From: Tomasz Szumski <[email protected]>
>
> ---
>   libavformat/isom.c      | 1 +
>   libavformat/isom_tags.c | 1 +
>   libavformat/movenc.c    | 1 +
>   3 files changed, 3 insertions(+)
>
> diff --git a/libavformat/isom.c b/libavformat/isom.c
> index 29171fea40..283999bbfb 100644
> --- a/libavformat/isom.c
> +++ b/libavformat/isom.c
> @@ -55,6 +55,7 @@ const AVCodecTag ff_mp4_obj_type[] = {
>       { AV_CODEC_ID_MJPEG       , 0x6C }, /* 10918-1 */
>       { AV_CODEC_ID_PNG         , 0x6D },
>       { AV_CODEC_ID_JPEG2000    , 0x6E }, /* 15444-1 */
> +    { AV_CODEC_ID_JPEGXS      , 0x6F }, /* ??? */

Does this follow the definition in ISO/IEC 21122-3?

>       { AV_CODEC_ID_VC1         , 0xA3 },
>       { AV_CODEC_ID_DIRAC       , 0xA4 },
>       { AV_CODEC_ID_AC3         , 0xA5 },
> diff --git a/libavformat/isom_tags.c b/libavformat/isom_tags.c
> index 1cd655b06c..6f193196ca 100644
> --- a/libavformat/isom_tags.c
> +++ b/libavformat/isom_tags.c
> @@ -213,6 +213,7 @@ const AVCodecTag ff_codec_movvideo_tags[] = {
>       { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', '2', 'v') }, /* FCP5 */
>
>       { AV_CODEC_ID_JPEG2000, MKTAG('m', 'j', 'p', '2') }, /* JPEG 2000 
> produced by FCP */
> +    { AV_CODEC_ID_JPEGXS,   MKTAG('j', 'x', 's', ' ') }, /* JPEGXS */

Ditto.

Also, the description for ISO/IEC 21122-3 seems to indicate there are
JPEG-XS specific boxes, I'd expect one in the Visual Sample Entry for
the corresponding Sample Description Box.

>
>       { AV_CODEC_ID_TARGA, MKTAG('t', 'g', 'a', ' ') }, /* Truevision Targa */
>       { AV_CODEC_ID_TIFF,  MKTAG('t', 'i', 'f', 'f') }, /* TIFF embedded in 
> MOV */
> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
> index fe6b259561..770681db8b 100644
> --- a/libavformat/movenc.c
> +++ b/libavformat/movenc.c
> @@ -8898,6 +8898,7 @@ static const AVCodecTag codec_mp4_tags[] = {
>       { AV_CODEC_ID_MJPEG,           MKTAG('m', 'p', '4', 'v') },
>       { AV_CODEC_ID_PNG,             MKTAG('m', 'p', '4', 'v') },
>       { AV_CODEC_ID_JPEG2000,        MKTAG('m', 'p', '4', 'v') },
> +    { AV_CODEC_ID_JPEGXS,          MKTAG('j', 'x', 's', ' ') },
>       { AV_CODEC_ID_VC1,             MKTAG('v', 'c', '-', '1') },
>       { AV_CODEC_ID_DIRAC,           MKTAG('d', 'r', 'a', 'c') },
>       { AV_CODEC_ID_TSCC2,           MKTAG('m', 'p', '4', 'v') },

Updated patch:

>From 29f918767fac1974d290a36a1c03dd9ed9fc111e Mon Sep 17 00:00:00 2001
From: Grzegorz Rys <[email protected]>
Date: Mon, 30 Oct 2023 06:49:02 +0100
Subject: [PATCH 1/3] Allow JPEG XS to be stored in mp4 and mkv containers

---
 libavformat/isom.c      | 1 +
 libavformat/isom_tags.c | 1 +
 libavformat/movenc.c    | 1 +
 3 files changed, 3 insertions(+)

diff --git a/libavformat/isom.c b/libavformat/isom.c
index 1a2b3c4d5e..5f6e7f8e9d 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -54,6 +54,7 @@ const AVCodecTag ff_mp4_obj_type[] = {
     { AV_CODEC_ID_MP3         , 0x6B }, /* 11172-3 */
     { AV_CODEC_ID_MJPEG       , 0x6C }, /* 10918-1 */
     { AV_CODEC_ID_PNG         , 0x6D },
     { AV_CODEC_ID_JPEG2000    , 0x6E }, /* 15444-1 */
+    { AV_CODEC_ID_JPEGXS      , 0x6F }, /* ISO/IEC 21122-3 */
     { AV_CODEC_ID_VC1         , 0xA3 },
     { AV_CODEC_ID_DIRAC       , 0xA4 },

diff --git a/libavformat/isom_tags.c b/libavformat/isom_tags.c
index 1cd655b06c..6f193196ca 100644
--- a/libavformat/isom_tags.c
+++ b/libavformat/isom_tags.c
@@ -213,6 +213,7 @@ const AVCodecTag ff_codec_movvideo_tags[] = {
     { AV_CODEC_ID_MPEG2VIDEO, MKTAG('m', 'p', '2', 'v') }, /* FCP5 */

     { AV_CODEC_ID_JPEG2000, MKTAG('m', 'j', 'p', '2') }, /* JPEG 2000 produced 
by FCP */
+    { AV_CODEC_ID_JPEGXS,   MKTAG('j', 'x', 's', ' ') }, /* JPEGXS */

     { AV_CODEC_ID_TARGA, MKTAG('t', 'g', 'a', ' ') }, /* Truevision Targa */
     { AV_CODEC_ID_TIFF,  MKTAG('t', 'i', 'f', 'f') }, /* TIFF embedded in MOV 
*/

diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 8f9e7d5c6b..abcdef123456 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -8897,6 +8897,7 @@ static const AVCodecTag codec_mp4_tags[] = {
     { AV_CODEC_ID_PNG,             MKTAG('m', 'p', '4', 'v') },
     { AV_CODEC_ID_JPEG2000,        MKTAG('m', 'p', '4', 'v') },
+    { AV_CODEC_ID_JPEGXS,          MKTAG('j', 'x', 's', ' ') },
     { AV_CODEC_ID_VC1,             MKTAG('v', 'c', '-', '1') },
     { AV_CODEC_ID_DIRAC,           MKTAG('d', 'r', 'a', 'c') },
     { AV_CODEC_ID_TSCC2,           MKTAG('m', 'p', '4', 'v') },
     { AV_CODEC_ID_VP9,             MKTAG('v', 'p', '0', '9') },
---------------------------------------------------------------------
Intel Technology Poland sp. z o.o.
ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydzial 
Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-316 | 
Kapital zakladowy 200.000 PLN.
Spolka oswiadcza, ze posiada status duzego przedsiebiorcy w rozumieniu ustawy z 
dnia 8 marca 2013 r. o przeciwdzialaniu nadmiernym opoznieniom w transakcjach 
handlowych.

Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata i 
moze zawierac informacje poufne. W razie przypadkowego otrzymania tej 
wiadomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; 
jakiekolwiek przegladanie lub rozpowszechnianie jest zabronione.
This e-mail and any attachments may contain confidential material for the sole 
use of the intended recipient(s). If you are not the intended recipient, please 
contact the sender and delete all copies; any review or distribution by others 
is strictly prohibited.

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to