mirror of https://git.ffmpeg.org/ffmpeg.git
fate/cover-art: Add test for writing id3v2 tags and apic with AIFF/MP3
Notice that the order of the APIC tracks is currently wrong. This is a superposition of two bugs: (i) Both muxers write the attached pictures in the order they arrive in the muxer and not in the stream_index order, leading to attached pictures that are copied being written earlier because their timestamp is AV_NOPTS_VALUE, whereas the timestamp of the encoded pictures is 0. (ii) A bug in the id3v2 parsing code reverses the order of the parsed pictures. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
3d76d4bf7f
commit
2f4ef9cbdf
|
@ -30,9 +30,26 @@ FATE_COVER_ART-$(CONFIG_WV_DEMUXER) += fate-cover-art-wv
|
|||
fate-cover-art-wv: CMD = md5 -i $(TARGET_SAMPLES)/cover_art/luckynight_cover.wv -an -c:v copy -f rawvideo
|
||||
fate-cover-art-wv: REF = 45333c983c45af54449dff10af144317
|
||||
|
||||
# Tests writing id3v2 tags (some with non-ASCII characters) and apics.
|
||||
FATE_COVER_ART_REMUX-$(call ALLYES, FILE_PROTOCOL FLAC_DEMUXER MJPEG_DECODER \
|
||||
FLAC_DECODER SCALE_FILTER PNG_ENCODER \
|
||||
BMP_ENCODER PCM_S16BE_ENCODER AIFF_MUXER \
|
||||
AIFF_DEMUXER BMP_DECODER PNG_DECODER \
|
||||
FRAMECRC_MUXER PIPE_PROTOCOL) \
|
||||
+= fate-cover-art-aiff-id3v2-remux
|
||||
fate-cover-art-aiff-id3v2-remux: CMD = transcode flac $(TARGET_SAMPLES)/cover_art/cover_art.flac aiff "-map 0 -map 0:v -map 0:v -map 0:v -c:a pcm_s16be -c:v:0 copy -filter:v:1 scale -c:v:1 png -filter:v:2 scale -c:v:2 bmp -c:v:3 copy -write_id3v2 1 -metadata:g unknown_key=unknown_value -metadata compilation=foo -metadata:s:v:0 title=first -metadata:s:v:1 title=second -metadata:s:v:1 comment=Illustration -metadata:s:v:2 title=third -metadata:s:v:2 comment=Conductor -metadata:s:v:3 title=fourth -metadata:s:v:3 comment=Composer" "-map 0 -c copy -t 0.1" "" "-show_entries format_tags:stream_tags:stream_disposition=attached_pic:stream=index,codec_name"
|
||||
|
||||
FATE_COVER_ART_REMUX-$(call ALLYES, FILE_PROTOCOL MP3_DEMUXER MJPEG_DECODER \
|
||||
SCALE_FILTER PNG_ENCODER BMP_ENCODER \
|
||||
MP3_MUXER BMP_DECODER PNG_DECODER \
|
||||
FRAMECRC_MUXER PIPE_PROTOCOL) \
|
||||
+= fate-cover-art-mp3-id3v2-remux
|
||||
fate-cover-art-mp3-id3v2-remux: CMD = transcode mp3 $(TARGET_SAMPLES)/exif/embedded_small.mp3 mp3 "-map 0 -map 0:v -map 0:v -c:a copy -filter:v:0 scale -filter:v:2 scale -c:v:0 bmp -c:v:1 copy -c:v:2 png -metadata:s:v:0 comment=Band/Orchestra" "-map 0 -c copy -t 0.1" "" "-show_entries stream_tags:stream_disposition=attached_pic:stream=index,codec_name"
|
||||
|
||||
FCA_TEMP-$(call ALLYES, RAWVIDEO_MUXER FILE_PROTOCOL) = $(FATE_COVER_ART-yes)
|
||||
FATE_COVER_ART = $(FCA_TEMP-yes)
|
||||
|
||||
$(FATE_COVER_ART): CMP = oneline
|
||||
|
||||
FATE_SAMPLES_AVCONV += $(FATE_COVER_ART)
|
||||
fate-cover-art: $(FATE_COVER_ART)
|
||||
FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_COVER_ART_REMUX-yes)
|
||||
fate-cover-art: $(FATE_COVER_ART) $(FATE_COVER_ART_REMUX-yes)
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
d4a9481090a8bab1a3f072a8108a1d6a *tests/data/fate/cover-art-aiff-id3v2-remux.aiff
|
||||
608914 tests/data/fate/cover-art-aiff-id3v2-remux.aiff
|
||||
#tb 0: 1/44100
|
||||
#media_type 0: audio
|
||||
#codec_id 0: pcm_s16be
|
||||
#sample_rate 0: 44100
|
||||
#channel_layout 0: 3
|
||||
#channel_layout_name 0: stereo
|
||||
#tb 1: 1/90000
|
||||
#media_type 1: video
|
||||
#codec_id 1: bmp
|
||||
#dimensions 1: 350x350
|
||||
#sar 1: 0/1
|
||||
#tb 2: 1/90000
|
||||
#media_type 2: video
|
||||
#codec_id 2: png
|
||||
#dimensions 2: 350x350
|
||||
#sar 2: 1/1
|
||||
#tb 3: 1/90000
|
||||
#media_type 3: video
|
||||
#codec_id 3: mjpeg
|
||||
#dimensions 3: 350x350
|
||||
#sar 3: 1/1
|
||||
#tb 4: 1/90000
|
||||
#media_type 4: video
|
||||
#codec_id 4: mjpeg
|
||||
#dimensions 4: 350x350
|
||||
#sar 4: 1/1
|
||||
0, 0, 0, 1024, 4096, 0xdac4695d
|
||||
1, 0, 0, 0, 368254, 0xfa7f4bd8
|
||||
2, 0, 0, 0, 184497, 0xc33f8d44
|
||||
3, 0, 0, 0, 19650, 0xd5662610
|
||||
4, 0, 0, 0, 19650, 0xd5662610
|
||||
0, 1024, 1024, 1024, 4096, 0xad05c909
|
||||
0, 2048, 2048, 1024, 4096, 0x97e3b8f8
|
||||
0, 3072, 3072, 1024, 4096, 0xb08180fa
|
||||
[STREAM]
|
||||
index=0
|
||||
codec_name=pcm_s16be
|
||||
DISPOSITION:attached_pic=0
|
||||
[/STREAM]
|
||||
[STREAM]
|
||||
index=1
|
||||
codec_name=bmp
|
||||
DISPOSITION:attached_pic=1
|
||||
TAG:title=third
|
||||
TAG:comment=Conductor
|
||||
[/STREAM]
|
||||
[STREAM]
|
||||
index=2
|
||||
codec_name=png
|
||||
DISPOSITION:attached_pic=1
|
||||
TAG:title=second
|
||||
TAG:comment=Illustration
|
||||
[/STREAM]
|
||||
[STREAM]
|
||||
index=3
|
||||
codec_name=mjpeg
|
||||
DISPOSITION:attached_pic=1
|
||||
TAG:title=fourth
|
||||
TAG:comment=Composer
|
||||
[/STREAM]
|
||||
[STREAM]
|
||||
index=4
|
||||
codec_name=mjpeg
|
||||
DISPOSITION:attached_pic=1
|
||||
TAG:title=first
|
||||
TAG:comment=Other
|
||||
[/STREAM]
|
||||
[FORMAT]
|
||||
TAG:artist=Мельница
|
||||
TAG:RATING=0
|
||||
TAG:album=Ангелофрения
|
||||
TAG:title=Дороги
|
||||
TAG:tracktotal=11
|
||||
TAG:totaltracks=11
|
||||
TAG:genre=Folk
|
||||
TAG:date=2012
|
||||
TAG:track=2
|
||||
TAG:unknown_key=unknown_value
|
||||
TAG:compilation=foo
|
||||
[/FORMAT]
|
|
@ -0,0 +1,55 @@
|
|||
c1b55a9a92226cd72d3f53ccd830d127 *tests/data/fate/cover-art-mp3-id3v2-remux.mp3
|
||||
399346 tests/data/fate/cover-art-mp3-id3v2-remux.mp3
|
||||
#tb 0: 1/14112000
|
||||
#media_type 0: audio
|
||||
#codec_id 0: mp3
|
||||
#sample_rate 0: 44100
|
||||
#channel_layout 0: 3
|
||||
#channel_layout_name 0: stereo
|
||||
#tb 1: 1/90000
|
||||
#media_type 1: video
|
||||
#codec_id 1: png
|
||||
#dimensions 1: 263x263
|
||||
#sar 1: 1/1
|
||||
#tb 2: 1/90000
|
||||
#media_type 2: video
|
||||
#codec_id 2: bmp
|
||||
#dimensions 2: 263x263
|
||||
#sar 2: 0/1
|
||||
#tb 3: 1/90000
|
||||
#media_type 3: video
|
||||
#codec_id 3: mjpeg
|
||||
#dimensions 3: 263x263
|
||||
#sar 3: 96/96
|
||||
0, -353590, -353590, 368640, 417, 0x15848290, S=1, 10, 0x034e0055
|
||||
1, 0, 0, 0, 165671, 0x7c1c8070
|
||||
2, 0, 0, 0, 208350, 0x291b44d1
|
||||
3, 0, 0, 0, 15760, 0x71d5c418
|
||||
0, 15050, 15050, 368640, 418, 0x46f684a4
|
||||
0, 383690, 383690, 368640, 418, 0x46f684a4
|
||||
0, 752330, 752330, 368640, 418, 0x46f684a4
|
||||
0, 1120970, 1120970, 368640, 418, 0x46f684a4
|
||||
[STREAM]
|
||||
index=0
|
||||
codec_name=mp3
|
||||
DISPOSITION:attached_pic=0
|
||||
TAG:encoder=Lavf
|
||||
[/STREAM]
|
||||
[STREAM]
|
||||
index=1
|
||||
codec_name=png
|
||||
DISPOSITION:attached_pic=1
|
||||
TAG:comment=Other
|
||||
[/STREAM]
|
||||
[STREAM]
|
||||
index=2
|
||||
codec_name=bmp
|
||||
DISPOSITION:attached_pic=1
|
||||
TAG:comment=Band/Orchestra
|
||||
[/STREAM]
|
||||
[STREAM]
|
||||
index=3
|
||||
codec_name=mjpeg
|
||||
DISPOSITION:attached_pic=1
|
||||
TAG:comment=Other
|
||||
[/STREAM]
|
Loading…
Reference in New Issue