aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2025-05-25 03:31:17 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2025-05-28 02:09:28 +0200
commit8a936b8726e10d84a06cacc872d267020f1ef156 (patch)
tree96ba1d7dd483e59b3dbc7d8341cb8934c6396d15
parentb7d44dde3b894a3b360220cdbf7fdc2bd93cd531 (diff)
downloadffmpeg-8a936b8726e10d84a06cacc872d267020f1ef156.tar.gz
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. Reviewed-by: compn <ff@hawaiiantel.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavformat/matroska.c1
-rw-r--r--libavformat/matroskaenc.c4
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) {