>From 305cce5e1db5e6ae48497398bec024da206b9035 Mon Sep 17 00:00:00 2001
From: Jerome Martinez <[email protected]>
Date: Wed, 3 Sep 2025 19:54:10 +0200
Subject: [PATCH 1/7] matroskaenc: remove unused MaxBlockAdditionID
For non video tracks: it is never used, let's save 4 bytes
For video tracks: simplify the temporary storage with only a void element and
MaxBlockAdditionID will be written when finishing the track if needed (not the
default value)
---
libavformat/matroskaenc.c | 8 +++----
tests/ref/lavf/mka | 4 ++--
tests/ref/lavf/mkv | 4 ++--
tests/ref/lavf/mkv_attachment | 4 ++--
tests/ref/seek/lavf-mkv | 44 +++++++++++++++++------------------
5 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 8142d9125e..5339b6fd33 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1706,16 +1706,16 @@ static void
mkv_write_blockadditionmapping(AVFormatContext *s, const MatroskaMux
const AVDOVIDecoderConfigurationRecord *dovi;
const AVPacketSideData *sd;
- if (IS_SEEKABLE(s->pb, mkv)) {
+ if (IS_SEEKABLE(s->pb, mkv) && par->codec_type == AVMEDIA_TYPE_VIDEO) {
track->blockadditionmapping_offset = avio_tell(pb);
// We can't know at this point if there will be a block with
BlockAdditions, so
// we either write the default value here, or a void element. Either
of them will
// be overwritten when finishing the track.
- put_ebml_uint(pb, MATROSKA_ID_TRACKMAXBLKADDID, 0);
if (par->codec_type == AVMEDIA_TYPE_VIDEO) {
// Similarly, reserve space for an eventual
// HDR10+ ITU T.35 metadata BlockAdditionMapping.
- put_ebml_void(pb, 3 /* BlockAdditionMapping */
+ put_ebml_void(pb, 4 /* MaxBlockAdditionID */
+ + 3 /* BlockAdditionMapping */
+ 4 /* BlockAddIDValue */
+ 4 /* BlockAddIDType */);
}
@@ -3294,7 +3294,7 @@ after_cues:
for (unsigned i = 0; i < s->nb_streams; i++) {
const mkv_track *track = &mkv->tracks[i];
- if (!track->max_blockaddid)
+ if (!track->max_blockaddid ||
!track->blockadditionmapping_offset)
continue;
// We reserved a single byte to write this value.
diff --git a/tests/ref/lavf/mka b/tests/ref/lavf/mka
index 6f9a56b24a..6fe5ca8d9e 100644
--- a/tests/ref/lavf/mka
+++ b/tests/ref/lavf/mka
@@ -1,3 +1,3 @@
-b9c2d23dffba449cf1111f062b93c93f *tests/data/lavf/lavf.mka
-43588 tests/data/lavf/lavf.mka
+00381b9855734adb05bc96cfd2f3b6b2 *tests/data/lavf/lavf.mka
+43584 tests/data/lavf/lavf.mka
tests/data/lavf/lavf.mka CRC=0x3a1da17e
diff --git a/tests/ref/lavf/mkv b/tests/ref/lavf/mkv
index 5a3c3b931e..b32b521cfa 100644
--- a/tests/ref/lavf/mkv
+++ b/tests/ref/lavf/mkv
@@ -1,3 +1,3 @@
-dd709c2b5e173eaca39cdd4a10aac3ec *tests/data/lavf/lavf.mkv
-320447 tests/data/lavf/lavf.mkv
+9397da7654fc3a00a439545584608637 *tests/data/lavf/lavf.mkv
+320443 tests/data/lavf/lavf.mkv
tests/data/lavf/lavf.mkv CRC=0xec6c3c68
diff --git a/tests/ref/lavf/mkv_attachment b/tests/ref/lavf/mkv_attachment
index 1a086a4f24..aa3faf9d12 100644
--- a/tests/ref/lavf/mkv_attachment
+++ b/tests/ref/lavf/mkv_attachment
@@ -1,3 +1,3 @@
-7cd7b06892b74d66da217c8dda90bfac *tests/data/lavf/lavf.mkv_attachment
-472597 tests/data/lavf/lavf.mkv_attachment
+1c40de58fae4e878e0a499bfe61d78e0 *tests/data/lavf/lavf.mkv_attachment
+472593 tests/data/lavf/lavf.mkv_attachment
tests/data/lavf/lavf.mkv_attachment CRC=0xec6c3c68
diff --git a/tests/ref/seek/lavf-mkv b/tests/ref/seek/lavf-mkv
index e327959058..2eb8506356 100644
--- a/tests/ref/seek/lavf-mkv
+++ b/tests/ref/seek/lavf-mkv
@@ -1,48 +1,48 @@
-ret: 0 st: 1 flags:1 dts:-0.011000 pts:-0.011000 pos: 689 size:
208
+ret: 0 st: 1 flags:1 dts:-0.011000 pts:-0.011000 pos: 685 size:
208
ret: 0 st:-1 flags:0 ts:-1.000000
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 905 size:
27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 901 size:
27837
ret: 0 st:-1 flags:1 ts: 1.894167
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292321 size:
27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292317 size:
27834
ret: 0 st: 0 flags:0 ts: 0.788000
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292321 size:
27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292317 size:
27834
ret: 0 st: 0 flags:1 ts:-0.317000
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 905 size:
27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 901 size:
27837
ret:-1 st: 1 flags:0 ts: 2.577000
ret: 0 st: 1 flags:1 ts: 1.471000
-ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 320165 size:
209
+ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 320161 size:
209
ret: 0 st:-1 flags:0 ts: 0.365002
-ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146873 size:
27925
+ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146869 size:
27925
ret: 0 st:-1 flags:1 ts:-0.740831
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 905 size:
27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 901 size:
27837
ret:-1 st: 0 flags:0 ts: 2.153000
ret: 0 st: 0 flags:1 ts: 1.048000
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292321 size:
27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292317 size:
27834
ret: 0 st: 1 flags:0 ts:-0.058000
-ret: 0 st: 1 flags:1 dts:-0.011000 pts:-0.011000 pos: 689 size:
208
+ret: 0 st: 1 flags:1 dts:-0.011000 pts:-0.011000 pos: 685 size:
208
ret: 0 st: 1 flags:1 ts: 2.836000
-ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 320165 size:
209
+ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 320161 size:
209
ret:-1 st:-1 flags:0 ts: 1.730004
ret: 0 st:-1 flags:1 ts: 0.624171
-ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146873 size:
27925
+ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146869 size:
27925
ret: 0 st: 0 flags:0 ts:-0.482000
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 905 size:
27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 901 size:
27837
ret: 0 st: 0 flags:1 ts: 2.413000
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292321 size:
27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292317 size:
27834
ret:-1 st: 1 flags:0 ts: 1.307000
ret: 0 st: 1 flags:1 ts: 0.201000
-ret: 0 st: 1 flags:1 dts:-0.011000 pts:-0.011000 pos: 689 size:
208
+ret: 0 st: 1 flags:1 dts:-0.011000 pts:-0.011000 pos: 685 size:
208
ret: 0 st:-1 flags:0 ts:-0.904994
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 905 size:
27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 901 size:
27837
ret: 0 st:-1 flags:1 ts: 1.989173
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292321 size:
27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292317 size:
27834
ret: 0 st: 0 flags:0 ts: 0.883000
-ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292321 size:
27834
+ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 292317 size:
27834
ret: 0 st: 0 flags:1 ts:-0.222000
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 905 size:
27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 901 size:
27837
ret:-1 st: 1 flags:0 ts: 2.672000
ret: 0 st: 1 flags:1 ts: 1.566000
-ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 320165 size:
209
+ret: 0 st: 1 flags:1 dts: 0.982000 pts: 0.982000 pos: 320161 size:
209
ret: 0 st:-1 flags:0 ts: 0.460008
-ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146873 size:
27925
+ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 146869 size:
27925
ret: 0 st:-1 flags:1 ts:-0.645825
-ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 905 size:
27837
+ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 901 size:
27837
--
2.46.0.windows.1
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]