PR #23045 opened by vigneshvg URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23045 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23045.patch
The elements written in mkv_write_blockadditionmapping (MaxBlockAdditionID, BlockAddIDType and BlockAddIDValue) are all allowed in WebM as well. Move them out of the "if (!IS_WEBM)" block. Matroska spec: https://www.matroska.org/technical/elements.html#MaxBlockAdditionID (See column with title "W" which shows WebM availability). Signed-off-by: Vignesh Venkat <[email protected]> >From 996a264a5316893f01112d31144a1dcd89718d17 Mon Sep 17 00:00:00 2001 From: Vignesh Venkat <[email protected]> Date: Thu, 7 May 2026 15:28:07 -0700 Subject: [PATCH] avformat/matroskaenc: Write additional mappings for webm The elements written in mkv_write_blockadditionmapping (MaxBlockAdditionID, BlockAddIDType and BlockAddIDValue) are all allowed in WebM as well. Move them out of the "if (!IS_WEBM)" block. Matroska spec: https://www.matroska.org/technical/elements.html#MaxBlockAdditionID (See column with title "W" which shows WebM availability). Signed-off-by: Vignesh Venkat <[email protected]> --- libavformat/matroskaenc.c | 39 +++++++++++------------- tests/ref/fate/webm-av1-extradata-update | 4 +-- tests/ref/fate/webm-dash-chapters | 4 +-- tests/ref/fate/webm-hdr10-plus-remux | 6 ++-- tests/ref/fate/webm-webvtt-remux | 4 +-- 5 files changed, 27 insertions(+), 30 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index f4d4a9cc88..b90485a528 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2145,8 +2145,7 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, return AVERROR(EINVAL); } - if (!IS_WEBM(mkv)) - mkv_write_blockadditionmapping(s, mkv, par, pb, track, st); + mkv_write_blockadditionmapping(s, mkv, par, pb, track, st); if (!IS_WEBM(mkv) || par->codec_id != AV_CODEC_ID_WEBVTT) { uint8_t *codecpriv; @@ -3372,30 +3371,28 @@ after_cues: if (mkv->track.bc) { // write Tracks master - if (!IS_WEBM(mkv)) { - AVIOContext *track_bc = mkv->track.bc; + AVIOContext *track_bc = mkv->track.bc; - for (unsigned i = 0; i < s->nb_streams; i++) { - const mkv_track *track = &mkv->tracks[i]; + for (unsigned i = 0; i < s->nb_streams; i++) { + const mkv_track *track = &mkv->tracks[i]; - if (!track->max_blockaddid) - continue; + if (!track->max_blockaddid) + continue; - // We reserved a single byte to write this value. - av_assert0(track->max_blockaddid <= 0xFF); + // We reserved a single byte to write this value. + av_assert0(track->max_blockaddid <= 0xFF); - avio_seek(track_bc, track->blockadditionmapping_offset, SEEK_SET); + avio_seek(track_bc, track->blockadditionmapping_offset, SEEK_SET); - put_ebml_uint(track_bc, MATROSKA_ID_TRACKMAXBLKADDID, - track->max_blockaddid); - if (track->max_blockaddid == MATROSKA_BLOCK_ADD_ID_ITU_T_T35) { - ebml_master mapping_master = start_ebml_master(track_bc, MATROSKA_ID_TRACKBLKADDMAPPING, 8); - put_ebml_uint(track_bc, MATROSKA_ID_BLKADDIDTYPE, - MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35); - put_ebml_uint(track_bc, MATROSKA_ID_BLKADDIDVALUE, - MATROSKA_BLOCK_ADD_ID_ITU_T_T35); - end_ebml_master(track_bc, mapping_master); - } + put_ebml_uint(track_bc, MATROSKA_ID_TRACKMAXBLKADDID, + track->max_blockaddid); + if (track->max_blockaddid == MATROSKA_BLOCK_ADD_ID_ITU_T_T35) { + ebml_master mapping_master = start_ebml_master(track_bc, MATROSKA_ID_TRACKBLKADDMAPPING, 8); + put_ebml_uint(track_bc, MATROSKA_ID_BLKADDIDTYPE, + MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35); + put_ebml_uint(track_bc, MATROSKA_ID_BLKADDIDVALUE, + MATROSKA_BLOCK_ADD_ID_ITU_T_T35); + end_ebml_master(track_bc, mapping_master); } } diff --git a/tests/ref/fate/webm-av1-extradata-update b/tests/ref/fate/webm-av1-extradata-update index 3a84511bae..607909d46f 100644 --- a/tests/ref/fate/webm-av1-extradata-update +++ b/tests/ref/fate/webm-av1-extradata-update @@ -1,5 +1,5 @@ -dc7593b977b092e522018de7e0d12681 *tests/data/fate/webm-av1-extradata-update.webm -23047 tests/data/fate/webm-av1-extradata-update.webm +4be8d56dd9c4c94b704d41c8b354f3e7 *tests/data/fate/webm-av1-extradata-update.webm +23062 tests/data/fate/webm-av1-extradata-update.webm #extradata 0: 35, 0x527207cd #tb 0: 1/1000 #media_type 0: video diff --git a/tests/ref/fate/webm-dash-chapters b/tests/ref/fate/webm-dash-chapters index f32e83852f..11e2f98707 100644 --- a/tests/ref/fate/webm-dash-chapters +++ b/tests/ref/fate/webm-dash-chapters @@ -1,5 +1,5 @@ -e2d3d812e6d9cf05a36eaefe02801a99 *tests/data/fate/webm-dash-chapters.webm -111149 tests/data/fate/webm-dash-chapters.webm +d3146d0817d9f3471b4bda4fa61cc090 *tests/data/fate/webm-dash-chapters.webm +111153 tests/data/fate/webm-dash-chapters.webm #extradata 0: 3469, 0xc6769ddc #tb 0: 1/1000 #media_type 0: audio diff --git a/tests/ref/fate/webm-hdr10-plus-remux b/tests/ref/fate/webm-hdr10-plus-remux index 9180d39596..2510efbbbf 100644 --- a/tests/ref/fate/webm-hdr10-plus-remux +++ b/tests/ref/fate/webm-hdr10-plus-remux @@ -1,5 +1,5 @@ -7c5ae91189589c07f92aa97cb9b3d9e1 *tests/data/fate/webm-hdr10-plus-remux.webm -13842 tests/data/fate/webm-hdr10-plus-remux.webm +4bd2b26ae7c25c3e873ee76229ecbe7c *tests/data/fate/webm-hdr10-plus-remux.webm +13857 tests/data/fate/webm-hdr10-plus-remux.webm #tb 0: 1/1000 #media_type 0: video #codec_id 0: vp9 @@ -16,7 +16,7 @@ dts_time=0.000000 duration=40 duration_time=0.040000 size=13350 -pos=392 +pos=407 flags=K__ [SIDE_DATA] side_data_type=HDR10+ Dynamic Metadata (SMPTE 2094-40) diff --git a/tests/ref/fate/webm-webvtt-remux b/tests/ref/fate/webm-webvtt-remux index f00a04c24c..1c47938bb9 100644 --- a/tests/ref/fate/webm-webvtt-remux +++ b/tests/ref/fate/webm-webvtt-remux @@ -1,5 +1,5 @@ -c372c76c062d368f1d17373c19f83579 *tests/data/fate/webm-webvtt-remux.webm -6524 tests/data/fate/webm-webvtt-remux.webm +22d1105067d2ac031ecc21542750255e *tests/data/fate/webm-webvtt-remux.webm +6540 tests/data/fate/webm-webvtt-remux.webm #tb 0: 1/1000 #media_type 0: subtitle #codec_id 0: webvtt -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
