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]
