[FFmpeg-devel] [PATCH] fate: Add EXIF test.

Thilo Borgmann thilo.borgmann at mail.de
Mon Aug 19 14:47:10 CEST 2013


Hi,

this adds tests for EXIF in TIFF, JPEG and JPEG embedded in MP3.

The three new samples are here:
http://tinyurl.com/mwgrthp
http://tinyurl.com/k3hd8wb
http://tinyurl.com/l83y2ar

-Thilo


The following changes since commit 76d8d2388120910b46225299b3e10fb4dd18287f:

  Revert "doc/RELEASE_NOTES: add a note about AVISynth" (2013-08-19 12:39:28 +0200)

are available in the git repository at:

  git at github.com:thiloborgmann/FFmpeg.git
for you to fetch changes up to ea862e149e5429de1305c04491e64f4ef71fc18c:

  fate: Add EXIF test. (2013-08-19 14:45:19 +0200)

----------------------------------------------------------------
Thilo Borgmann (1):
      fate: Add EXIF test.

 tests/Makefile                     |   1 +
 tests/fate-run.sh                  |   4 +
 tests/fate/exif.mak                |  14 ++
 tests/ref/fate/exif-image-embedded | 360 +++++++++++++++++++++++++++++++++++++
 tests/ref/fate/exif-image-jpg      |  66 +++++++
 tests/ref/fate/exif-image-tiff     |  25 +++
 6 files changed, 470 insertions(+)
 create mode 100644 tests/fate/exif.mak
 create mode 100644 tests/ref/fate/exif-image-embedded
 create mode 100644 tests/ref/fate/exif-image-jpg
 create mode 100644 tests/ref/fate/exif-image-tiff

diff --git a/tests/Makefile b/tests/Makefile
index 914448e..61423f4 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -93,6 +93,7 @@ include $(SRC_PATH)/tests/fate/demux.mak
 include $(SRC_PATH)/tests/fate/dfa.mak
 include $(SRC_PATH)/tests/fate/dpcm.mak
 include $(SRC_PATH)/tests/fate/ea.mak
+include $(SRC_PATH)/tests/fate/exif.mak
 include $(SRC_PATH)/tests/fate/ffmpeg.mak
 include $(SRC_PATH)/tests/fate/ffprobe.mak
 include $(SRC_PATH)/tests/fate/filter-audio.mak
diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index 9f5690d..52ddc22 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -75,6 +75,10 @@ probefmt(){
     run ffprobe -show_entries format=format_name -print_format
default=nw=1:nk=1 -v 0 "$@"
 }
 +probeframes(){
+    run ffprobe -show_frames -v 0 "$@"
+}
+
 ffmpeg(){
     dec_opts="-threads $threads -thread_type $thread_type"
     ffmpeg_args="-nostats -cpuflags $cpuflags"
diff --git a/tests/fate/exif.mak b/tests/fate/exif.mak
new file mode 100644
index 0000000..31b29a0
--- /dev/null
+++ b/tests/fate/exif.mak
@@ -0,0 +1,14 @@
+# test exif metadata in TIFF images
+FATE_SAMPLES_EXIF-$(call DEMDEC, IMAGE2, TIFF) += fate-exif-image-tiff
+fate-exif-image-tiff: CMD = probeframes $(TARGET_SAMPLES)/exif/image_small.tiff
+
+# test exif metadata in JPG images
+FATE_SAMPLES_EXIF-$(call DEMDEC, IMAGE2, MJPEG) += fate-exif-image-jpg
+fate-exif-image-jpg: CMD = probeframes $(TARGET_SAMPLES)/exif/image_small.jpg
+
+# test exif metadata in MP3 with embedded JPEG images
+FATE_SAMPLES_EXIF-$(call DEMDEC, IMAGE2, MJPEG) += fate-exif-image-embedded
+fate-exif-image-embedded: CMD = probeframes
$(TARGET_SAMPLES)/exif/embedded_small.mp3
+
+# add all -yes targets to the tested targets
+FATE_SAMPLES_FFMPEG += $(FATE_SAMPLES_EXIF-yes)
diff --git a/tests/ref/fate/exif-image-embedded b/tests/ref/fate/exif-image-embedded
new file mode 100644
index 0000000..4109c15
--- /dev/null
+++ b/tests/ref/fate/exif-image-embedded
@@ -0,0 +1,360 @@
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=N/A
+pkt_pts_time=N/A
+pkt_dts=N/A
+pkt_dts_time=N/A
+pkt_duration=N/A
+pkt_duration_time=N/A
+pkt_pos=N/A
+pkt_size=15760
+width=263
+height=263
+pix_fmt=yuvj420p
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+TAG:UserComment=AppleMark
+
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=353600
+pkt_pts_time=0.025057
+pkt_dts=353600
+pkt_dts_time=0.025057
+pkt_duration=15040
+pkt_duration_time=0.001066
+pkt_pos=16292
+pkt_size=417
+sample_fmt=s16p
+nb_samples=47
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=368640
+pkt_pts_time=0.026122
+pkt_dts=368640
+pkt_dts_time=0.026122
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=16709
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=737280
+pkt_pts_time=0.052245
+pkt_dts=737280
+pkt_dts_time=0.052245
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=17127
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=1105920
+pkt_pts_time=0.078367
+pkt_dts=1105920
+pkt_dts_time=0.078367
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=17545
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=1474560
+pkt_pts_time=0.104490
+pkt_dts=1474560
+pkt_dts_time=0.104490
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=17963
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=1843200
+pkt_pts_time=0.130612
+pkt_dts=1843200
+pkt_dts_time=0.130612
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=18381
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=2211840
+pkt_pts_time=0.156735
+pkt_dts=2211840
+pkt_dts_time=0.156735
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=18799
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=2580480
+pkt_pts_time=0.182857
+pkt_dts=2580480
+pkt_dts_time=0.182857
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=19217
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=2949120
+pkt_pts_time=0.208980
+pkt_dts=2949120
+pkt_dts_time=0.208980
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=19635
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=3317760
+pkt_pts_time=0.235102
+pkt_dts=3317760
+pkt_dts_time=0.235102
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=20053
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=3686400
+pkt_pts_time=0.261224
+pkt_dts=3686400
+pkt_dts_time=0.261224
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=20471
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=4055040
+pkt_pts_time=0.287347
+pkt_dts=4055040
+pkt_dts_time=0.287347
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=20889
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=4423680
+pkt_pts_time=0.313469
+pkt_dts=4423680
+pkt_dts_time=0.313469
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=21307
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=4792320
+pkt_pts_time=0.339592
+pkt_dts=4792320
+pkt_dts_time=0.339592
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=21725
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=5160960
+pkt_pts_time=0.365714
+pkt_dts=5160960
+pkt_dts_time=0.365714
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=22143
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=5529600
+pkt_pts_time=0.391837
+pkt_dts=5529600
+pkt_dts_time=0.391837
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=22561
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=5898240
+pkt_pts_time=0.417959
+pkt_dts=5898240
+pkt_dts_time=0.417959
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=22979
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=6266880
+pkt_pts_time=0.444082
+pkt_dts=6266880
+pkt_dts_time=0.444082
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=23397
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=6635520
+pkt_pts_time=0.470204
+pkt_dts=6635520
+pkt_dts_time=0.470204
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=23815
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=7004160
+pkt_pts_time=0.496327
+pkt_dts=7004160
+pkt_dts_time=0.496327
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=24233
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
+[FRAME]
+media_type=audio
+key_frame=1
+pkt_pts=7372800
+pkt_pts_time=0.522449
+pkt_dts=7372800
+pkt_dts_time=0.522449
+pkt_duration=368640
+pkt_duration_time=0.026122
+pkt_pos=24651
+pkt_size=418
+sample_fmt=s16p
+nb_samples=1152
+channels=2
+channel_layout=stereo
+[/FRAME]
diff --git a/tests/ref/fate/exif-image-jpg b/tests/ref/fate/exif-image-jpg
new file mode 100644
index 0000000..5695bb6
--- /dev/null
+++ b/tests/ref/fate/exif-image-jpg
@@ -0,0 +1,66 @@
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=N/A
+pkt_size=46095
+width=400
+height=225
+pix_fmt=yuvj422p
+sample_aspect_ratio=1:1
+pict_type=I
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+TAG:ImageDescription=                               +TAG:Make=Canon
+TAG:Model=Canon PowerShot SX200 IS
+TAG:Orientation=1
+TAG:XResolution=180:1
+TAG:YResolution=180:1
+TAG:ResolutionUnit=2
+TAG:DateTime=2013:07:18 13:12:03
+TAG:YCbCrPositioning=2
+TAG:ExposureTime=1:1250
+TAG:FNumber=40:10
+TAG:ISOSpeedRatings=160
+TAG:ExifVersion=0221
+TAG:DateTimeOriginal=2013:07:18 13:12:03
+TAG:DateTimeDigitized=2013:07:18 13:12:03
+TAG:ComponentsConfiguration=
+TAG:CompressedBitsPerPixel=3:1
+TAG:ShutterSpeedValue=329:32
+TAG:ApertureValue=128:32
+TAG:ExposureBiasValue=0:3
+TAG:MaxApertureValue=113:32
+TAG:MeteringMode=5
+TAG:Flash=16
+TAG:FocalLength=5000:1000
+TAG:MakerNote=
+TAG:UserComment=
+TAG:FlashpixVersion=0100
+TAG:ColorSpace=1
+TAG:PixelXDimension=4000
+TAG:PixelYDimension=2248
+TAG:GPSLatitudeRef=R98
+TAG:GPSLatitude=0100
+TAG:0x1001=4000
+TAG:0x1002=2248
+TAG:FocalPlaneXResolution=4000000:244
+TAG:FocalPlaneYResolution=2248000:183
+TAG:FocalPlaneResolutionUnit=2
+TAG:SensingMethod=2
+TAG:FileSource=
+TAG:CustomRendered=0
+TAG:ExposureMode=0
+TAG:WhiteBalance=0
+TAG:DigitalZoomRatio=4000:4000
+TAG:SceneCaptureType=0
+[/FRAME]
diff --git a/tests/ref/fate/exif-image-tiff b/tests/ref/fate/exif-image-tiff
new file mode 100644
index 0000000..ddd85e5
--- /dev/null
+++ b/tests/ref/fate/exif-image-tiff
@@ -0,0 +1,25 @@
+[FRAME]
+media_type=video
+key_frame=1
+pkt_pts=0
+pkt_pts_time=0.000000
+pkt_dts=0
+pkt_dts_time=0.000000
+pkt_duration=1
+pkt_duration_time=0.040000
+pkt_pos=N/A
+pkt_size=67604
+width=200
+height=112
+pix_fmt=rgb24
+sample_aspect_ratio=N/A
+pict_type=?
+coded_picture_number=0
+display_picture_number=0
+interlaced_frame=0
+top_field_first=0
+repeat_pict=0
+TAG:document_name=image_small.tiff
+TAG:page_number=0 / 1
+TAG:software=ImageMagick 6.5.8-0 2010-02-09 Q16 http://www.imagemagick.org
+[/FRAME]


More information about the ffmpeg-devel mailing list