This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit c1be9b4a81774105f355a967a59bc0e4bdbd4e97
Author:     Romain Beauxis <[email protected]>
AuthorDate: Wed May 13 20:55:55 2026 -0700
Commit:     Romain Beauxis <[email protected]>
CommitDate: Sat Jul 11 17:14:43 2026 +0000

    Add FATE tests for stale metadata during re-encoding.
---
 tests/fate/id3v2.mak                                | 10 ++++++++++
 tests/fate/matroska.mak                             | 15 +++++++++++++++
 tests/fate/mov.mak                                  | 12 ++++++++++++
 tests/ref/fate/id3v2-reenc-delete-metadata          |  9 +++++++++
 .../fate/id3v2-reenc-delete-metadata-map-metadata   |  9 +++++++++
 tests/ref/fate/id3v2-reenc-remux-keep               |  9 +++++++++
 tests/ref/fate/matroska-reenc-chapter-nofilter      | 10 ++++++++++
 tests/ref/fate/matroska-reenc-delete-metadata       | 19 +++++++++++++++++++
 .../matroska-reenc-delete-metadata-filter-output    | 15 +++++++++++++++
 .../fate/matroska-reenc-delete-metadata-spec-scope  | 19 +++++++++++++++++++
 tests/ref/fate/mov-reenc-delete-format-metadata     | 21 +++++++++++++++++++++
 tests/ref/fate/mov-reenc-delete-stream-metadata     |  9 +++++++++
 .../mov-reenc-delete-stream-metadata-global-tag     | 12 ++++++++++++
 13 files changed, 169 insertions(+)

diff --git a/tests/fate/id3v2.mak b/tests/fate/id3v2.mak
index 90ebda57f1..7cf38b1eb2 100644
--- a/tests/fate/id3v2.mak
+++ b/tests/fate/id3v2.mak
@@ -22,6 +22,16 @@ FATE_ID3V2_RAW-$(call REMUX, MP3) += fate-id3v2-txxx
 fate-id3v2-txxx: $(ID3V2_TESTBIN)
 fate-id3v2-txxx: CMD = run_with_temp "$(FFMPEG) -nostdin -hide_banner 
-loglevel error -i $(TARGET_SAMPLES)/id3v2/id3v2_priv.mp3 -map_metadata -1 -c 
copy -fflags +bitexact -metadata foobar=baz -f mp3 -y" "$(ID3V2_TESTBIN)" mp3
 
