You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	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:
		| @@ -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) | ||||
|   | ||||
							
								
								
									
										82
									
								
								tests/ref/fate/cover-art-aiff-id3v2-remux
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								tests/ref/fate/cover-art-aiff-id3v2-remux
									
									
									
									
									
										Normal file
									
								
							| @@ -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] | ||||
							
								
								
									
										55
									
								
								tests/ref/fate/cover-art-mp3-id3v2-remux
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								tests/ref/fate/cover-art-mp3-id3v2-remux
									
									
									
									
									
										Normal file
									
								
							| @@ -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] | ||||
		Reference in New Issue
	
	Block a user