From b58c71c2e90380d8a3e7a58fa20a6c16c2458317 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sun, 25 May 2025 03:31:17 +0200 Subject: [PATCH 1/3] avformat/matroska: Support JPEG2000 for demuxing Legal since commit 1cd0a9be4b2d1e7c60184ec68404e00e46e3123e (Jan 4) in the Cellar Matroska specification git repo. We still hold out on muxing it due to compatibility with old demuxers. Signed-off-by: Andreas Rheinhardt --- libavformat/matroska.c | 1 + libavformat/matroskaenc.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libavformat/matroska.c b/libavformat/matroska.c index bbad9a7f54..60584e2687 100644 --- a/libavformat/matroska.c +++ b/libavformat/matroska.c @@ -82,6 +82,7 @@ const CodecTags ff_mkv_codec_tags[]={ {"V_AVS3" , AV_CODEC_ID_AVS3}, {"V_DIRAC" , AV_CODEC_ID_DIRAC}, {"V_FFV1" , AV_CODEC_ID_FFV1}, + {"V_JPEG2000" , AV_CODEC_ID_JPEG2000}, {"V_MJPEG" , AV_CODEC_ID_MJPEG}, {"V_MPEG1" , AV_CODEC_ID_MPEG1VIDEO}, {"V_MPEG2" , AV_CODEC_ID_MPEG2VIDEO}, diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 6d0d791f18..9d13f74907 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1960,8 +1960,8 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, // look for a codec ID string specific to mkv to use, // if none are found, use AVI codes - if (par->codec_id == AV_CODEC_ID_FFV1) { - /* FFV1 is actually supported natively in Matroska, + if (par->codec_id == AV_CODEC_ID_FFV1 || par->codec_id == AV_CODEC_ID_JPEG2000) { + /* FFV1 and JPEG2000 are actually supported natively in Matroska, * yet we use the VfW way to mux it for compatibility * with old demuxers. (FIXME: Are they really important?) */ } else if (par->codec_id != AV_CODEC_ID_RAWVIDEO || par->codec_tag) { -- 2.45.2