+FATE_ID3V2_FFMPEG_FFPROBE-$(call ENCDEC, AAC MP3, NUT) += 
fate-id3v2-reenc-delete-metadata
+fate-id3v2-reenc-delete-metadata: CMD = transcode mp3 
$(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 nut "-c:a aac -bitexact -t 0.1" 
"-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
+
+# -map_metadata must not bypass stale metadata pruning
+FATE_ID3V2_FFMPEG_FFPROBE-$(call ENCDEC, AAC MP3, NUT) += 
fate-id3v2-reenc-delete-metadata-map-metadata
+fate-id3v2-reenc-delete-metadata-map-metadata: CMD = transcode mp3 
$(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 nut "-c:a aac -bitexact 
-map_metadata 0 -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" 
null
+
+FATE_ID3V2_FFMPEG_FFPROBE-$(call REMUX, MP3) += fate-id3v2-reenc-remux-keep
+fate-id3v2-reenc-remux-keep: CMD = transcode mp3 
$(TARGET_SAMPLES)/gapless/gapless-itunes.mp3 mp3 "-c copy" "-c copy -t 0.1" 
"-show_entries format_tags" "" "" "" null
+
 FATE_ID3V2_FFMPEG_FFPROBE-$(call REMUX, AIFF, WAV_DEMUXER) += 
fate-id3v2-chapters
 fate-id3v2-chapters: CMD = transcode wav $(TARGET_SAMPLES)/wav/200828-005.wav 
aiff "-c copy -metadata:c:0 description=foo -metadata:c:0 date=2021 -metadata:c 
copyright=none -metadata:c:1 genre=nonsense -write_id3v2 1" "-c copy -t 0.05" 
"-show_entries format_tags:chapters"
 
diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak
index ca659eec18..b68f791c5e 100644
--- a/tests/fate/matroska.mak
+++ b/tests/fate/matroska.mak
@@ -297,6 +297,21 @@ fate-matroska-side-data-pref-packet: CMD = run 
ffprobe$(PROGSSUF)$(EXESUF) $(TAR
     -select_streams v:0 -show_streams -show_frames -show_entries 
stream=stream_side_data:frame=frame_side_data_list -side_data_prefer_packet 
mastering_display_metadata,content_light_level
 FATE_MATROSKA_FFPROBE-$(call ALLYES, MATROSKA_DEMUXER HEVC_DECODER) += 
fate-matroska-side-data-pref-codec fate-matroska-side-data-pref-packet
 
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, 
SCALE_FILTER) += fate-matroska-reenc-delete-metadata
+fate-matroska-reenc-delete-metadata: CMD = transcode matroska 
$(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v 
mpeg2video -bitexact" "-c copy -t 0.1" "-show_entries format_tags:stream_tags" 
"" "" "" null
+
+# -metadata:s:a:0 specifier must not suppress deletion on a non-matching 
(video) stream
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, 
SCALE_FILTER) += fate-matroska-reenc-delete-metadata-spec-scope
+fate-matroska-reenc-delete-metadata-spec-scope: CMD = transcode matroska 
$(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v 
mpeg2video -bitexact -metadata:s:a:0 NUMBER_OF_BYTES=custom" "-c copy -t 0.1" 
"-show_entries format_tags:stream_tags" "" "" "" null
+
+# stale stream tags must be pruned even for filter outputs (no ost->ist)
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, 
SCALE_FILTER) += fate-matroska-reenc-delete-metadata-filter-output
+fate-matroska-reenc-delete-metadata-filter-output: CMD = transcode matroska 
$(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-filter_complex 
'[0:v]scale=iw:ih[v]' -map '[v]' -c:v mpeg2video -bitexact -map_metadata:s:v 
0:s:v" "-c copy -t 0.1" "-show_entries stream_tags" "" "" "" null
+
+# chapter metadata is not filtered on re-encode; NUMBER_OF_FRAMES must survive
+FATE_MATROSKA_FFMPEG_FFPROBE-$(call TRANSCODE, MPEG2VIDEO HEVC, NUT MATROSKA, 
SCALE_FILTER) += fate-matroska-reenc-chapter-nofilter
+fate-matroska-reenc-chapter-nofilter: CMD = transcode matroska 
$(TARGET_SAMPLES)/mkv/hdr10tags-both.mkv nut "-map 0:v:0 -vf scale=iw:ih -c:v 
mpeg2video -bitexact -metadata:c:0 NUMBER_OF_FRAMES=test" "-c copy -t 0.1" 
"-show_entries chapter_tags" "" "" "" null
+
 FATE_SAMPLES_AVCONV += $(FATE_MATROSKA-yes)
 FATE_SAMPLES_FFPROBE += $(FATE_MATROSKA_FFPROBE-yes)
 FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MATROSKA_FFMPEG_FFPROBE-yes)
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index 3bc075f608..62b47baa4d 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -381,6 +381,18 @@ FATE_MOV_FFMPEG_SAMPLES-$(call REMUX, MP4 MOV, AAC_PARSER) 
\
                           += fate-mov-mp4-edst-remainder
 fate-mov-mp4-edst-remainder: CMD = stream_remux mov 
$(TARGET_SAMPLES)/audiomatch/tones_fdkaac_44100_stereo_aac_lc.m4a "" mp4 "" "" 
"-c:a copy"
 
+# format-level branding: major_brand, minor_version, compatible_brands should 
be deleted on re-encode
+FATE_MOV_FFMPEG_FFPROBE-$(call ENCDEC, AAC AAC, NUT MOV) += 
fate-mov-reenc-delete-format-metadata
+fate-mov-reenc-delete-format-metadata: CMD = transcode mov 
$(TARGET_SAMPLES)/cover_art/Owner-iTunes_9.0.3.15.m4a nut "-map 0:a:0 -c:a aac 
-bitexact -t 0.1" "-c copy -t 0.1" "-show_entries format_tags" "" "" "" null
+
+# stream-level branding: vendor_id should be deleted on re-encode
+FATE_MOV_FFMPEG_FFPROBE-$(call ENCDEC, FLAC PCM_S16BE, NUT MOV) += 
fate-mov-reenc-delete-stream-metadata
+fate-mov-reenc-delete-stream-metadata: CMD = transcode mov 
$(TARGET_SAMPLES)/qt-surge-suite/surge-2-16-B-twos.mov nut "-c:a flac -bitexact 
-t 0.1" "-c copy -t 0.1" "-show_entries stream_tags" "" "" "" null
+
+# plain -metadata (global scope) must not suppress stream-level vendor_id 
pruning
+FATE_MOV_FFMPEG_FFPROBE-$(call ENCDEC, FLAC PCM_S16BE, NUT MOV) += 
fate-mov-reenc-delete-stream-metadata-global-tag
+fate-mov-reenc-delete-stream-metadata-global-tag: CMD = transcode mov 
$(TARGET_SAMPLES)/qt-surge-suite/surge-2-16-B-twos.mov nut "-c:a flac -bitexact 
-t 0.1 -metadata vendor_id=custom" "-c copy -t 0.1" "-show_entries 
format_tags:stream_tags" "" "" "" null
+
 FATE_FFMPEG += $(FATE_MOV_FFMPEG-yes)
 FATE_FFMPEG_FFPROBE += $(FATE_MOV_FFMPEG_FFPROBE-yes)
 
diff --git a/tests/ref/fate/id3v2-reenc-delete-metadata 
b/tests/ref/fate/id3v2-reenc-delete-metadata
new file mode 100644
index 0000000000..a517621fc0
--- /dev/null
+++ b/tests/ref/fate/id3v2-reenc-delete-metadata
@@ -0,0 +1,9 @@
+9b854b7dbe3fb779cd75f131e52372b0 
*tests/data/fate/id3v2-reenc-delete-metadata.nut
+2667 tests/data/fate/id3v2-reenc-delete-metadata.nut
+[FORMAT]
+TAG:title=7rk
+TAG:iTunPGAP=0
+TAG:encoded_by=iTunes 12.7.0.166
+TAG:iTunNORM= 00000362 000004C0 0000308F 00003CC5 00000DAC 00000DAC 00007D14 
00007AC9 000007C1 0000175E
+TAG:iTunSMPB= 00000000 00000210 0000086A 0000000000066486 00000000 0002DA9D 
00000000 00000000 00000000 00000000 00000000 00000000
+[/FORMAT]
diff --git a/tests/ref/fate/id3v2-reenc-delete-metadata-map-metadata 
b/tests/ref/fate/id3v2-reenc-delete-metadata-map-metadata
new file mode 100644
index 0000000000..544fda3b9b
--- /dev/null
+++ b/tests/ref/fate/id3v2-reenc-delete-metadata-map-metadata
@@ -0,0 +1,9 @@
+9b854b7dbe3fb779cd75f131e52372b0 
*tests/data/fate/id3v2-reenc-delete-metadata-map-metadata.nut
+2667 tests/data/fate/id3v2-reenc-delete-metadata-map-metadata.nut
+[FORMAT]
+TAG:title=7rk
+TAG:iTunPGAP=0
+TAG:encoded_by=iTunes 12.7.0.166
+TAG:iTunNORM= 00000362 000004C0 0000308F 00003CC5 00000DAC 00000DAC 00007D14 
00007AC9 000007C1 0000175E
+TAG:iTunSMPB= 00000000 00000210 0000086A 0000000000066486 00000000 0002DA9D 
00000000 00000000 00000000 00000000 00000000 00000000
+[/FORMAT]
diff --git a/tests/ref/fate/id3v2-reenc-remux-keep 
b/tests/ref/fate/id3v2-reenc-remux-keep
new file mode 100644
index 0000000000..e685b11291
--- /dev/null
+++ b/tests/ref/fate/id3v2-reenc-remux-keep
@@ -0,0 +1,9 @@
+263462774b77f2b20a9cb5cbe492f910 *tests/data/fate/id3v2-reenc-remux-keep.mp3
+192072 tests/data/fate/id3v2-reenc-remux-keep.mp3
+[FORMAT]
+TAG:title=7rk
+TAG:iTunPGAP=0
+TAG:encoded_by=iTunes 12.7.0.166
+TAG:iTunNORM= 00000362 000004C0 0000308F 00003CC5 00000DAC 00000DAC 00007D14 
00007AC9 000007C1 0000175E
+TAG:iTunSMPB= 00000000 00000210 0000086A 0000000000066486 00000000 0002DA9D 
00000000 00000000 00000000 00000000 00000000 00000000
+[/FORMAT]
diff --git a/tests/ref/fate/matroska-reenc-chapter-nofilter 
b/tests/ref/fate/matroska-reenc-chapter-nofilter
new file mode 100644
index 0000000000..89ca986a6c
--- /dev/null
+++ b/tests/ref/fate/matroska-reenc-chapter-nofilter
@@ -0,0 +1,10 @@
+ee93018a787b4e9620dd27207e267ad6 
*tests/data/fate/matroska-reenc-chapter-nofilter.nut
+28879 tests/data/fate/matroska-reenc-chapter-nofilter.nut
+[CHAPTER]
+TAG:title=Schloß
+TAG:NUMBER_OF_FRAMES=test
+[/CHAPTER]
+[CHAPTER]
+TAG:title=Carro
+TAG:DESCRIPTION=Chapter titles for regional variants of English/Spanish
+[/CHAPTER]
diff --git a/tests/ref/fate/matroska-reenc-delete-metadata 
b/tests/ref/fate/matroska-reenc-delete-metadata
new file mode 100644
index 0000000000..c85b6d18d6
--- /dev/null
+++ b/tests/ref/fate/matroska-reenc-delete-metadata
@@ -0,0 +1,19 @@
+f3f1913ea5dffcff4789d178aed75e10 
*tests/data/fate/matroska-reenc-delete-metadata.nut
+28856 tests/data/fate/matroska-reenc-delete-metadata.nut
+[STREAM]
+TAG:encoder=Lavc mpeg2video
+TAG:language=spa
+TAG:BPS-eng=216040
+TAG:DURATION-eng=00:00:00.400000000
+TAG:NUMBER_OF_FRAMES-eng=10
+TAG:NUMBER_OF_BYTES-eng=10802
+TAG:_STATISTICS_WRITING_APP-eng=mkvmerge v9.0.1 ('Mask Machine') 64bit
+TAG:_STATISTICS_WRITING_DATE_UTC-eng=2019-02-14 12:53:10
+TAG:_STATISTICS_TAGS-eng=BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
+[SIDE_DATA]
+[/SIDE_DATA]
+[/STREAM]
+[FORMAT]
+TAG:DESCRIPTION=Edition description
+TAG:TITLE=Edition title
+[/FORMAT]
diff --git a/tests/ref/fate/matroska-reenc-delete-metadata-filter-output 
b/tests/ref/fate/matroska-reenc-delete-metadata-filter-output
new file mode 100644
index 0000000000..2f82277ea3
--- /dev/null
+++ b/tests/ref/fate/matroska-reenc-delete-metadata-filter-output
@@ -0,0 +1,15 @@
+9a7537256acd618b31e18a3d92fc907f 
*tests/data/fate/matroska-reenc-delete-metadata-filter-output.nut
+28835 tests/data/fate/matroska-reenc-delete-metadata-filter-output.nut
+[STREAM]
+TAG:encoder=Lavc mpeg2video
+TAG:language=spa
+TAG:BPS-eng=216040
+TAG:DURATION-eng=00:00:00.400000000
+TAG:NUMBER_OF_FRAMES-eng=10
+TAG:NUMBER_OF_BYTES-eng=10802
+TAG:_STATISTICS_WRITING_APP-eng=mkvmerge v9.0.1 ('Mask Machine') 64bit
+TAG:_STATISTICS_WRITING_DATE_UTC-eng=2019-02-14 12:53:10
+TAG:_STATISTICS_TAGS-eng=BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
+[SIDE_DATA]
+[/SIDE_DATA]
+[/STREAM]
diff --git a/tests/ref/fate/matroska-reenc-delete-metadata-spec-scope 
b/tests/ref/fate/matroska-reenc-delete-metadata-spec-scope
new file mode 100644
index 0000000000..5ef47368db
--- /dev/null
+++ b/tests/ref/fate/matroska-reenc-delete-metadata-spec-scope
@@ -0,0 +1,19 @@
+f3f1913ea5dffcff4789d178aed75e10 
*tests/data/fate/matroska-reenc-delete-metadata-spec-scope.nut
+28856 tests/data/fate/matroska-reenc-delete-metadata-spec-scope.nut
+[STREAM]
+TAG:encoder=Lavc mpeg2video
+TAG:language=spa
+TAG:BPS-eng=216040
+TAG:DURATION-eng=00:00:00.400000000
+TAG:NUMBER_OF_FRAMES-eng=10
+TAG:NUMBER_OF_BYTES-eng=10802
+TAG:_STATISTICS_WRITING_APP-eng=mkvmerge v9.0.1 ('Mask Machine') 64bit
+TAG:_STATISTICS_WRITING_DATE_UTC-eng=2019-02-14 12:53:10
+TAG:_STATISTICS_TAGS-eng=BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
+[SIDE_DATA]
+[/SIDE_DATA]
+[/STREAM]
+[FORMAT]
+TAG:DESCRIPTION=Edition description
+TAG:TITLE=Edition title
+[/FORMAT]
diff --git a/tests/ref/fate/mov-reenc-delete-format-metadata 
b/tests/ref/fate/mov-reenc-delete-format-metadata
new file mode 100644
index 0000000000..78ec5a8d54
--- /dev/null
+++ b/tests/ref/fate/mov-reenc-delete-format-metadata
@@ -0,0 +1,21 @@
+31a5be81f6278f7d62e901207bf59485 
*tests/data/fate/mov-reenc-delete-format-metadata.nut
+894 tests/data/fate/mov-reenc-delete-format-metadata.nut
+[FORMAT]
+TAG:major_brand=M4A 
+TAG:minor_version=0
+TAG:compatible_brands=M4A mp42isom
+TAG:comment=The comment... 
+TAG:title=Owner
+TAG:compilation=0
+TAG:gapless_playback=0
+TAG:date=2010
+TAG:iTunSMPB= 00000000 00000840 000001FD 000000000013B5C3 00000000 00000000 
00000000 00000000 00000000 00000000 00000000 00000000
+TAG:Encoding Params=vers
+TAG:iTunNORM= 0000085B 0000072C 00006BC3 0000D444 00004EBA 00004ED2 00008000 
00008000 000037DF 000039C7
+TAG:artist=The Artist
+TAG:album_artist=The Album Artist
+TAG:album=The Album
+TAG:genre=Rock
+TAG:track=2/5
+TAG:disc=3/5
+[/FORMAT]
diff --git a/tests/ref/fate/mov-reenc-delete-stream-metadata 
b/tests/ref/fate/mov-reenc-delete-stream-metadata
new file mode 100644
index 0000000000..f54730e932
--- /dev/null
+++ b/tests/ref/fate/mov-reenc-delete-stream-metadata
@@ -0,0 +1,9 @@
+c3339d3d42a7f414fec083f0766fb79a 
*tests/data/fate/mov-reenc-delete-stream-metadata.nut
+6629 tests/data/fate/mov-reenc-delete-stream-metadata.nut
+[STREAM]
+TAG:encoder=Lavc flac
+TAG:creation_time=2002-06-02T18:38:54.000000Z
+TAG:language=eng
+TAG:handler_name=Apple Sound Media Handler
+TAG:vendor_id=[0][0][0][0]
+[/STREAM]
diff --git a/tests/ref/fate/mov-reenc-delete-stream-metadata-global-tag 
b/tests/ref/fate/mov-reenc-delete-stream-metadata-global-tag
new file mode 100644
index 0000000000..aa3332039e
--- /dev/null
+++ b/tests/ref/fate/mov-reenc-delete-stream-metadata-global-tag
@@ -0,0 +1,12 @@
+3b2b8f248a99168fa938c9767c350dca 
*tests/data/fate/mov-reenc-delete-stream-metadata-global-tag.nut
+6647 tests/data/fate/mov-reenc-delete-stream-metadata-global-tag.nut
+[STREAM]
+TAG:encoder=Lavc flac
+TAG:creation_time=2002-06-02T18:38:54.000000Z
+TAG:language=eng
+TAG:handler_name=Apple Sound Media Handler
+TAG:vendor_id=[0][0][0][0]
+[/STREAM]
+[FORMAT]
+TAG:vendor_id=custom
+[/FORMAT]

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

Reply via email to