├── tests ├── data │ ├── test025.result │ ├── test056.result │ ├── test057.result │ ├── test090.result │ ├── test105.result │ ├── test106.result │ ├── test107.result │ ├── test108.result │ ├── test130.result │ ├── test131.result │ ├── test132.result │ ├── test133.result │ ├── test135.result │ ├── test136.result │ ├── test137.result │ ├── test138.result │ ├── test182.result │ ├── test183.result │ ├── test184.result │ ├── test002.result │ ├── test007.result │ ├── test052.result │ ├── test055.result │ ├── test198.result │ ├── test006.result │ ├── test008.result │ ├── test081.result │ ├── test114.result │ ├── test120.result │ ├── test085.result │ ├── test077.result │ ├── test080.result │ ├── test084.result │ ├── test086.result │ ├── test087.result │ ├── test116.result │ ├── test001.result │ ├── test009.result │ ├── test083.result │ ├── test091.result │ ├── test147.result │ ├── test148.result │ ├── test157.result │ ├── test158.result │ ├── test061.result │ ├── test127.result │ ├── test058.result │ ├── test019.result │ ├── test050.result │ ├── test067.result │ ├── test097.result │ ├── test024.result │ ├── test113.param │ ├── test018.result │ ├── test059.result │ ├── test063.result │ ├── test126.result │ ├── test005.result │ ├── test086.param │ ├── test076.result │ ├── test078.result │ ├── test087.param │ ├── test092.result │ ├── test084.param │ ├── test116.param │ ├── test009.param │ ├── test050.param │ ├── test114.param │ ├── test085.param │ ├── test080.param │ ├── test115.result │ ├── test081.param │ ├── test049.param │ ├── test052.param │ ├── test051.result │ ├── test001.param │ ├── test002.param │ ├── test091.param │ ├── test198.param │ ├── test003.param │ ├── test004.param │ ├── test055.param │ ├── test120.param │ ├── test019.param │ ├── test060.result │ ├── test075.result │ ├── test117.result │ ├── test199.param │ ├── test018.param │ ├── test115.param │ ├── test025.param │ ├── test026.param │ ├── test028.param │ ├── test126.param │ ├── test010.param │ ├── test027.param │ ├── test059.param │ ├── test083.param │ ├── test106.param │ ├── test108.param │ ├── test011.param │ ├── test020.param │ ├── test006.param │ ├── test046.param │ ├── test148.param │ ├── test157.param │ ├── test007.param │ ├── test021.param │ ├── test147.param │ ├── test158.param │ ├── test121.param │ ├── test123.param │ ├── test127.param │ ├── test047.param │ ├── test058.param │ ├── test008.param │ ├── test056.param │ ├── test057.param │ ├── test016.param │ ├── test017.param │ ├── test014.param │ ├── test015.param │ ├── test029.param │ ├── test093.param │ ├── test097.param │ ├── test117.param │ ├── test133.param │ ├── test182.param │ ├── test183.param │ ├── test012.param │ ├── test068.param │ ├── test094.param │ ├── test107.param │ ├── test174.param │ ├── test187.result │ ├── test031.param │ ├── test048.param │ ├── test062.param │ ├── test074.param │ ├── test105.param │ ├── test130.param │ ├── test131.param │ ├── test132.param │ ├── test189.param │ ├── test088.param │ ├── test095.param │ ├── test023.param │ ├── test030.param │ ├── test076.param │ ├── test109.param │ ├── test119.param │ ├── test137.param │ ├── test200.param │ ├── test032.result │ ├── test089.param │ ├── test096.param │ ├── test110.param │ ├── test135.param │ ├── test136.param │ ├── test184.param │ ├── test201.param │ ├── test034.param │ ├── test069.param │ ├── test073.param │ ├── test118.param │ ├── test138.param │ ├── test141.param │ ├── test036.param │ ├── test070.param │ ├── test092.param │ ├── test151.param │ ├── test071.param │ ├── test124.param │ ├── test142.param │ ├── test013.param │ ├── test041.param │ ├── test152.param │ ├── test173.param │ ├── test175.param │ ├── test128.result │ ├── test144.param │ ├── test145.param │ ├── test180.param │ ├── test140.param │ ├── test143.param │ ├── test154.param │ ├── test169.param │ ├── test035.param │ ├── test149.param │ ├── test150.param │ ├── test153.param │ ├── test155.param │ ├── test161.param │ ├── test167.param │ ├── test168.param │ ├── test170.param │ ├── test185.param │ ├── test188.param │ ├── test159.param │ ├── test033.param │ ├── test037.param │ ├── test072.param │ ├── test078.param │ ├── test128.param │ ├── test162.param │ ├── test199.result │ ├── test202.param │ ├── test203.param │ ├── test067.param │ ├── test090.param │ ├── test160.param │ ├── test163.param │ ├── test164.param │ ├── test165.param │ ├── test186.param │ ├── test194.param │ ├── test146.param │ ├── test010.result │ ├── test011.result │ ├── test020.result │ ├── test021.result │ ├── test023.result │ ├── test026.result │ ├── test027.result │ ├── test028.result │ ├── test031.result │ ├── test034.result │ ├── test046.result │ ├── test047.result │ ├── test049.result │ ├── test064.param │ ├── test066.param │ ├── test098.param │ ├── test099.param │ ├── test180.result │ ├── test065.param │ ├── test156.param │ ├── test053.result │ ├── test171.param │ ├── test125.param │ ├── test134.param │ ├── test022.result │ ├── test051.param │ ├── test166.param │ ├── test075.param │ ├── test101.param │ ├── test102.param │ ├── test103.param │ ├── test079.param │ ├── test104.param │ ├── test082.param │ ├── test122.param │ ├── test172.param │ ├── test032.param │ ├── test187.param │ ├── test179.param │ ├── test181.param │ ├── test045.param │ ├── test197.result │ ├── test177.param │ ├── test178.param │ ├── test043.param │ ├── test176.param │ ├── test044.param │ ├── test063.param │ ├── test042.param │ ├── test124.result │ ├── test125.result │ ├── test005.param │ ├── test192.param │ ├── test193.param │ ├── test191.param │ ├── test038.param │ ├── test039.param │ ├── test040.param │ ├── test129.param │ ├── test190.param │ ├── test024.param │ ├── test122.result │ ├── test123.result │ ├── test100.param │ ├── test129.result │ ├── test139.param │ ├── test111.param │ ├── test112.param │ ├── test195.param │ ├── test196.param │ ├── test197.param │ ├── test054.result │ ├── test121.result │ ├── test194.result │ ├── test053.param │ ├── test195.result │ ├── test077.param │ ├── test054.param │ ├── test017.result │ ├── test089.result │ ├── test061.param │ ├── test022.param │ ├── test060.param │ ├── test015.result │ ├── test109.result │ ├── test082.result │ ├── test079.result │ ├── test110.result │ ├── test099.result │ ├── test100.result │ ├── test104.result │ ├── test113.result │ ├── test103.result │ ├── test044.result │ ├── test048.result │ ├── test062.result │ ├── test069.result │ └── test073.result └── staging │ ├── baddate.jpg │ ├── badexif.jpg │ ├── noelev.jpg │ ├── noexif.jpg │ ├── noloc.jpg │ ├── notime.jpg │ ├── withgps.jpg │ ├── withtz.jpg │ ├── baddate2.jpg │ ├── point1-1.jpg │ ├── point1-2.jpg │ ├── point1-3.jpg │ ├── point1-4.jpg │ ├── point1-5.jpg │ ├── point1-6.jpg │ ├── point1-7.jpg │ ├── point1-8.jpg │ ├── point2-1.jpg │ ├── point2-2.jpg │ ├── point3-1.jpg │ ├── point4-1.jpg │ ├── point5-1.jpg │ ├── point6-1.jpg │ ├── point7-1.jpg │ ├── notracks.gpx │ ├── dummy.xhtml │ ├── noelevations.gpx │ ├── track6.gpx │ ├── nosegments.gpx │ ├── nopoints.gpx │ ├── track11.gpx │ ├── notimeele.gpx │ ├── notimes.gpx │ ├── track9.gpx │ ├── track2.gpx │ ├── track1.gpx │ ├── track13.gpx │ ├── timeback.gpx │ ├── track3.gpx │ ├── track17.gpx │ ├── track5.gpx │ ├── track15.gpx │ ├── track16.gpx │ ├── track14.gpx │ └── track8.gpx ├── doc ├── corr.png └── fr │ └── corr.png ├── po ├── POTFILES.in ├── remove-potcdate.sin └── Makevars ├── AUTHORS.extra ├── gpscorrelate.desktop ├── README.mingw32 ├── gui.h ├── gpx-read.h ├── latlong.h ├── .github └── workflows │ └── codeql.yml ├── unixtime.h ├── i18n.h ├── gpsstructure.h ├── exif-gps.h └── main-gui.c /tests/data/test025.result: -------------------------------------------------------------------------------- 1 | Invalid GPX file. 2 | -------------------------------------------------------------------------------- /tests/data/test056.result: -------------------------------------------------------------------------------- 1 | test.jpg: No GPS data. 2 | -------------------------------------------------------------------------------- /tests/data/test057.result: -------------------------------------------------------------------------------- 1 | test.jpg: No EXIF data. 2 | -------------------------------------------------------------------------------- /tests/data/test090.result: -------------------------------------------------------------------------------- 1 | test.jpg: No GPS data. 2 | -------------------------------------------------------------------------------- /tests/data/test105.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test106.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test107.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test108.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test130.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test131.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test132.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test133.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test135.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test136.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test137.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test138.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test182.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test183.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test184.result: -------------------------------------------------------------------------------- 1 | Error parsing location. 2 | -------------------------------------------------------------------------------- /tests/data/test002.result: -------------------------------------------------------------------------------- 1 | noexif.jpg: No EXIF data. 2 | -------------------------------------------------------------------------------- /tests/data/test007.result: -------------------------------------------------------------------------------- 1 | test.jpg: Removed GPS tags. 2 | -------------------------------------------------------------------------------- /tests/data/test052.result: -------------------------------------------------------------------------------- 1 | dummy.xhtml: No EXIF data. 2 | -------------------------------------------------------------------------------- /tests/data/test055.result: -------------------------------------------------------------------------------- 1 | notime.jpg: No EXIF data. 2 | -------------------------------------------------------------------------------- /tests/data/test198.result: -------------------------------------------------------------------------------- 1 | badexif.jpg: No EXIF data. 2 | -------------------------------------------------------------------------------- /tests/data/test006.result: -------------------------------------------------------------------------------- 1 | test.jpg: Tag removal failure. 2 | -------------------------------------------------------------------------------- /tests/data/test008.result: -------------------------------------------------------------------------------- 1 | test.jpg: Tag removal failure. 2 | -------------------------------------------------------------------------------- /tests/data/test081.result: -------------------------------------------------------------------------------- 1 | does-not-exist: No EXIF data. 2 | -------------------------------------------------------------------------------- /tests/data/test114.result: -------------------------------------------------------------------------------- 1 | does-not-exist: No EXIF data. 2 | -------------------------------------------------------------------------------- /tests/data/test120.result: -------------------------------------------------------------------------------- 1 | dummy.xhtml: Tag removal failure. 2 | -------------------------------------------------------------------------------- /tests/data/test085.result: -------------------------------------------------------------------------------- 1 | does-not-exist: Tag removal failure. 2 | -------------------------------------------------------------------------------- /tests/data/test077.result: -------------------------------------------------------------------------------- 1 | gpscorrelate: option not-a-supported-option 2 | -------------------------------------------------------------------------------- /tests/data/test080.result: -------------------------------------------------------------------------------- 1 | At least one image file name must be given. 2 | -------------------------------------------------------------------------------- /tests/data/test084.result: -------------------------------------------------------------------------------- 1 | At least one image file name must be given. 2 | -------------------------------------------------------------------------------- /tests/data/test086.result: -------------------------------------------------------------------------------- 1 | At least one image file name must be given. 2 | -------------------------------------------------------------------------------- /tests/data/test087.result: -------------------------------------------------------------------------------- 1 | At least one image file name must be given. 2 | -------------------------------------------------------------------------------- /tests/data/test116.result: -------------------------------------------------------------------------------- 1 | At least one image file name must be given. 2 | -------------------------------------------------------------------------------- /tests/data/test001.result: -------------------------------------------------------------------------------- 1 | point1-1.jpg: 2012:11:22 12:34:56, No GPS Data. 2 | -------------------------------------------------------------------------------- /tests/data/test009.result: -------------------------------------------------------------------------------- 1 | Cannot continue since no GPS data is available. 2 | -------------------------------------------------------------------------------- /tests/data/test083.result: -------------------------------------------------------------------------------- 1 | baddate2.jpg: 2012:11:21 23:35:00, No GPS Data. 2 | -------------------------------------------------------------------------------- /tests/data/test091.result: -------------------------------------------------------------------------------- 1 | noloc.jpg: 2012:11:22 12:34:56, No GPS Data. 2 | -------------------------------------------------------------------------------- /tests/data/test147.result: -------------------------------------------------------------------------------- 1 | The --max-heading value must be between 0..179 2 | -------------------------------------------------------------------------------- /tests/data/test148.result: -------------------------------------------------------------------------------- 1 | The --max-heading value must be between 0..179 2 | -------------------------------------------------------------------------------- /tests/data/test157.result: -------------------------------------------------------------------------------- 1 | The --direction value must be between -359..359 2 | -------------------------------------------------------------------------------- /tests/data/test158.result: -------------------------------------------------------------------------------- 1 | The --direction value must be between -359..359 2 | -------------------------------------------------------------------------------- /doc/corr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/doc/corr.png -------------------------------------------------------------------------------- /doc/fr/corr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/doc/fr/corr.png -------------------------------------------------------------------------------- /tests/data/test061.result: -------------------------------------------------------------------------------- 1 | test.jpg: Removed GPS tags. 2 | ztest.jpg 3 | test.jpg 4 | -------------------------------------------------------------------------------- /tests/data/test127.result: -------------------------------------------------------------------------------- 1 | "noelev.jpg","2012:11:22 12:40:00",37.420418,-122.084027, 2 | -------------------------------------------------------------------------------- /tests/data/test058.result: -------------------------------------------------------------------------------- 1 | A time offset must be given with the -z option to fix photos. 2 | -------------------------------------------------------------------------------- /tests/data/test019.result: -------------------------------------------------------------------------------- 1 | "withgps.jpg","2012:11:22 12:34:56",37.420418,-122.084027,10.000 2 | -------------------------------------------------------------------------------- /tests/data/test050.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data...At least one image file name must be given. 2 | 3 | -------------------------------------------------------------------------------- /tests/data/test067.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Reading GPS Data...Invalid GPX file. 3 | 4 | -------------------------------------------------------------------------------- /tests/data/test097.result: -------------------------------------------------------------------------------- 1 | "test"""".jpg","2012:11:22 12:34:56",37.420418,-122.084027,10.000 2 | -------------------------------------------------------------------------------- /tests/data/test024.result: -------------------------------------------------------------------------------- 1 | nul:1: parser error : Document is empty 2 | Failed to parse GPX data from nul. 3 | -------------------------------------------------------------------------------- /tests/data/test113.param: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/data/test113.param -------------------------------------------------------------------------------- /tests/staging/baddate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/baddate.jpg -------------------------------------------------------------------------------- /tests/staging/badexif.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/badexif.jpg -------------------------------------------------------------------------------- /tests/staging/noelev.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/noelev.jpg -------------------------------------------------------------------------------- /tests/staging/noexif.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/noexif.jpg -------------------------------------------------------------------------------- /tests/staging/noloc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/noloc.jpg -------------------------------------------------------------------------------- /tests/staging/notime.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/notime.jpg -------------------------------------------------------------------------------- /tests/staging/withgps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/withgps.jpg -------------------------------------------------------------------------------- /tests/staging/withtz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/withtz.jpg -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | gpx-read.c 2 | gui.c 3 | main-command.c 4 | io.github.dfandrich.gpscorrelate.metainfo.xml.in 5 | -------------------------------------------------------------------------------- /tests/staging/baddate2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/baddate2.jpg -------------------------------------------------------------------------------- /tests/staging/point1-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-1.jpg -------------------------------------------------------------------------------- /tests/staging/point1-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-2.jpg -------------------------------------------------------------------------------- /tests/staging/point1-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-3.jpg -------------------------------------------------------------------------------- /tests/staging/point1-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-4.jpg -------------------------------------------------------------------------------- /tests/staging/point1-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-5.jpg -------------------------------------------------------------------------------- /tests/staging/point1-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-6.jpg -------------------------------------------------------------------------------- /tests/staging/point1-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-7.jpg -------------------------------------------------------------------------------- /tests/staging/point1-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point1-8.jpg -------------------------------------------------------------------------------- /tests/staging/point2-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point2-1.jpg -------------------------------------------------------------------------------- /tests/staging/point2-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point2-2.jpg -------------------------------------------------------------------------------- /tests/staging/point3-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point3-1.jpg -------------------------------------------------------------------------------- /tests/staging/point4-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point4-1.jpg -------------------------------------------------------------------------------- /tests/staging/point5-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point5-1.jpg -------------------------------------------------------------------------------- /tests/staging/point6-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point6-1.jpg -------------------------------------------------------------------------------- /tests/staging/point7-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dfandrich/gpscorrelate/HEAD/tests/staging/point7-1.jpg -------------------------------------------------------------------------------- /tests/data/test018.result: -------------------------------------------------------------------------------- 1 | withgps.jpg: 2012:11:22 12:34:56, Lat 37.420418, Long -122.084027, Elevation 10.000. 2 | -------------------------------------------------------------------------------- /tests/data/test059.result: -------------------------------------------------------------------------------- 1 | point1-3.jpg: 2012:11:22 12:34:56, Lat 31.458741, Long 35.399847, Elevation -422.243. 2 | -------------------------------------------------------------------------------- /tests/data/test063.result: -------------------------------------------------------------------------------- 1 | test.jpg: 2001:11:04 16:52:58, Lat -19.671283, Long -174.289461, Elevation (unknown). 2 | -------------------------------------------------------------------------------- /tests/data/test126.result: -------------------------------------------------------------------------------- 1 | noelev.jpg: 2012:11:22 12:40:00, Lat 37.420418, Long -122.084027, Elevation (unknown). 2 | -------------------------------------------------------------------------------- /tests/data/test005.result: -------------------------------------------------------------------------------- 1 | I/O warning : failed to load "does-not-exist" 2 | Failed to parse GPX data from does-not-exist. 3 | -------------------------------------------------------------------------------- /tests/data/test086.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS tags with missing file' 2 | COMMAND='$PROGRAM --show > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test076.result: -------------------------------------------------------------------------------- 1 | -h, --help Display this help message 2 | -V, --version Display version information 3 | -------------------------------------------------------------------------------- /tests/data/test078.result: -------------------------------------------------------------------------------- 1 | -h, --help Display this help message 2 | -V, --version Display version information 3 | -------------------------------------------------------------------------------- /tests/data/test087.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS tags with file not provided' 2 | COMMAND='$PROGRAM -s > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test092.result: -------------------------------------------------------------------------------- 1 | -h, --help Display this help message 2 | -V, --version Display version information 3 | -------------------------------------------------------------------------------- /tests/data/test084.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags with file not provided' 2 | COMMAND='$PROGRAM --remove > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test116.param: -------------------------------------------------------------------------------- 1 | TITLE='Show machine-readable GPS tags with missing file' 2 | COMMAND='$PROGRAM -o > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test009.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate missing -g option' 2 | COMMAND='$PROGRAM "$STAGINGDIR/point1-1.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test050.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate missing image file' 2 | COMMAND='$PROGRAM -g "$STAGINGDIR/track1.gpx" > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test114.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data with nonexistent file' 2 | COMMAND='$PROGRAM --show does-not-exist > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test085.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags with nonexistent file' 2 | COMMAND='$PROGRAM --remove does-not-exist > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test080.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --fix-datestamps with no file provided' 2 | COMMAND='$PROGRAM --fix-datestamps -z 0 > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test115.result: -------------------------------------------------------------------------------- 1 | "withgps.jpg","2012:11:22 12:34:56",37.420418,-122.084027,10.000 2 | "withgps.jpg","2012:11:22 12:34:56",37.420418,-122.084027,10.000 3 | -------------------------------------------------------------------------------- /tests/data/test081.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --fix-datestamps with nonexistent file' 2 | COMMAND='$PROGRAM --fix-datestamps -z 0 does-not-exist > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | -------------------------------------------------------------------------------- /tests/data/test049.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a non-JPEG file' 2 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track1.gpx" "$STAGINGDIR/dummy.xhtml" > "$OUTFILE" 2>&1' 3 | RESULTCODE=2 4 | -------------------------------------------------------------------------------- /tests/data/test052.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on non-JPEG file' 2 | COMMAND='$PROGRAM -s "$STAGINGDIR/dummy.xhtml" > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | SEDCOMMAND='s@^.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test051.result: -------------------------------------------------------------------------------- 1 | test.jpg: Wrong timestamp: 2 | Photo: Thu Nov 22 06:35:00 2012 UTC 3 | GPS: Sat Dec 22 05:35:00 2012 UTC 4 | Corrected: Thu Nov 22 06:35:00 2012 UTC 5 | -------------------------------------------------------------------------------- /tests/data/test001.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file without GPS tags' 2 | COMMAND='$PROGRAM -s "$STAGINGDIR/point1-1.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | SEDCOMMAND='s@^.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test002.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file without EXIF tags' 2 | COMMAND='$PROGRAM -s "$STAGINGDIR/noexif.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | SEDCOMMAND='s@^.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test091.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file without GPS tags' 2 | COMMAND='$PROGRAM -s "$STAGINGDIR/noloc.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | SEDCOMMAND='s@^.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test198.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file with corrupt EXIF' 2 | COMMAND='$PROGRAM -s "$STAGINGDIR/badexif.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | SEDCOMMAND='s@^.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test003.param: -------------------------------------------------------------------------------- 1 | TITLE='Show machine-readable GPS data on file without GPS tags' 2 | COMMAND='$PROGRAM -o "$STAGINGDIR/point1-1.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | RESULTFILE=/dev/null 5 | -------------------------------------------------------------------------------- /tests/data/test004.param: -------------------------------------------------------------------------------- 1 | TITLE='Show machine-readable GPS data on file without EXIF tags' 2 | COMMAND='$PROGRAM -o "$STAGINGDIR/noexif.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | RESULTFILE=/dev/null 5 | -------------------------------------------------------------------------------- /tests/data/test055.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file without a proper date tag' 2 | COMMAND='$PROGRAM -s "$STAGINGDIR/notime.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | SEDCOMMAND='s@^.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test120.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags from an invalid GPX file' 2 | COMMAND='$PROGRAM --remove "$STAGINGDIR/dummy.xhtml" > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | SEDCOMMAND='1s@^.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test019.param: -------------------------------------------------------------------------------- 1 | TITLE='Show machine-readable GPS data on file' 2 | COMMAND='$PROGRAM --machine "$STAGINGDIR/withgps.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | SEDCOMMAND='s@([a-zA-Z]:)?/.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test060.result: -------------------------------------------------------------------------------- 1 | test.jpg: Wrong timestamp: 2 | Photo: Thu Nov 22 06:35:00 2012 UTC 3 | GPS: Sat Dec 22 05:35:00 2012 UTC 4 | Corrected: Thu Nov 22 06:35:00 2012 UTC 5 | ztest.jpg 6 | test.jpg 7 | -------------------------------------------------------------------------------- /tests/data/test075.result: -------------------------------------------------------------------------------- 1 | gpscorrelate Copyright (C) 2005- Daniel 2 | This is free software; see the source for copying conditions. There is NO 3 | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 4 | -------------------------------------------------------------------------------- /tests/data/test117.result: -------------------------------------------------------------------------------- 1 | withgps.jpg: 2012:11:22 12:34:56, Lat 37.420418, Long -122.084027, Elevation 10.000. 2 | does-not-exist: No EXIF data. 3 | withgps.jpg: 2012:11:22 12:34:56, Lat 37.420418, Long -122.084027, Elevation 10.000. 4 | -------------------------------------------------------------------------------- /tests/data/test199.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with corrupted EXIF with --replace' 2 | PRECOMMAND='cat "$STAGINGDIR/badexif.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -l "1 2" -R "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=2 5 | -------------------------------------------------------------------------------- /tests/data/test018.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file' 2 | # Run in C locale to avoid errors when comparing numbers in output 3 | COMMAND='env LC_NUMERIC=C $PROGRAM -s "$STAGINGDIR/withgps.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=0 5 | SEDCOMMAND='s@^.*/@@' # strip path 6 | -------------------------------------------------------------------------------- /tests/data/test115.param: -------------------------------------------------------------------------------- 1 | TITLE='Show machine-readable GPS data with existing and nonexistent files' 2 | COMMAND='$PROGRAM -o "$STAGINGDIR/withgps.jpg" does-not-exist "$STAGINGDIR/withgps.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | SEDCOMMAND='s@([a-zA-Z]:)?/.*/@@' # strip path 5 | -------------------------------------------------------------------------------- /tests/data/test025.param: -------------------------------------------------------------------------------- 1 | TITLE='Read an invalid GPX file (XML)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -g "$STAGINGDIR/dummy.xhtml" "$LOGDIR/test.jpg" 2> "$OUTFILE" > /dev/null' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test026.param: -------------------------------------------------------------------------------- 1 | TITLE='Read a GPX file with no points' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/nopoints.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test028.param: -------------------------------------------------------------------------------- 1 | TITLE='Read a GPX file with no tracks' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/notracks.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test126.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file with no elevation' 2 | # Run in C locale to avoid errors when comparing numbers in output 3 | COMMAND='env LC_NUMERIC=C $PROGRAM -s "$STAGINGDIR/noelev.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=0 5 | SEDCOMMAND='s@^.*/@@' # strip path 6 | -------------------------------------------------------------------------------- /tests/data/test010.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file without a proper date tag' 2 | PRECOMMAND='cat "$STAGINGDIR/notime.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test027.param: -------------------------------------------------------------------------------- 1 | TITLE='Read a GPX file with no segments' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/nosegments.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test059.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file with negative elevation' 2 | # Run in C locale to avoid errors when comparing numbers in output 3 | COMMAND='env LC_NUMERIC=C $PROGRAM -s "$STAGINGDIR/point1-3.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=0 5 | SEDCOMMAND='s@^.*/@@' # strip path 6 | -------------------------------------------------------------------------------- /tests/data/test083.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file with corrupt lat/long' 2 | # Run in C locale to avoid errors when comparing numbers in output 3 | COMMAND='env LC_NUMERIC=C $PROGRAM -s "$STAGINGDIR/baddate2.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=0 5 | SEDCOMMAND='s@^.*/@@' # strip path 6 | -------------------------------------------------------------------------------- /tests/data/test106.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify out-of-range latitude minutes (dms form)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -l -89d61m0s,123d0m0s "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test108.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify out-of-range longitude seconds (dms form)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -l 9d6m0s,123d0m61s "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test011.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file already containing GPS tags' 2 | PRECOMMAND='cat "$STAGINGDIR/withgps.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test020.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with wrong timeoffset' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 1:00 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test006.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags from file without EXIF tags' 2 | PRECOMMAND='cat "$STAGINGDIR/noexif.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -r "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | SEDCOMMAND='s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test046.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate with a GPX file without time stamps' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/notimes.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test148.param: -------------------------------------------------------------------------------- 1 | TITLE='--max-heading negative' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --max-heading -2 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test157.param: -------------------------------------------------------------------------------- 1 | TITLE='--direction too large' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 360 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test007.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags from file without GPS tags' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -r "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test021.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with wrong photooffset' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 --photooffset 1 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test147.param: -------------------------------------------------------------------------------- 1 | TITLE='--max-heading too large' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --max-heading 360 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test158.param: -------------------------------------------------------------------------------- 1 | TITLE='--direction too negative' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction -360 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test121.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format' 2 | COMMAND='$PROGRAM -x -z 1 "$STAGINGDIR/point1-3.jpg" "$STAGINGDIR/withgps.jpg" "$STAGINGDIR/noelev.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@' # strip paths & version number 5 | -------------------------------------------------------------------------------- /tests/data/test123.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format with --photooffset' 2 | COMMAND='$PROGRAM -x -z 1 -O 123 "$STAGINGDIR/point1-3.jpg" "$STAGINGDIR/withgps.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@' # strip paths & version number 5 | -------------------------------------------------------------------------------- /tests/data/test127.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file with no elevation with --machine' 2 | # Run in C locale to avoid errors when comparing numbers in output 3 | COMMAND='env LC_NUMERIC=C $PROGRAM -o "$STAGINGDIR/noelev.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=0 5 | SEDCOMMAND='s@([a-zA-Z]:)?/.*/@@' # strip path 6 | -------------------------------------------------------------------------------- /tests/data/test047.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate with a GPX file without time stamps or elevations' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/notimeele.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test058.param: -------------------------------------------------------------------------------- 1 | TITLE='Use --fix-datestamps with missing --timeadd' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --fix-datestamps "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | SEDCOMMAND='s@^/.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test008.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags from a read-only file' 2 | PRECOMMAND='cp "$STAGINGDIR/withgps.jpg" "$LOGDIR/test.jpg" && chmod a-w "$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -r "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | SEDCOMMAND='s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test056.param: -------------------------------------------------------------------------------- 1 | TITLE='Use --fix-datestamps on a file with no GPS tags' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --fix-datestamps -z 0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | SEDCOMMAND='s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test057.param: -------------------------------------------------------------------------------- 1 | TITLE='Use --fix-datestamps on a file with no EXIF tags' 2 | PRECOMMAND='cat "$STAGINGDIR/noexif.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --fix-datestamps -z 0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | SEDCOMMAND='s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test016.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --degmins option' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --degmins -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test017.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags' 2 | PRECOMMAND='cat "$STAGINGDIR/withgps.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --remove "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='1s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test014.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --datum option' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --datum TOKYO -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test015.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --no-write option' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-write -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test029.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test093.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file at very high altitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z -6 -g "$STAGINGDIR/track12.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test097.param: -------------------------------------------------------------------------------- 1 | TITLE='Show machine-readable GPS data on file with double quote in name' 2 | PRECOMMAND='cat "$STAGINGDIR/withgps.jpg" >"$LOGDIR/test\"\".jpg"' 3 | COMMAND='$PROGRAM --machine "$LOGDIR/test\"\".jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test\"\".jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='s@/.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test117.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data with existing and nonexistent files' 2 | # Run in C locale to avoid errors when comparing numbers in output 3 | COMMAND='env LC_NUMERIC=C $PROGRAM -s "$STAGINGDIR/withgps.jpg" does-not-exist "$STAGINGDIR/withgps.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=1 5 | SEDCOMMAND='s@([a-zA-Z]:)?/.*/@@' # strip path 6 | -------------------------------------------------------------------------------- /tests/data/test133.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify invalid elevation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1.0,1.0,bogus "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test182.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify invalid latitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1XXX,1.0,1.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test183.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify invalid longitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1.0,1XXX,1.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test012.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with exactly one GPS point' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test068.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file on Feb 29 on a leap year' 2 | PRECOMMAND='cat "$STAGINGDIR/point6-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z +1 -g "$STAGINGDIR/track8.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test094.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file at extremely high altitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point4-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z -6 -g "$STAGINGDIR/track12.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test107.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify out-of-range longitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -l 92.34567,180.456 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test174.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with subsecond interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-4.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test187.result: -------------------------------------------------------------------------------- 1 | 2 | Reading GPS Data... 3 | 4 | Correlate: 5 | test.jpg: No match. 6 | 7 | Completed correlation process. 8 | Used time zone offset 0:00 9 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 10 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 11 | 0 No Date, 0 GPS Already Present.) 12 | -------------------------------------------------------------------------------- /tests/data/test031.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file outside feather time' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --max-dist 3 -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test048.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate with a GPX file without elevations' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/noelevations.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test062.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file in the southern hemisphere' 2 | PRECOMMAND='cat "$STAGINGDIR/point5-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z -14:00 -g "$STAGINGDIR/track7.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test074.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --datum option with empty value' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --datum "" -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test105.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify out-of-range latitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -l 92.34567,123.456,78.9 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test130.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify unrepresentable latitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1e10001,1.0,1.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test131.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify unrepresentable longitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1.0,1e10001,1.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test132.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify unrepresentable elevation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1.0,1.0,1e10001 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test189.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with invalid OffsetTime tag' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-8.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='env TZ=UTC $PROGRAM -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test088.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with JPEG containing only GPS version tag' 2 | PRECOMMAND='cat "$STAGINGDIR/noloc.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test095.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file at slightly more extreme altitude' 2 | PRECOMMAND='cat "$STAGINGDIR/point4-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -i -z -6 -g "$STAGINGDIR/track12.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test023.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a read-only file' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg" && chmod a-w "$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test030.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file without interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test076.param: -------------------------------------------------------------------------------- 1 | TITLE='Test -h option' 2 | # Uses two lines of the help output as a canary, assuming that if the display 3 | # fine, the rest do, too. This avoids having to update the test data for 4 | # every minor change to the help output. 5 | COMMAND='$PROGRAM -h > "$OUTFILE" 2>&1' 6 | RESULTCODE=0 7 | SEDCOMMAND='/Display/!d' # Delete non-canary lines 8 | -------------------------------------------------------------------------------- /tests/data/test109.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags with --no-write' 2 | PRECOMMAND='cat "$STAGINGDIR/withgps.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --remove --no-write "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='1s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test119.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file without GPS tags with --replace' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --replace -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test137.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify invalid elevation (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1d2Xm3s,1d2m3s,1X.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test200.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with exact match with HDOP' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --photooffset 10 -z 0 -g "$STAGINGDIR/track17.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test032.result: -------------------------------------------------------------------------------- 1 | 2 | Reading GPS Data... 3 | 4 | Correlate: 5 | test.jpg: Too far from nearest point. 6 | 7 | Completed correlation process. 8 | Used time zone offset 0:00 9 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 10 | Failed: 1 (0 Not matched, 0 Write failure, 1 Too Far, 11 | 0 No Date, 0 GPS Already Present.) 12 | -------------------------------------------------------------------------------- /tests/data/test089.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags on file with only GPS version tag' 2 | PRECOMMAND='cat "$STAGINGDIR/noloc.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --remove "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='1s@^.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test096.param: -------------------------------------------------------------------------------- 1 | TITLE='Interpolate with a very long feather time' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --photooffset -4600 -z -6 -g "$STAGINGDIR/track12.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test110.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude (dms integer forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z+1 -l 34d56m7s,-87d6m54s "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test135.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify invalid latitude degrees (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1Xd2m3s,1d2m3s,1.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test136.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify invalid longitude minutes (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1d2m3s,1d2Xm3s,1.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test184.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify invalid latitude seconds (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1d2m3Xs,1d2m3s,1.0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test201.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with interpolation with HDOP' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --photooffset 11 -z 0 -g "$STAGINGDIR/track17.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test034.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file across two track segments without --ignore-tracksegs' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test069.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with GPX containing empty and other sections' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track9.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test073.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with interpolation with GPX missing one elevation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track11.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test118.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file already containing GPS tags with --replace' 2 | PRECOMMAND='cat "$STAGINGDIR/withgps.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --replace -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test138.param: -------------------------------------------------------------------------------- 1 | TITLE='Specify unrepresentable elevation (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 1d2m3s,1d2m3s,1e10001 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | -------------------------------------------------------------------------------- /tests/data/test141.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading without second bearing' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading -z 0 -O 5 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test036.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file using --photooffset' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test070.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with GPX containing multiple tracks, point in first track' 2 | PRECOMMAND='cat "$STAGINGDIR/point3-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z -7 -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test092.param: -------------------------------------------------------------------------------- 1 | TITLE='Test running without any arguments' 2 | # Uses two lines of the help output as a canary, assuming that if the display 3 | # fine, the rest do, too. This avoids having to update the test data for 4 | # every minor change to the help output. 5 | COMMAND='$PROGRAM > "$OUTFILE" 2>&1' 6 | RESULTCODE=0 7 | SEDCOMMAND='/Display/!d' # Delete non-canary lines 8 | -------------------------------------------------------------------------------- /tests/data/test151.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with direction without second bearing' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --direction -40 -z 0 -O 5 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test071.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with GPX containing multiple tracks, point in second track' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z -7 -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test124.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format including invalid files' 2 | COMMAND='$PROGRAM -x -z 1 "$STAGINGDIR/noexif.jpg" "$STAGINGDIR/dummy.xhtml" "$STAGINGDIR/does-not-exist" "$STAGINGDIR/withgps.jpg" "$STAGINGDIR/noloc.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@' # strip paths & version number 5 | -------------------------------------------------------------------------------- /tests/data/test142.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with interpolation across segments' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test013.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with exactly one GPS point with --no-interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test041.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with rounding to first point' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset -30 -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test152.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with direction with interpolation across segments' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --direction -40 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test173.param: -------------------------------------------------------------------------------- 1 | TITLE='Ignore heading with incorrect TrackPointExtension namespace' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 0 -z 0 -g "$STAGINGDIR/track16.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test175.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with subsecond resolution without interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-4.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test128.result: -------------------------------------------------------------------------------- 1 | 2 | Reading GPS Data... 3 | 4 | Correlate: 5 | test.jpg: Rounded: Lat 47.421240, Long 10.985200, Elev 2962.000. 6 | 7 | Completed correlation process. 8 | Used time zone offset 0:00 9 | Matched: 1 (0 Exact, 0 Interpolated, 1 Rounded). 10 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 11 | 0 No Date, 0 GPS Already Present.) 12 | -------------------------------------------------------------------------------- /tests/data/test144.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with delta within --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --max-heading 35 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test145.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with delta outside --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --max-heading 25 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test180.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with subsecond photooffset barely outside track range' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-4.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --photooffset -9.95 -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/staging/notracks.gpx: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /tests/data/test140.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with exact match' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test143.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with --no-interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --no-interpolation -O 12 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test154.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with direction with delta within --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --direction 40 --max-heading 35 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test169.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction from extensions.compass' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 40 -z 0 -g "$STAGINGDIR/track14.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test035.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file across two, single-point track segments, with negative elevation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --ignore-tracksegs -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test149.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading available but without --heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test150.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with direction with exact match' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --direction 70 --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test153.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with direction with --no-interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --direction 90 --no-interpolation -O 12 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test155.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with direction with delta outside --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --direction 10 --max-heading 25 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test161.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction without second bearing' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction -40 -z 0 -O 5 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test167.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with delta crossing 360 degrees CCW' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --max-heading 90 -O -45 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test168.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with delta crossing 360 degrees CW' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --max-heading 179 -O -55 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test170.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction from TrackPointExtension.course' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 0 -z 0 -g "$STAGINGDIR/track15.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test185.param: -------------------------------------------------------------------------------- 1 | # End result is the same as test 29 2 | TITLE='Correlate a file with time zone <1h from UTC' 3 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 4 | COMMAND='$PROGRAM -t -z -00:30 -O -1800 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test188.param: -------------------------------------------------------------------------------- 1 | # End location is the same as test 29 2 | TITLE='Correlate a file with OffsetTime tag <1h from UTC' 3 | PRECOMMAND='cat "$STAGINGDIR/point1-7.jpg" >"$LOGDIR/test.jpg"' 4 | COMMAND='$PROGRAM -t -O -1824 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test159.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with --heading but no headings available' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/staging/dummy.xhtml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | Not a GPX File 8 | 9 | 10 |

But it is XML

11 |

Maybe, it will fool the decoder

12 | 13 | 14 | -------------------------------------------------------------------------------- /tests/data/test033.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with exact match across two, single-point track segments' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test037.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file using --photooffset and smaller --max-dist' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 27 --max-dist 10 -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test072.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with GPX containing multiple tracks, point interpolated between tracks' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --ignore-tracksegs -z -7 -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test078.param: -------------------------------------------------------------------------------- 1 | TITLE='Test invocation with no arguments' 2 | # This is identical to -h 3 | # Uses two lines of the help output as a canary, assuming that if the display 4 | # fine, the rest do, too. This avoids having to update the test data for 5 | # every minor change to the help output. 6 | COMMAND='$PROGRAM -h > "$OUTFILE" 2>&1' 7 | RESULTCODE=0 8 | SEDCOMMAND='/Display/!d' # Delete non-canary lines 9 | -------------------------------------------------------------------------------- /tests/data/test128.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file without interpolation --verbose output' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -v --no-interpolation -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 7 | -------------------------------------------------------------------------------- /tests/data/test162.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction with interpolation across segments' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 270 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test199.result: -------------------------------------------------------------------------------- 1 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 2 | w = Write Fail, ? = No EXIF date, ! = GPS already present 3 | 4 | Correlate: ? 5 | 6 | Completed correlation process. 7 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 8 | Failed: 1 (0 Not matched, 0 Write failure, 0 Too Far, 9 | 1 No Date, 0 GPS Already Present.) 10 | -------------------------------------------------------------------------------- /tests/data/test202.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with inexact match, no interpolation, first point, with HDOP' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 11 -z 0 -g "$STAGINGDIR/track17.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test203.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with inexact match, no interpolation, second point, with HDOP' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 15 -z 0 -g "$STAGINGDIR/track17.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/staging/noelevations.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /tests/staging/track6.gpx: -------------------------------------------------------------------------------- 1 | 130.0128.0 -------------------------------------------------------------------------------- /tests/data/test067.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with several GPX files, including a corrupt one' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track4.gpx" -g "$STAGINGDIR/dummy.xhtml" -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | -------------------------------------------------------------------------------- /tests/data/test090.param: -------------------------------------------------------------------------------- 1 | TITLE='Use --fix-datestamps on a file with only GPS version tags' 2 | PRECOMMAND='cat "$STAGINGDIR/noloc.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --fix-datestamps -z 0 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | # This test results in a segfault with libexiv2 ver. 0.18 & 0.19 due to a libexiv2 bug. 6 | RESULTCODE=1 7 | SEDCOMMAND='s@^.*/@@' # strip path 8 | -------------------------------------------------------------------------------- /tests/data/test160.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction with exact match' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 0 --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test163.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction with --no-interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 90 --no-interpolation -O 12 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test164.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction with delta within --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 40 --max-heading 35 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test165.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction with delta outside --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-2.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 10 --max-heading 25 -z 0 -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test186.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with OffsetTime tag' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-6.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -v -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 7 | -------------------------------------------------------------------------------- /tests/data/test194.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format with images including OffsetTime' 2 | # First file uses -07:00 (EXIF tag), remainder use -02:00 (automatic) 3 | COMMAND='env TZ=WGT2 $PROGRAM -x "$STAGINGDIR/withgps.jpg" "$STAGINGDIR/noelev.jpg" "$STAGINGDIR/withtz.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=0 5 | # Strip paths & version number. 6 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@' 7 | -------------------------------------------------------------------------------- /tests/data/test146.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading with --no-interpolation with delta outside --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading -B 16 --no-interpolation -O 12 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test010.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: ? 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 1 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test011.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: ! 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 1 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test020.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test021.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test023.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: w 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (0 Not matched, 1 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test026.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test027.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test028.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test031.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: ^ 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (0 Not matched, 0 Write failure, 1 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test034.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test046.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test047.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test049.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: ? 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 1 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test064.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with several GPX files, using last' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track7.gpx" -g "$STAGINGDIR/track5.gpx" -g "$STAGINGDIR/track4.gpx" -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test066.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with several GPX files, using first' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track1.gpx" -g "$STAGINGDIR/track4.gpx" -g "$STAGINGDIR/track5.gpx" -g "$STAGINGDIR/track7.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test098.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude/elevation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 12.34567,123.456,78.9 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test099.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude w/o elevation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l -89.000001,179.9 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test180.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /tests/data/test065.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with several GPX files, using middle' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -z 0 -g "$STAGINGDIR/track5.gpx" -g "$STAGINGDIR/track1.gpx" -g "$STAGINGDIR/track7.gpx" -g "$STAGINGDIR/track4.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test156.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with direction with --no-interpolation with delta outside --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --direction 10 -B 16 --no-interpolation -O 12 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/staging/nosegments.gpx: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | Empty 11 | 12 | 13 | -------------------------------------------------------------------------------- /tests/data/test053.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: !??./-----! 6 | 7 | Completed correlation process. 8 | Matched: 2 (1 Exact, 1 Interpolated, 0 Rounded). 9 | Failed: 9 (5 Not matched, 0 Write failure, 0 Too Far, 10 | 2 No Date, 2 GPS Already Present.) 11 | -------------------------------------------------------------------------------- /AUTHORS.extra: -------------------------------------------------------------------------------- 1 | Issa Bertrand (French translation) 2 | jybz (French translation) 3 | Julio Castillo (Win32 support) 4 | Marc Horowitz (remove tag, timezone patches) 5 | papoteur (French translation) 6 | psykose (error init patch) 7 | Russell Steicke (mtime patch) 8 | Saijin-Naib (error init patch) 9 | Stefano Zacchiroli (man page) 10 | Tessa Fandrich (German translation) 11 | Till Maas (install, doc patches) 12 | Vincent Gay (French translation) 13 | -------------------------------------------------------------------------------- /tests/data/test171.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified location with direction' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 12.34567,-123.456,78.9 --direction 321 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test125.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format with file with invalid XML name' 2 | PRECOMMAND='cat "$STAGINGDIR/withgps.jpg" >"$LOGDIR/double--dash----dis-allowed.jpg"' 3 | COMMAND='$PROGRAM -x -z 0 "$LOGDIR/double--dash----dis-allowed.jpg" > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/double--dash----dis-allowed.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@' # strip paths & version number 7 | -------------------------------------------------------------------------------- /tests/data/test134.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude/elevation with E notation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 12.34567,123.456,7.8e2 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test022.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: . 6 | 7 | Completed correlation process. 8 | Matched: 1 (1 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | ztest.jpg 12 | test.jpg 13 | -------------------------------------------------------------------------------- /tests/data/test051.param: -------------------------------------------------------------------------------- 1 | TITLE='Fix a bad GPS date with --fix-datestamps on a read-only file' 2 | PRECOMMAND='cat "$STAGINGDIR/baddate.jpg" >"$LOGDIR/test.jpg" && chmod a-w "$LOGDIR/test.jpg"' 3 | # Run in C locale to avoid errors when comparing days of week in output 4 | COMMAND='env LC_TIME=C $PROGRAM --fix-datestamps -z -7 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=1 7 | SEDCOMMAND='1s@^.*/@@' # strip path 8 | -------------------------------------------------------------------------------- /tests/data/test166.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with heading and direction with --no-interpolation with delta outside --max-heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --heading --direction 10 -B 16 --no-interpolation -O 12 -z 0 -t -g "$STAGINGDIR/track13.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | -------------------------------------------------------------------------------- /tests/data/test075.param: -------------------------------------------------------------------------------- 1 | TITLE='Test -V option' 2 | COMMAND='$PROGRAM -V > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | # Strip path and copyright lines, but do so in a way that checks the basic 5 | # format of the line. All other tests that could see this line strip it 6 | # completely, so this one also acts as a basic check that the line is being 7 | # output at all. 8 | SEDCOMMAND='s@^([a-zA-Z]:)?(.*[/\\])?(gpscorrelate)(\.exe)?.*( Copyright.*200.-).*( Daniel).*$@\3\5\6@' 9 | -------------------------------------------------------------------------------- /tests/data/test101.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude/elevation, space separated' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l 89.9999999\ 179.999\ 99999.999 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test102.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude/elevation, tab separated' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l "-89.9999999 -179.999 -9999.999" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test103.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude, tab separated (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l "-89d59m59.9999s -179d59m059.999s" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/staging/nopoints.gpx: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | Empty 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /tests/data/test079.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --fix-datestamps with --no-write' 2 | PRECOMMAND='cat "$STAGINGDIR/baddate.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to avoid errors when comparing days of week in output 4 | COMMAND='env LC_TIME=C $PROGRAM --no-write --fix-datestamps -z -7 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='1s@^.*/@@' # strip path 8 | -------------------------------------------------------------------------------- /tests/data/test104.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude, space separated (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z+1 -l "+89d00m59.0000s +0179d059m059.000s" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test082.param: -------------------------------------------------------------------------------- 1 | TITLE='Fix bad date with --fix-datestamps with corrupt lat/long' 2 | PRECOMMAND='cat "$STAGINGDIR/baddate2.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to avoid errors when comparing days of week in output 4 | COMMAND='env LC_TIME=C $PROGRAM --fix-datestamps -z -7 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='1s@^.*/@@' # strip path 8 | -------------------------------------------------------------------------------- /tests/data/test122.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format with automatic time zone detection' 2 | # This time zone is equivalent to America/Vancouver (at least, in 2012) 3 | # but should be more portable than using the symbolic name. 4 | COMMAND='env TZ="PST8PDT,M3.2.0,M11.1.0" $PROGRAM -x "$STAGINGDIR/point1-3.jpg" "$STAGINGDIR/withgps.jpg" > "$OUTFILE" 2>&1' 5 | RESULTCODE=0 6 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@' # strip paths & version number 7 | -------------------------------------------------------------------------------- /tests/data/test172.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified location with direction and heading' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM -z0 --latlong "12.34567,-123.456 78.9" --direction 12 --heading "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test032.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file outside feather time with --no-interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --max-dist 3 -v -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 7 | -------------------------------------------------------------------------------- /tests/data/test187.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with automatic time zone detection, ignoring OffsetTime tag' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-6.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='env TZ=UTC $PROGRAM --no-photo-tz -v -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 7 | -------------------------------------------------------------------------------- /tests/data/test179.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with subsecond interpolation and fractional photooffset negative overflow' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-4.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM --photooffset -10.95 -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test181.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with subsecond interpolation and long fractional photooffset' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-4.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to correctly parse these decimal numbers 4 | COMMAND='env LC_NUMERIC=C $PROGRAM --photooffset -14.91234567855555555555 -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | -------------------------------------------------------------------------------- /tests/data/test045.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file and make sure --fix-datestamps does not touch it' 2 | PRECOMMAND='cat "$STAGINGDIR/point4-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --timeadd 1 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1 && $PROGRAM --fix-datestamps --timeadd 1 "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/@@' # strip path 7 | -------------------------------------------------------------------------------- /tests/data/test197.result: -------------------------------------------------------------------------------- 1 | 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: - 6 | 7 | Completed correlation process. 8 | Matched: 0 (0 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 1 (1 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | Warning: track points are not ordered by time (first bad point at 2012-11-22T12:35:01Z). 12 | -------------------------------------------------------------------------------- /tests/data/test177.param: -------------------------------------------------------------------------------- 1 | # End location is the same as test 29 2 | TITLE='Correlate a file with subsecond interpolation and fractional photooffset' 3 | PRECOMMAND='cat "$STAGINGDIR/point1-4.jpg" >"$LOGDIR/test.jpg"' 4 | # Run in C locale to correctly parse these decimal numbers 5 | COMMAND='env LC_NUMERIC=C $PROGRAM --photooffset -14.91 -z 0 -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 6 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 7 | RESULTCODE=0 8 | -------------------------------------------------------------------------------- /tests/data/test178.param: -------------------------------------------------------------------------------- 1 | # End result is the same as test 71 2 | TITLE='Correlate a file with subsecond interpolation and fractional photooffset overflow' 3 | PRECOMMAND='cat "$STAGINGDIR/point1-4.jpg" >"$LOGDIR/test.jpg"' 4 | # Run in C locale to correctly parse these decimal numbers 5 | COMMAND='env LC_NUMERIC=C $PROGRAM --photooffset 9.09 -z -7 -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 6 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 7 | RESULTCODE=0 8 | -------------------------------------------------------------------------------- /tests/data/test043.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with --timeadd east of UTC' 2 | PRECOMMAND='cat "$STAGINGDIR/point4-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to avoid errors when comparing numbers in output 4 | COMMAND='env LC_NUMERIC=C $PROGRAM --timeadd 1:00 -v -g "$STAGINGDIR/track2.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 8 | -------------------------------------------------------------------------------- /po/remove-potcdate.sin: -------------------------------------------------------------------------------- 1 | # Sed script that remove the POT-Creation-Date line in the header entry 2 | # from a POT file. 3 | # 4 | # The distinction between the first and the following occurrences of the 5 | # pattern is achieved by looking at the hold space. 6 | /^"POT-Creation-Date: .*"$/{ 7 | x 8 | # Test if the hold space is empty. 9 | s/P/P/ 10 | ta 11 | # Yes it was empty. First occurrence. Remove the line. 12 | g 13 | d 14 | bb 15 | :a 16 | # The hold space was nonempty. Following occurrences. Do nothing. 17 | x 18 | :b 19 | } 20 | -------------------------------------------------------------------------------- /tests/data/test176.param: -------------------------------------------------------------------------------- 1 | # This tests the same thing as test 30 but with the conditions of test 175 2 | # to ensure that subsecond resolution makes a different to the result. 3 | TITLE='Correlate a file without subsecond resolution without interpolation' 4 | PRECOMMAND='cat "$STAGINGDIR/point1-5.jpg" >"$LOGDIR/test.jpg"' 5 | COMMAND='$PROGRAM --no-interpolation -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 6 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 7 | RESULTCODE=0 8 | -------------------------------------------------------------------------------- /tests/data/test044.param: -------------------------------------------------------------------------------- 1 | TITLE='Fix a bad GPS date with --fix-datestamps' 2 | PRECOMMAND='cat "$STAGINGDIR/baddate.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to avoid errors when comparing days of week in output 4 | COMMAND='env LC_TIME=C $PROGRAM --fix-datestamps -z -7 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1 && $PROGRAM --fix-datestamps -z -7 "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/@@' # strip path 8 | -------------------------------------------------------------------------------- /tests/data/test063.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data on file in southern hemisphere' 2 | # Synthesize an appropriate file on which the run the real test 3 | PRECOMMAND='cat "$STAGINGDIR/point5-1.jpg" >"$LOGDIR/test.jpg" && $PROGRAM -z -14:00 -g "$STAGINGDIR/track7.gpx" "$LOGDIR/test.jpg" 2>"$OUTFILE" > /dev/null' 4 | # Run in C locale to avoid errors when comparing numbers in output 5 | COMMAND='env LC_NUMERIC=C $PROGRAM -s "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 6 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 7 | RESULTCODE=0 8 | SEDCOMMAND='s@^.*/@@' # strip path 9 | -------------------------------------------------------------------------------- /tests/data/test042.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with --timeadd west of UTC and aligned on the half hour' 2 | PRECOMMAND='cat "$STAGINGDIR/point3-1.jpg" >"$LOGDIR/test.jpg"' 3 | # Run in C locale to avoid errors when comparing numbers in output 4 | COMMAND='env LC_NUMERIC=C $PROGRAM --timeadd -3:30 -v -g "$STAGINGDIR/track6.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 8 | -------------------------------------------------------------------------------- /tests/data/test124.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10.000 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /tests/data/test125.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10.000 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /tests/data/test005.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate with nonexistent GPX file' 2 | COMMAND='$PROGRAM -g "$STAGINGDIR/does-not-exist" "$STAGINGDIR/point1-1.jpg" 2> "$OUTFILE" > /dev/null' 3 | RESULTCODE=1 4 | # This sed expression has to transform two vastly different strings. The first 5 | # is a libxml2 message that has had several forms over the years, so leave just 6 | # enough of the common parts to determine that the right message was output. 7 | # The other comes from gpscorrelate and just needs its path stripped. 8 | SEDCOMMAND='s@(((failed to load)( external entity)?)|(Failed to parse GPX data from)) +(")?([a-zA-Z]:)?/.*/([^:]*)(: No such file or directory)?@\3\5 \6\8@' 9 | -------------------------------------------------------------------------------- /tests/data/test192.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate multiple files with and without OffsetTime tags with manual time zone' 2 | # Both files use -02:00 (manual) 3 | PRECOMMAND='cat "$STAGINGDIR/point1-6.jpg" >"$LOGDIR/test1.jpg" && cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test2.jpg"' 4 | COMMAND='env TZ=UTC $PROGRAM -v -z -2 -t -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test1.jpg" >> "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test2.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 8 | -------------------------------------------------------------------------------- /tests/data/test193.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate multiple files with and without OffsetTime tags ignoring tags' 2 | # Both files use -2:00 (automatic) 3 | PRECOMMAND='cat "$STAGINGDIR/point1-6.jpg" >"$LOGDIR/test1.jpg" && cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test2.jpg"' 4 | COMMAND='env TZ=WGT2 $PROGRAM -v --no-photo-tz -t -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test1.jpg" >> "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test2.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 8 | -------------------------------------------------------------------------------- /tests/data/test191.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate multiple files with and without OffsetTime tags' 2 | # First file uses -07:00 (EXIF tag), second file uses -02:00 (automatic) 3 | PRECOMMAND='cat "$STAGINGDIR/point1-6.jpg" >"$LOGDIR/test1.jpg" && cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test2.jpg"' 4 | COMMAND='env TZ=WGT2 $PROGRAM -v -t -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test1.jpg" >> "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test2.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 8 | -------------------------------------------------------------------------------- /tests/data/test038.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with automatic time zone detection, DST' 2 | PRECOMMAND='cat "$STAGINGDIR/point2-1.jpg" >"$LOGDIR/test.jpg"' 3 | # This time zone is equivalent to America/Vancouver (at least, in 2012) 4 | # but should be more portable than using the symbolic name. 5 | # Run in C locale to avoid errors when comparing numbers in output 6 | COMMAND='env LC_NUMERIC=C TZ="PST8PDT,M3.2.0,M11.1.0" $PROGRAM -v -g "$STAGINGDIR/track4.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 7 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 8 | RESULTCODE=0 9 | SEDCOMMAND='s@^/.*/|.*Copyright.*$@@' # strip path and copyright line 10 | -------------------------------------------------------------------------------- /tests/staging/track11.gpx: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 1000.000000 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /tests/data/test039.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with automatic time zone detection, no DST' 2 | PRECOMMAND='cat "$STAGINGDIR/point2-2.jpg" >"$LOGDIR/test.jpg"' 3 | # This time zone is equivalent to America/Vancouver (at least, in 2012) 4 | # but should be more portable than using the symbolic name. 5 | # Run in C locale to avoid errors when comparing numbers in output 6 | COMMAND='env LC_NUMERIC=C TZ="PST8PDT,M3.2.0,M11.1.0" $PROGRAM -v -g "$STAGINGDIR/track4.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 7 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 8 | RESULTCODE=0 9 | SEDCOMMAND='s@^/.*/|.*Copyright.*$@@' # strip path and copyright line 10 | -------------------------------------------------------------------------------- /tests/staging/notimeele.gpx: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 1 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/data/test040.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate a file with automatic time zone detection, during DST overlap' 2 | PRECOMMAND='cat "$STAGINGDIR/point7-1.jpg" >"$LOGDIR/test.jpg"' 3 | # This time zone is equivalent to America/Vancouver (at least, in 2012) 4 | # but should be more portable than using the symbolic name. 5 | # Run in C locale to avoid errors when comparing numbers in output 6 | COMMAND='env LC_NUMERIC=C TZ="PST8PDT,M3.2.0,M11.1.0" $PROGRAM -v -g "$STAGINGDIR/track5.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 7 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 8 | RESULTCODE=0 9 | SEDCOMMAND='s@^/.*/|.*Copyright.*$@@' # strip path and copyright line 10 | -------------------------------------------------------------------------------- /tests/data/test129.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format with out-of-order images' 2 | COMMAND='$PROGRAM -x -z 1 "$STAGINGDIR/noelev.jpg" "$STAGINGDIR/withgps.jpg" > "$OUTFILE" 2>&1' 3 | RESULTCODE=0 4 | # Strip paths & version number. Also, move the Warning: line(s) to the end of 5 | # the file so they are in a known location (carefully, especially with edge 6 | # cases like the line already appearing at the end of the file), since the 7 | # blending of stdout/stderr is done differently on different platforms. 8 | # Unfortunately, BSD sed doesn't support grouping commands with {}. 9 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@;$G;s/\n//;$q;/^Warning:/H;/^Warning:/d' 10 | -------------------------------------------------------------------------------- /tests/data/test190.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate multiple files with different OffsetTime tags' 2 | # First file uses -07:00 (EXIF tag), second file uses -00:30 (EXIF tag) 3 | PRECOMMAND='cat "$STAGINGDIR/point1-6.jpg" >"$LOGDIR/test1.jpg" && cat "$STAGINGDIR/point1-7.jpg" >"$LOGDIR/test2.jpg"' 4 | COMMAND='env TZ=UTC $PROGRAM -v -O -1824 -t -g "$STAGINGDIR/track2.gpx" -g "$STAGINGDIR/track10.gpx" "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test1.jpg" >> "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test2.jpg" >> "$OUTFILE" 2>&1' 5 | POSTCOMMAND='rm -f "$LOGDIR/test1.jpg" "$LOGDIR/test2.jpg"' 6 | RESULTCODE=0 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 8 | -------------------------------------------------------------------------------- /tests/data/test024.param: -------------------------------------------------------------------------------- 1 | TITLE='Read an empty GPX file' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM -g /dev/null "$LOGDIR/test.jpg" 2> "$OUTFILE" > /dev/null' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=1 6 | # libxml2 versions 2.9.1 and below have slightly different diagnostic output 7 | # that causes this test to fail 8 | # libxml2 versions 2.9.4 (at least) adds some unuseful diagnostic lines 9 | # beginning with ^ that are removed here 10 | # libxml2 version 2.7.7 adds an extra Start tag expected message 11 | # Windows targets use nul instead of /dev/null, so canonicalize on the former 12 | SEDCOMMAND='/(^\^?$)|(Start tag expected)/d;s@/dev/null@nul@' 13 | -------------------------------------------------------------------------------- /tests/data/test122.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -422.243 10 | 11 | 12 | 13 | 14 | 10.000 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /tests/data/test123.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -422.243 10 | 11 | 12 | 13 | 14 | 10.000 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /gpscorrelate.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Version=1.0 4 | Name=GPSCorrelate 5 | GenericName=Geotagging tool 6 | GenericName[de]=Geotagging-Programm 7 | GenericName[fr]=Logiciel de géolocalisation 8 | Comment=Add coordinates to JPEG images using GPX files 9 | Comment[de]=JPEG-Bildern Koordinaten mit GPX-Dateien beifügen 10 | Comment[fr]=Attache des tags de position GPS EXIF aux images 11 | Comment[ru]=Добавление геоданных в jpeg фотографии на основе GPX трека 12 | TryExec=gpscorrelate-gui 13 | Exec=gpscorrelate-gui 14 | Terminal=false 15 | Categories=Graphics;ImageProcessing;Geography;GTK; 16 | Icon=gpscorrelate-gui 17 | Keywords=gps;gpx;tracks;correlate;correlation;picture;photo;jpg;jpeg;geolocation;location 18 | -------------------------------------------------------------------------------- /tests/data/test100.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude (dms forms)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # A UTF-8 locale isn't strictly needed currently, but it's highly likely to be 4 | # present when the UTF-8 degrees symbol is being used, as it is here. 5 | # As can be seen, it's tricky to pass a single quote character into the test 6 | # suite. 7 | # Run in C locale to avoid errors when comparing numbers in output 8 | COMMAND='env LC_CTYPE=UTF-8 LC_NUMERIC=C $PROGRAM -z+1 -l -34d56m08.9s,-90°0'"\\'"'59.11111\" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 9 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 10 | RESULTCODE=0 11 | -------------------------------------------------------------------------------- /tests/data/test129.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 10.000 14 | 15 | 16 | 17 | 18 | 19 | 20 | Warning: image files are not ordered by time. 21 | -------------------------------------------------------------------------------- /tests/data/test139.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude/elevation (dms forms with commas)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # A UTF-8 locale isn't strictly needed currently, but it's highly likely to be 4 | # present when the UTF-8 degrees symbol is being used, as it is here. 5 | # As can be seen, it's tricky to pass a single quote character into the test 6 | # suite. 7 | # Run in C locale to avoid errors when comparing numbers in output 8 | COMMAND='env LC_CTYPE=UTF-8 LC_NUMERIC=C $PROGRAM -z+1 -l "-34d56m8.9s,-90d0m59s,123.4" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 9 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 10 | RESULTCODE=0 11 | -------------------------------------------------------------------------------- /tests/data/test111.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude/elevation (dms forms with spaces)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # A UTF-8 locale isn't strictly needed currently, but it's highly likely to be 4 | # present when the UTF-8 degrees symbol is being used, as it is here. 5 | # As can be seen, it's tricky to pass a single quote character into the test 6 | # suite. 7 | # Run in C locale to avoid errors when comparing numbers in output 8 | COMMAND='env LC_CTYPE=UTF-8 LC_NUMERIC=C $PROGRAM -z+1 -l "-34d 56m 8.9s, -90° 0m 59.11111s 123.4" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 9 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 10 | RESULTCODE=0 11 | -------------------------------------------------------------------------------- /tests/staging/notimes.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 5 | 1 6 | 7 | 8 | 0.0 9 | Trackpoint 10 | 11 | 12 | 0.0 13 | Trackpoint 14 | 15 | 16 | 0.0 17 | Trackpoint 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/data/test112.param: -------------------------------------------------------------------------------- 1 | TITLE='Geotag a file from a specified latitude/longitude/elevation (dms forms with more spaces)' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | # A UTF-8 locale isn't strictly needed currently, but it's highly likely to be 4 | # present when the UTF-8 degrees symbol is being used, as it is here. 5 | # As can be seen, it's tricky to pass a single quote character into the test 6 | # suite. 7 | # Run in C locale to avoid errors when comparing numbers in output 8 | COMMAND='env LC_CTYPE=UTF-8 LC_NUMERIC=C $PROGRAM -z+1 -l "-34d 56 08.9 -90° 0m 59.11111\" -123.4 " "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 9 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 10 | RESULTCODE=0 11 | -------------------------------------------------------------------------------- /tests/data/test195.param: -------------------------------------------------------------------------------- 1 | TITLE='Show GPS data in GPX format with images ignoring OffsetTime and out-of-order' 2 | # All files use -01:00 (manual) 3 | COMMAND='$PROGRAM -z 1 --no-photo-tz -x "$STAGINGDIR/withgps.jpg" "$STAGINGDIR/noelev.jpg" "$STAGINGDIR/withtz.jpg" > "$OUTFILE" 2>&1' 4 | RESULTCODE=0 5 | # Strip paths & version number. Also, move the Warning: line(s) to the end of 6 | # the file so they are in a known location (carefully, especially with edge 7 | # cases like the line already appearing at the end of the file), since the 8 | # blending of stdout/stderr is done differently on different platforms. 9 | # Unfortunately, BSD sed doesn't support grouping commands with {}. 10 | SEDCOMMAND='s/(creator="gpscorrelate )[^"]*/\1VERSION/;/\!--/s@[^ ]*/@@;$G;s/\n//;$q;/^Warning:/H;/^Warning:/d' 11 | -------------------------------------------------------------------------------- /README.mingw32: -------------------------------------------------------------------------------- 1 | To compile the windows version you need a mingw32 cross compiler 2 | toolchain (binutils, gcc, g++, etc). See this page for more pointers 3 | 4 | http://www.ecn.wfu.edu/~cottrell/cross-gtk/ 5 | 6 | To compile gpscorrelate for win32 you need cross-compiled versions of: 7 | libiconv 8 | gettext 9 | cairo 10 | atk 11 | libpng 12 | libxml2 13 | pango 14 | pixman 15 | zlib 16 | expat 17 | fontconfig 18 | freetype 19 | gettext 20 | glib2 21 | gtk2 22 | exiv2 23 | 24 | 25 | Once you have all the dependencies cross-compiled, export 26 | PKG_CONFIG_PATH to the database of your toolchain environment 27 | (something like /usr/i486-mingw32/lib/pkgconfig/) 28 | 29 | Finally run: 30 | make EXEEXT=.exe 31 | 32 | (README.mingw32 was written and contributed by Julio Castilo. Thanks!) 33 | -------------------------------------------------------------------------------- /tests/data/test196.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate with a GPX file with time going backward' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 10 -z 0 -g "$STAGINGDIR/timeback.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=0 6 | # Mixing output on stdout and stderr results in different output on Windows 7 | # compared to POSIX platforms. Massage the output to allow meaningful 8 | # and practical comparisons on all platforms by Deleting the "Reading..." line 9 | # and moving the "Warning:" line to the end. 10 | # Unfortunately, BSD sed doesn't support grouping commands with {}. 11 | SEDCOMMAND='s/^Reading.*\.\.\.//;$G;s/\n//;$q;/Warning:/H;/Warning:/d' 12 | -------------------------------------------------------------------------------- /tests/staging/track9.gpx: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/data/test197.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate with a GPX file with time going backward with interpolation' 2 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg"' 3 | COMMAND='$PROGRAM --no-interpolation --photooffset 9 -z 0 -g "$STAGINGDIR/timeback.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && exiv2 -pv pr "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 4 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg"' 5 | RESULTCODE=2 6 | # Mixing output on stdout and stderr results in different output on Windows 7 | # compared to POSIX platforms. Massage the output to allow meaningful 8 | # and practical comparisons on all platforms by Deleting the "Reading..." line 9 | # and moving the "Warning:" line to the end. 10 | # Unfortunately, BSD sed doesn't support grouping commands with {}. 11 | SEDCOMMAND='s/^Reading.*\.\.\.//;$G;s/\n//;$q;/Warning:/H;/Warning:/d' 12 | -------------------------------------------------------------------------------- /tests/data/test054.result: -------------------------------------------------------------------------------- 1 | 2 | Reading GPS Data... 3 | 4 | Correlate: 5 | test-baddate.jpg: GPS Data already present. 6 | test-noexif.jpg: No EXIF date tag present. 7 | test-notime.jpg: No EXIF date tag present. 8 | test-point1-1.jpg: Interpolated: Lat 31.458741, Long 35.399847, Elev -422.244. 9 | test-point1-2.jpg: EXIF write failure: Lat 31.458805, Long 35.399771, Elev -419.713. 10 | test-point2-1.jpg: No match. 11 | test-point2-2.jpg: No match. 12 | test-point7-1.jpg: No match. 13 | test-point3-1.jpg: No match. 14 | test-point4-1.jpg: No match. 15 | test-withgps.jpg: GPS Data already present. 16 | 17 | Completed correlation process. 18 | Used time zone offset 0:00 19 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 20 | Failed: 10 (5 Not matched, 1 Write failure, 0 Too Far, 21 | 2 No Date, 2 GPS Already Present.) 22 | -------------------------------------------------------------------------------- /tests/staging/track2.gpx: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12345 12 | 13 | 14 | 2930.000000 15 | 16 | 17 | 18 | 2962.000000 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /tests/data/test121.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -422.243 10 | 11 | 12 | 13 | 14 | 10.000 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/data/test194.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10.000 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 1180.156 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /tests/data/test053.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate many files, mostly unsuccessfully' 2 | PRECOMMAND='for f in baddate.jpg noexif.jpg notime.jpg point1-1.jpg point1-2.jpg point2-1.jpg point2-2.jpg point7-1.jpg point3-1.jpg point4-1.jpg withgps.jpg; do cat "$STAGINGDIR/$f" >"$LOGDIR/test-$f"; done' 3 | COMMAND='$PROGRAM -t --photooffset -16 -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR"/test-baddate.jpg "$LOGDIR"/test-noexif.jpg "$LOGDIR"/test-notime.jpg "$LOGDIR"/test-point1-1.jpg "$LOGDIR"/test-point1-2.jpg "$LOGDIR"/test-point2-1.jpg "$LOGDIR"/test-point2-2.jpg "$LOGDIR"/test-point7-1.jpg "$LOGDIR"/test-point3-1.jpg "$LOGDIR"/test-point4-1.jpg "$LOGDIR"/test-withgps.jpg > "$OUTFILE" 2>&1' 4 | POSTCOMMAND='for f in baddate.jpg noexif.jpg notime.jpg point1-1.jpg point1-2.jpg point2-1.jpg point2-2.jpg point7-1.jpg point3-1.jpg point4-1.jpg withgps.jpg; do rm -f "$LOGDIR/test-$f"; done' 5 | RESULTCODE=2 6 | -------------------------------------------------------------------------------- /tests/data/test195.result: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10.000 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 1180.156 19 | 20 | 21 | 22 | 23 | 24 | 25 | Warning: image files are not ordered by time. 26 | -------------------------------------------------------------------------------- /tests/data/test077.param: -------------------------------------------------------------------------------- 1 | TITLE='Test unrecognized option' 2 | COMMAND='$PROGRAM --not-a-supported-option > "$OUTFILE" 2>&1' 3 | RESULTCODE=1 4 | # glibc: /path/gpscorrelate: unrecognized option '--not-a-supported-option' 5 | # Older glibc: /path/gpscorrelate: unrecognized option `--not-a-supported-option` 6 | # FreeBSD: gpscorrelate: unrecognized option `--not-a-supported-option' 7 | # OS X: /path/gpscorrelate: unrecognized option '--not-a-supported-option' 8 | # MUSL: /path/gpscorrelate: unrecognized option: not-a-supported-option 9 | # Cygwin: gpscorrelate: unknown option -- not-a-supported-option 10 | # MSYS2: C:\projects\gpscorrelate\gpscorrelate.exe: unknown option -- not-a-supported-option 11 | # Work around all these differences by extracting only the important and common 12 | # parts of the output. 13 | SEDCOMMAND='s@^([a-zA-Z]:)?(\\.*\\|.*/)?(gpscorrelate)(\.exe)?(:).*( option):?( ).*(not-a-supported-option).*$@\3\5\6\7\8@' 14 | -------------------------------------------------------------------------------- /tests/staging/track1.gpx: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | c0c0c0 17 | 18 | 19 | 10 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /gui.h: -------------------------------------------------------------------------------- 1 | /* gui.h 2 | * Originally written by Daniel Foote. 3 | * 4 | * This file contains the function prototypes for the 5 | * stuff in gui.c */ 6 | 7 | /* Copyright 2005-2024 Daniel Foote, Dan Fandrich. 8 | * 9 | * This file is part of gpscorrelate. 10 | * 11 | * gpscorrelate is free software; you can redistribute it and/or modify 12 | * it under the terms of the GNU General Public License as published by 13 | * the Free Software Foundation; either version 2 of the License, or 14 | * (at your option) any later version. 15 | * 16 | * gpscorrelate is distributed in the hope that it will be useful, 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | * GNU General Public License for more details. 20 | * 21 | * You should have received a copy of the GNU General Public License 22 | * along with gpscorrelate; if not, write to the Free Software 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 | */ 25 | 26 | GtkWidget* CreateMatchWindow(void); 27 | -------------------------------------------------------------------------------- /tests/data/test054.param: -------------------------------------------------------------------------------- 1 | TITLE='Correlate many files, with a write failure' 2 | PRECOMMAND='for f in baddate.jpg noexif.jpg notime.jpg point1-1.jpg point1-2.jpg point2-1.jpg point2-2.jpg point7-1.jpg point3-1.jpg point4-1.jpg withgps.jpg; do cat "$STAGINGDIR/$f" >"$LOGDIR/test-$f"; done && chmod a-w "$LOGDIR/test-point1-2.jpg"' 3 | # Run in C locale to avoid errors when comparing numbers in output 4 | COMMAND='env LC_NUMERIC=C $PROGRAM --verbose -t -z 0 -g "$STAGINGDIR/track3.gpx" "$LOGDIR"/test-baddate.jpg "$LOGDIR"/test-noexif.jpg "$LOGDIR"/test-notime.jpg "$LOGDIR"/test-point1-1.jpg "$LOGDIR"/test-point1-2.jpg "$LOGDIR"/test-point2-1.jpg "$LOGDIR"/test-point2-2.jpg "$LOGDIR"/test-point7-1.jpg "$LOGDIR"/test-point3-1.jpg "$LOGDIR"/test-point4-1.jpg "$LOGDIR"/test-withgps.jpg > "$OUTFILE" 2>&1' 5 | POSTCOMMAND='for f in baddate.jpg noexif.jpg notime.jpg point1-1.jpg point1-2.jpg point2-1.jpg point2-2.jpg point7-1.jpg point3-1.jpg point4-1.jpg withgps.jpg; do rm -f "$LOGDIR/test-$f"; done' 6 | RESULTCODE=1 7 | SEDCOMMAND='s@^([a-zA-Z]:)?/.*/|.*Copyright.*$@@' # strip path and copyright line 8 | -------------------------------------------------------------------------------- /tests/data/test017.result: -------------------------------------------------------------------------------- 1 | test.jpg: Removed GPS tags. 2 | 0x011a Image XResolution Rational 1 72/1 3 | 0x011b Image YResolution Rational 1 72/1 4 | 0x0128 Image ResolutionUnit Short 1 2 5 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 6 | 0x0213 Image YCbCrPositioning Short 1 1 7 | 0x8769 Image ExifTag Long 1 122 8 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 9 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 10 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 11 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 12 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 13 | 0xa001 Photo ColorSpace Short 1 65535 14 | 0xa002 Photo PixelXDimension Long 1 64 15 | 0xa003 Photo PixelYDimension Long 1 64 16 | -------------------------------------------------------------------------------- /tests/data/test089.result: -------------------------------------------------------------------------------- 1 | test.jpg: Removed GPS tags. 2 | 0x011a Image XResolution Rational 1 72/1 3 | 0x011b Image YResolution Rational 1 72/1 4 | 0x0128 Image ResolutionUnit Short 1 2 5 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 6 | 0x0213 Image YCbCrPositioning Short 1 1 7 | 0x8769 Image ExifTag Long 1 122 8 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 9 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 10 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 11 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 12 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 13 | 0xa001 Photo ColorSpace Short 1 65535 14 | 0xa002 Photo PixelXDimension Long 1 64 15 | 0xa003 Photo PixelYDimension Long 1 64 16 | -------------------------------------------------------------------------------- /tests/staging/track13.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2012-11-22T12:34:40Z 5 | 6 | 7 | -424.0 8 | 9 | 186 10 | 11 | 12 | -424.0 13 | 14 | 5 15 | 16 | 17 | -422.7741523 18 | 19 | 280 20 | 21 | 22 | 23 | 24 | -421.9119287 25 | 26 | 290 27 | 28 | 29 | -420.4048414 30 | 31 | 320 32 | 33 | 34 | -419.2974105 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /tests/data/test061.param: -------------------------------------------------------------------------------- 1 | TITLE='Remove GPS tags with --no-mtime' 2 | # This is a strange way to test this, but I haven't found a better means that's 3 | # both simple && highly portable. This method just compares the relative mtime 4 | # of the file under test and a just-created file with ls -t and ensures that 5 | # the file under test is older than the other. 6 | # 7 | # This makes several assumptions: 8 | # 1) the filesystem and ls command operate at one second resolution 9 | # 2) when two files have the same mtime, ls -t will output them in 10 | # lexicographic order 11 | # The failure of either assumption is designed to cause a false negative 12 | # result, so they should not disrupt operation of the test suite. 13 | PRECOMMAND='cat "$STAGINGDIR/withgps.jpg" >"$LOGDIR/test.jpg" && touch -t 201001020304.05 "$LOGDIR/test.jpg" && touch "$LOGDIR/ztest.jpg"' 14 | COMMAND='$PROGRAM --no-mtime --remove "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && ls -t "$LOGDIR/ztest.jpg" "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 15 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg" "$LOGDIR/ztest.jpg"' 16 | RESULTCODE=0 17 | SEDCOMMAND='s@^.*/@@' # strip paths 18 | -------------------------------------------------------------------------------- /tests/data/test022.param: -------------------------------------------------------------------------------- 1 | TITLE='Test --no-mtime option' 2 | # This is a strange way to test this, but I haven't found a better means that's 3 | # both simple && highly portable. This method just compares the relative mtime 4 | # of the file under test and a just-created file with ls -t and ensures that 5 | # the file under test is older than the other. 6 | # 7 | # This makes several assumptions: 8 | # 1) the filesystem and ls command operate at one second resolution 9 | # 2) when two files have the same mtime, ls -t will output them in 10 | # lexicographic order 11 | # The failure of either assumption is designed to cause a false negative 12 | # result, so they should not disrupt operation of the test suite. 13 | PRECOMMAND='cat "$STAGINGDIR/point1-1.jpg" >"$LOGDIR/test.jpg" && touch -t 201001020304.05 "$LOGDIR/test.jpg" && touch "$LOGDIR/ztest.jpg"' 14 | COMMAND='$PROGRAM --no-mtime -z 0 -g "$STAGINGDIR/track1.gpx" "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && ls -t "$LOGDIR/ztest.jpg" "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 15 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg" "$LOGDIR/ztest.jpg"' 16 | RESULTCODE=0 17 | SEDCOMMAND='s@/[^ ].*/@@' # strip paths 18 | -------------------------------------------------------------------------------- /gpx-read.h: -------------------------------------------------------------------------------- 1 | /* gpx-read.h 2 | * Originally written by Daniel Foote. 3 | * 4 | * This file contains prototypes for the functions 5 | * in gpx-read.c. 6 | */ 7 | 8 | /* Copyright 2005-2016 Daniel Foote, Dan Fandrich. 9 | * 10 | * This file is part of gpscorrelate. 11 | * 12 | * gpscorrelate is free software; you can redistribute it and/or modify 13 | * it under the terms of the GNU General Public License as published by 14 | * the Free Software Foundation; either version 2 of the License, or 15 | * (at your option) any later version. 16 | * 17 | * gpscorrelate is distributed in the hope that it will be useful, 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | * GNU General Public License for more details. 21 | * 22 | * You should have received a copy of the GNU General Public License 23 | * along with gpscorrelate; if not, write to the Free Software 24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 25 | */ 26 | 27 | struct GPSTrack; 28 | 29 | int ReadGPX(const char* File, struct GPSTrack* Track); 30 | void FreeTrack(struct GPSTrack* Track); 31 | -------------------------------------------------------------------------------- /tests/staging/timeback.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2012-11-22T12:34:40Z 5 | 6 | 7 | 400 8 | 9 | 10 | 11 | 12 | 13 | 500 14 | 15 | 16 | 17 | 490 18 | 19 | 20 | 21 | 510 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /tests/staging/track3.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2012-11-22T12:34:40Z 5 | 6 | 7 | -422.7741523 8 | 9 | 10 | 11 | 12 | 13 | -421.9119287 14 | 15 | 16 | 17 | -420.4048414 18 | 19 | 20 | 21 | -419.2974105 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /tests/staging/track17.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2012-11-22T12:34:40Z 5 | 6 | 7 | -422.7741523 8 | 9 | 10 | 11 | 12 | 13 | -421.9119287 14 | 5.4321 15 | 16 | 17 | 18 | -420.4048414 19 | 20 | 21 | 22 | -419.2974105 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/data/test060.param: -------------------------------------------------------------------------------- 1 | TITLE='Test that --no-mtime is implied by --fix-datestamps' 2 | # This is a strange way to test this, but I haven't found a better means that's 3 | # both simple && highly portable. This method just compares the relative mtime 4 | # of the file under test and a just-created file with ls -t and ensures that 5 | # the file under test is older than the other. 6 | # 7 | # This makes several assumptions: 8 | # 1) the filesystem and ls command operate at one second resolution 9 | # 2) when two files have the same mtime, ls -t will output them in 10 | # lexicographic order 11 | # The failure of either assumption is designed to cause a false negative 12 | # result, so they should not disrupt operation of the test suite. 13 | PRECOMMAND='cat "$STAGINGDIR/baddate.jpg" >"$LOGDIR/test.jpg" && touch -t 201001020304.05 "$LOGDIR/test.jpg" && touch "$LOGDIR/ztest.jpg"' 14 | # Run in C locale to avoid errors when comparing days of week in output 15 | COMMAND='env LC_TIME=C $PROGRAM --fix-datestamps -z -7 "$LOGDIR/test.jpg" > "$OUTFILE" 2>&1 && ls -t "$LOGDIR/ztest.jpg" "$LOGDIR/test.jpg" >> "$OUTFILE" 2>&1' 16 | POSTCOMMAND='rm -f "$LOGDIR/test.jpg" "$LOGDIR/ztest.jpg"' 17 | RESULTCODE=0 18 | SEDCOMMAND='s@([a-zA-Z]:)?/[^ ].*/@@' # strip paths 19 | -------------------------------------------------------------------------------- /latlong.h: -------------------------------------------------------------------------------- 1 | /* latlong.h 2 | * 3 | * This file contains prototypes and other things for 4 | * latitude/longitude functions. 5 | */ 6 | 7 | /* Copyright 2016-2023 Dan Fandrich. 8 | * 9 | * This file is part of gpscorrelate. 10 | * 11 | * gpscorrelate is free software; you can redistribute it and/or modify 12 | * it under the terms of the GNU General Public License as published by 13 | * the Free Software Foundation; either version 2 of the License, or 14 | * (at your option) any later version. 15 | * 16 | * gpscorrelate is distributed in the hope that it will be useful, 17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 | * GNU General Public License for more details. 20 | * 21 | * You should have received a copy of the GNU General Public License 22 | * along with gpscorrelate; if not, write to the Free Software 23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 | */ 25 | 26 | #include 27 | 28 | struct GPSPoint *NewGPSPoint(void); 29 | int ParseLatLong(const char *latlongstr, struct GPSPoint* point); 30 | int MakeTrackFromLatLong(const struct GPSPoint* latlong, int direction, struct GPSTrack* track); 31 | int NumDecimals(const char *Decimal); 32 | 33 | -------------------------------------------------------------------------------- /tests/staging/track5.gpx: -------------------------------------------------------------------------------- 1 | Garmin International10-AOU-12 20:17:52Red382.87366.90 -------------------------------------------------------------------------------- /.github/workflows/codeql.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL" 2 | 3 | on: 4 | push: 5 | branches: [ "master", "ci" ] 6 | pull_request: 7 | branches: [ "master" ] 8 | schedule: 9 | # monthly analysis 10 | - cron: "47 0 15 * *" 11 | 12 | permissions: 13 | contents: read 14 | 15 | jobs: 16 | analyze: 17 | name: Analyze 18 | runs-on: ubuntu-latest 19 | permissions: 20 | actions: read 21 | contents: read 22 | security-events: write 23 | 24 | strategy: 25 | fail-fast: false 26 | matrix: 27 | language: [ cpp ] 28 | 29 | steps: 30 | - name: Checkout 31 | uses: actions/checkout@v5 32 | 33 | - name: Initialize CodeQL 34 | uses: github/codeql-action/init@v4 35 | with: 36 | languages: ${{ matrix.language }} 37 | queries: +security-and-quality 38 | # install prerequisites 39 | - run: sudo apt-get update && sudo apt-get install -y --no-install-suggests --no-install-recommends exiv2 libexiv2-dev libgtk-3-dev 40 | 41 | # build and check 42 | - run: make -j2 CFLAGS="-g -O0 -DENABLE_NLS=1" gpscorrelate gpscorrelate-gui && make check 43 | 44 | - name: Perform CodeQL Analysis 45 | uses: github/codeql-action/analyze@v4 46 | with: 47 | category: "/language:${{ matrix.language }}" 48 | -------------------------------------------------------------------------------- /tests/staging/track15.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Simulated Garmin track with both bearing/course extensions 5 | 6 | 7 | -421.91 8 | 9 | 10 | 11 | 2.61 12 | 289.76 13 | 14 | 15 | 16 | 17 | -420.40 18 | 19 | 20 | 21 | 2.21 22 | 320.12 23 | 333.33 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /unixtime.h: -------------------------------------------------------------------------------- 1 | /* unixtime.h 2 | * Originally written by Daniel Foote. 3 | * 4 | * This file contains prototypes and other things for 5 | * the Unix time functions. 6 | */ 7 | 8 | /* Copyright 2005-2024 Daniel Foote, Dan Fandrich. 9 | * 10 | * This file is part of gpscorrelate. 11 | * 12 | * gpscorrelate is free software; you can redistribute it and/or modify 13 | * it under the terms of the GNU General Public License as published by 14 | * the Free Software Foundation; either version 2 of the License, or 15 | * (at your option) any later version. 16 | * 17 | * gpscorrelate is distributed in the hope that it will be useful, 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 | * GNU General Public License for more details. 21 | * 22 | * You should have received a copy of the GNU General Public License 23 | * along with gpscorrelate; if not, write to the Free Software 24 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 25 | */ 26 | 27 | #include 28 | #include 29 | 30 | // The EXIF date/time format extended to subsecond resolution 31 | #define EXIF_DATE_FORMAT "%d:%d:%d %d:%d:%d.%9[0-9]" 32 | #define GPX_DATE_FORMAT "%d-%d-%dT%d:%d:%dZ" 33 | 34 | struct timespec ConvertToUnixTime(const char* StringTime, const char* Format, 35 | long TZOffset); 36 | int CompareTimes(struct timespec a, time_t b); 37 | -------------------------------------------------------------------------------- /tests/staging/track16.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Simulated Garmin track with both bearing/course extensions 5 | 6 | 7 | -421.91 8 | 9 | 10 | 11 | 2.61 12 | 289.76 13 | 14 | 15 | 16 | 17 | -420.40 18 | 19 | 20 | 21 | 2.21 22 | 320.12 23 | 333.33 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /tests/data/test015.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: . 6 | 7 | Completed correlation process. 8 | Matched: 1 (1 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | 0x011a Image XResolution Rational 1 72/1 12 | 0x011b Image YResolution Rational 1 72/1 13 | 0x0128 Image ResolutionUnit Short 1 2 14 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 15 | 0x0213 Image YCbCrPositioning Short 1 1 16 | 0x8769 Image ExifTag Long 1 122 17 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 18 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 19 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 20 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 21 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 22 | 0xa001 Photo ColorSpace Short 1 65535 23 | 0xa002 Photo PixelXDimension Long 1 64 24 | 0xa003 Photo PixelYDimension Long 1 64 25 | -------------------------------------------------------------------------------- /tests/staging/track14.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -422.0 8 | 9 | 10 | 0.9200000166893005 11 | 279.3272247314453 12 | 3.0 13 | 14 | 15 | 16 | 17 | 18 | -421.9119287 19 | 20 | 21 | 0.9200000166893005 22 | 290.4948572714921 23 | 3.0 24 | 25 | 26 | 27 | -420.4048414 28 | 29 | 30 | 0.9200000166893005 31 | 320.1098572737215 32 | 3.0 33 | 34 | 35 | 36 | -419.2974105 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /i18n.h: -------------------------------------------------------------------------------- 1 | /* i18n.h 2 | * 3 | * This file contains internationalization macros and includes 4 | */ 5 | 6 | /* 7 | * Copyright © 2001-2012 Lutz Müller et. al. 8 | * 9 | * This library is free software; you can redistribute it and/or 10 | * modify it under the terms of the GNU Lesser General Public 11 | * License as published by the Free Software Foundation; either 12 | * version 2 of the License, or (at your option) any later version. 13 | * 14 | * This library is distributed in the hope that it will be useful, 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 17 | * Lesser General Public License for more details. 18 | * 19 | * You should have received a copy of the GNU Lesser General Public 20 | * License along with this library; if not, write to the 21 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 22 | * Boston, MA 02111-1307, USA. 23 | */ 24 | 25 | #ifdef ENABLE_NLS 26 | # include 27 | # undef _ 28 | # define _(String) gettext (String) 29 | # ifdef gettext_noop 30 | # define N_(String) gettext_noop (String) 31 | # else 32 | # define N_(String) (String) 33 | # endif 34 | #else 35 | # define textdomain(String) (String) 36 | # define gettext(String) (String) 37 | # define ngettext(String1,String2,Count) (Count==1?String1:String2) 38 | # define dgettext(Domain,Message) (Message) 39 | # define dcgettext(Domain,Message,Type) (Message) 40 | # define bindtextdomain(Domain,Directory) (Domain) 41 | # define bind_textdomain_codeset(Domain,Codeset) (Domain) 42 | # define _(String) (String) 43 | # define N_(String) (String) 44 | #endif 45 | 46 | #define TEXTDOMAIN "gpscorrelate" 47 | -------------------------------------------------------------------------------- /gpsstructure.h: -------------------------------------------------------------------------------- 1 | /* gpsstructure.h 2 | * Originally ritten by Daniel Foote. 3 | * 4 | * This file contains the structure that stores 5 | * GPS data points. Placed here so that several things 6 | * could share it. 7 | */ 8 | 9 | /* Copyright 2005-2025 Daniel Foote, Dan Fandrich. 10 | * 11 | * This file is part of gpscorrelate. 12 | * 13 | * gpscorrelate is free software; you can redistribute it and/or modify 14 | * it under the terms of the GNU General Public License as published by 15 | * the Free Software Foundation; either version 2 of the License, or 16 | * (at your option) any later version. 17 | * 18 | * gpscorrelate is distributed in the hope that it will be useful, 19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 | * GNU General Public License for more details. 22 | * 23 | * You should have received a copy of the GNU General Public License 24 | * along with gpscorrelate; if not, write to the Free Software 25 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 26 | */ 27 | 28 | /* This data structure describes a single point. 29 | * The NewGpsPoint() function allocates an initialized one. */ 30 | 31 | struct GPSPoint { 32 | double Lat; 33 | int LatDecimals; 34 | double Long; 35 | int LongDecimals; 36 | double Elev; 37 | int ElevDecimals; 38 | double HDOP; 39 | double MoveHeading; 40 | double Heading; 41 | char HeadingRef; // Direction reference: byte "T" meaning true direction 42 | // or "M" meaning magnetic direction. 43 | time_t Time; 44 | int EndOfSegment; 45 | struct GPSPoint* Next; 46 | }; 47 | 48 | struct GPSTrack { 49 | struct GPSPoint* Points; 50 | time_t MinTime; 51 | time_t MaxTime; 52 | }; 53 | -------------------------------------------------------------------------------- /exif-gps.h: -------------------------------------------------------------------------------- 1 | /* exif-gps.h 2 | * Originally written by Daniel Foote. 3 | * 4 | * This file contains the prototypes for the functions 5 | * in exif-gps.cpp. 6 | * These are declared extern "C" to prevent name 7 | * mangling, as C++ has a habit of doing. 8 | */ 9 | 10 | /* Copyright 2005-2024 Daniel Foote, Dan Fandrich. 11 | * 12 | * This file is part of gpscorrelate. 13 | * 14 | * gpscorrelate is free software; you can redistribute it and/or modify 15 | * it under the terms of the GNU General Public License as published by 16 | * the Free Software Foundation; either version 2 of the License, or 17 | * (at your option) any later version. 18 | * 19 | * gpscorrelate is distributed in the hope that it will be useful, 20 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 21 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22 | * GNU General Public License for more details. 23 | * 24 | * You should have received a copy of the GNU General Public License 25 | * along with gpscorrelate; if not, write to the Free Software 26 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 27 | */ 28 | 29 | #ifdef __cplusplus 30 | extern "C" { 31 | #endif 32 | 33 | #include 34 | 35 | // No offset time tag was found in photo 36 | #define NO_OFFSET_TIME INT_MIN 37 | 38 | char* ReadExifData(const char* File, int* IncludesGPS, double* Lat, double* Long, double* Elevation, 39 | long *OffsetTime); 40 | char* ReadGPSTimestamp(const char* File, char* DateStamp, char* TimeStamp, int* IncludesGPS); 41 | int WriteGPSData(const char* File, const struct GPSPoint* Point, 42 | const char* Datum, int NoChangeMtime, int DegMinSecs); 43 | int WriteFixedDatestamp(const char* File, struct timespec TimeStamp); 44 | int RemoveGPSExif(const char* File, int NoChangeMtime, int NoWriteExif); 45 | 46 | #ifdef __cplusplus 47 | } 48 | #endif 49 | 50 | -------------------------------------------------------------------------------- /tests/data/test109.result: -------------------------------------------------------------------------------- 1 | test.jpg: Removed GPS tags. 2 | 0x011a Image XResolution Rational 1 72/1 3 | 0x011b Image YResolution Rational 1 72/1 4 | 0x0128 Image ResolutionUnit Short 1 2 5 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 6 | 0x0213 Image YCbCrPositioning Short 1 1 7 | 0x8769 Image ExifTag Long 1 134 8 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 9 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 10 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 11 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 12 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 13 | 0xa001 Photo ColorSpace Short 1 65535 14 | 0xa002 Photo PixelXDimension Long 1 64 15 | 0xa003 Photo PixelYDimension Long 1 64 16 | 0x8825 Image GPSTag Long 1 276 17 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 18 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 19 | 0x0002 GPSInfo GPSLatitude Rational 3 37/1 25/1 13504/1000 20 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 21 | 0x0004 GPSInfo GPSLongitude Rational 3 122/1 5/1 2497/1000 22 | 0x0005 GPSInfo GPSAltitudeRef Byte 1 0 23 | 0x0006 GPSInfo GPSAltitude Rational 1 10/1 24 | 0x0007 GPSInfo GPSTimeStamp Rational 3 12/1 34/1 56/1 25 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 26 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 27 | -------------------------------------------------------------------------------- /tests/staging/track8.gpx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Leap Year 5 | 6 | Leap Year on GPSies.com 7 | 8 | 9 | 10 | round trip 11 | 13.0647521613 12 | 5.72705 13 | 1.975585 14 | 1062.874731 15 | 1067.200667 16 | 17 | 18 | 19 | Leap Year on GPSies.com 20 | 21 | 22 | 23 | 1062.8747 24 | 25 | 26 | 27 | 1062.8747 28 | 29 | 30 | 31 | 1064.3166 32 | 33 | 34 | 35 | 1067.2006 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /po/Makevars: -------------------------------------------------------------------------------- 1 | # Makefile variables for PO directory in any package using GNU gettext. 2 | 3 | # Usually the message domain is the same as the package name. 4 | DOMAIN = gpscorrelate 5 | 6 | # These two variables depend on the location of this directory. 7 | subdir = po 8 | top_builddir = .. 9 | 10 | # These options get passed to xgettext. 11 | XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --from-code=utf-8 12 | 13 | # This is the copyright holder that gets inserted into the header of the 14 | # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding 15 | # package. (Note that the msgstr strings, extracted from the package's 16 | # sources, belong to the copyright holder of the package.) Translators are 17 | # expected to transfer the copyright for their translations to this person 18 | # or entity, or to disclaim their copyright. The empty string stands for 19 | # the public domain; in this case the translators are expected to disclaim 20 | # their copyright. 21 | COPYRIGHT_HOLDER = Daniel Foote, Dan Fandrich 22 | 23 | # This is the email address or URL to which the translators shall report 24 | # bugs in the untranslated strings: 25 | # - Strings which are not entire sentences, see the maintainer guidelines 26 | # in the GNU gettext documentation, section 'Preparing Strings'. 27 | # - Strings which use unclear terms or require additional context to be 28 | # understood. 29 | # - Strings which make invalid assumptions about notation of date, time or 30 | # money. 31 | # - Pluralisation problems. 32 | # - Incorrect English spelling. 33 | # - Incorrect formatting. 34 | # It can be your email address, or a mailing list address where translators 35 | # can write to without being subscribed, or the URL of a web page through 36 | # which the translators can contact you. 37 | MSGID_BUGS_ADDRESS = dan@coneharvesters.com 38 | 39 | # This is the list of locale categories, beyond LC_MESSAGES, for which the 40 | # message catalogs shall be used. It is usually empty. 41 | EXTRA_LOCALE_CATEGORIES = 42 | -------------------------------------------------------------------------------- /tests/data/test082.result: -------------------------------------------------------------------------------- 1 | test.jpg: Wrong timestamp: 2 | Photo: Thu Nov 22 06:35:00 2012 UTC 3 | GPS: Sat Dec 22 05:35:00 2012 UTC 4 | Corrected: Thu Nov 22 06:35:00 2012 UTC 5 | 0x011a Image XResolution Rational 1 72/1 6 | 0x011b Image YResolution Rational 1 72/1 7 | 0x0128 Image ResolutionUnit Short 1 2 8 | 0x0132 Image DateTime Ascii 20 2012:11:21 23:35:00 9 | 0x0213 Image YCbCrPositioning Short 1 1 10 | 0x8769 Image ExifTag Long 1 134 11 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 12 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:21 23:35:00 13 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:21 23:35:00 14 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 15 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 16 | 0xa001 Photo ColorSpace Short 1 65535 17 | 0xa002 Photo PixelXDimension Long 1 64 18 | 0xa003 Photo PixelYDimension Long 1 64 19 | 0x8825 Image GPSTag Long 1 276 20 | 0x0000 GPSInfo GPSVersionID Byte 4 2 0 0 0 21 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 22 | 0x0002 GPSInfo GPSLatitude Rational 1 3742033/100000 23 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 24 | 0x0004 GPSInfo GPSLongitude Rational 1 12208400/100000 25 | 0x0005 GPSInfo GPSAltitudeRef Byte 1 0 26 | 0x0006 GPSInfo GPSAltitude SRational 1 10/1 27 | 0x0007 GPSInfo GPSTimeStamp Rational 3 6/1 35/1 0/1 28 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 29 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 30 | -------------------------------------------------------------------------------- /tests/data/test079.result: -------------------------------------------------------------------------------- 1 | test.jpg: Wrong timestamp: 2 | Photo: Thu Nov 22 06:35:00 2012 UTC 3 | GPS: Sat Dec 22 05:35:00 2012 UTC 4 | Corrected: Thu Nov 22 06:35:00 2012 UTC 5 | 0x011a Image XResolution Rational 1 72/1 6 | 0x011b Image YResolution Rational 1 72/1 7 | 0x0128 Image ResolutionUnit Short 1 2 8 | 0x0132 Image DateTime Ascii 20 2012:11:21 23:35:00 9 | 0x0213 Image YCbCrPositioning Short 1 1 10 | 0x8769 Image ExifTag Long 1 134 11 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 12 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:21 23:35:00 13 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:21 23:35:00 14 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 15 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 16 | 0xa001 Photo ColorSpace Short 1 65535 17 | 0xa002 Photo PixelXDimension Long 1 64 18 | 0xa003 Photo PixelYDimension Long 1 64 19 | 0x8825 Image GPSTag Long 1 276 20 | 0x0000 GPSInfo GPSVersionID Byte 4 2 0 0 0 21 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 22 | 0x0002 GPSInfo GPSLatitude SRational 3 37/1 2522/100 0/1 23 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 24 | 0x0004 GPSInfo GPSLongitude SRational 3 122/1 504/100 0/1 25 | 0x0005 GPSInfo GPSAltitudeRef Byte 1 0 26 | 0x0006 GPSInfo GPSAltitude SRational 1 10/1 27 | 0x0007 GPSInfo GPSTimeStamp SRational 3 5/1 35/1 0/1 28 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 29 | 0x001d GPSInfo GPSDateStamp SRational 3 2012/1 12/1 22/1 30 | -------------------------------------------------------------------------------- /main-gui.c: -------------------------------------------------------------------------------- 1 | /* main-gui.c 2 | * Originally written by Daniel Foote. 3 | * 4 | * GTK GUI program to correlate photos with GPS data. 5 | * Uses common parts of a command line version of the same. 6 | * Just this time, with a pretty GUI to make it all simple and easy. */ 7 | 8 | /* Although I did not start out with a clear idea of the contents 9 | * of this file, I had thought it would be a little more than a "stub" 10 | * to get the GUI up and running. However, this seems to work for me! 11 | * All the action really happens in gui.c. */ 12 | 13 | /* Copyright 2005-2024 Daniel Foote, Dan Fandrich. 14 | * 15 | * This file is part of gpscorrelate. 16 | * 17 | * gpscorrelate is free software; you can redistribute it and/or modify 18 | * it under the terms of the GNU General Public License as published by 19 | * the Free Software Foundation; either version 2 of the License, or 20 | * (at your option) any later version. 21 | * 22 | * gpscorrelate is distributed in the hope that it will be useful, 23 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 24 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25 | * GNU General Public License for more details. 26 | * 27 | * You should have received a copy of the GNU General Public License 28 | * along with gpscorrelate; if not, write to the Free Software 29 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 30 | */ 31 | 32 | #include 33 | 34 | #include 35 | 36 | #include "i18n.h" 37 | #include "gui.h" 38 | 39 | int main(int argc, char* argv[]) 40 | { 41 | /* Initialize gettext (gtk_init initializes the locale) */ 42 | (void) bindtextdomain(TEXTDOMAIN, PACKAGE_LOCALE_DIR); 43 | (void) textdomain(TEXTDOMAIN); 44 | (void) bind_textdomain_codeset(TEXTDOMAIN, "UTF-8"); 45 | 46 | /* Get GTK ready, as appropriate. 47 | * (We ignore passed parameters) */ 48 | gtk_init(&argc, &argv); 49 | 50 | /* Create and show the window. */ 51 | CreateMatchWindow(); 52 | 53 | /* Start the main loop. And we're off! */ 54 | gtk_main(); 55 | 56 | return 0; 57 | } 58 | 59 | -------------------------------------------------------------------------------- /tests/data/test110.result: -------------------------------------------------------------------------------- 1 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 2 | w = Write Fail, ? = No EXIF date, ! = GPS already present 3 | 4 | Correlate: / 5 | 6 | Completed correlation process. 7 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 8 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 9 | 0 No Date, 0 GPS Already Present.) 10 | 0x011a Image XResolution Rational 1 72/1 11 | 0x011b Image YResolution Rational 1 72/1 12 | 0x0128 Image ResolutionUnit Short 1 2 13 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 14 | 0x0213 Image YCbCrPositioning Short 1 1 15 | 0x8769 Image ExifTag Long 1 134 16 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 17 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 18 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 19 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 20 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 21 | 0xa001 Photo ColorSpace Short 1 65535 22 | 0xa002 Photo PixelXDimension Long 1 64 23 | 0xa003 Photo PixelYDimension Long 1 64 24 | 0x8825 Image GPSTag Long 1 276 25 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 26 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 27 | 0x0002 GPSInfo GPSLatitude Rational 3 34/1 56/1 7/1 28 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 29 | 0x0004 GPSInfo GPSLongitude Rational 3 87/1 6/1 54/1 30 | 0x0007 GPSInfo GPSTimeStamp Rational 3 11/1 34/1 56/1 31 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 32 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 33 | -------------------------------------------------------------------------------- /tests/data/test099.result: -------------------------------------------------------------------------------- 1 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 2 | w = Write Fail, ? = No EXIF date, ! = GPS already present 3 | 4 | Correlate: / 5 | 6 | Completed correlation process. 7 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 8 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 9 | 0 No Date, 0 GPS Already Present.) 10 | 0x011a Image XResolution Rational 1 72/1 11 | 0x011b Image YResolution Rational 1 72/1 12 | 0x0128 Image ResolutionUnit Short 1 2 13 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 14 | 0x0213 Image YCbCrPositioning Short 1 1 15 | 0x8769 Image ExifTag Long 1 134 16 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 17 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 18 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 19 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 20 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 21 | 0xa001 Photo ColorSpace Short 1 65535 22 | 0xa002 Photo PixelXDimension Long 1 64 23 | 0xa003 Photo PixelYDimension Long 1 64 24 | 0x8825 Image GPSTag Long 1 276 25 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 26 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 S 27 | 0x0002 GPSInfo GPSLatitude Rational 3 89/1 0/1 4/1000 28 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 E 29 | 0x0004 GPSInfo GPSLongitude Rational 3 179/1 54/1 0/1 30 | 0x0007 GPSInfo GPSTimeStamp Rational 3 11/1 34/1 56/1 31 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 32 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 33 | -------------------------------------------------------------------------------- /tests/data/test100.result: -------------------------------------------------------------------------------- 1 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 2 | w = Write Fail, ? = No EXIF date, ! = GPS already present 3 | 4 | Correlate: / 5 | 6 | Completed correlation process. 7 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 8 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 9 | 0 No Date, 0 GPS Already Present.) 10 | 0x011a Image XResolution Rational 1 72/1 11 | 0x011b Image YResolution Rational 1 72/1 12 | 0x0128 Image ResolutionUnit Short 1 2 13 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 14 | 0x0213 Image YCbCrPositioning Short 1 1 15 | 0x8769 Image ExifTag Long 1 134 16 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 17 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 18 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 19 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 20 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 21 | 0xa001 Photo ColorSpace Short 1 65535 22 | 0xa002 Photo PixelXDimension Long 1 64 23 | 0xa003 Photo PixelYDimension Long 1 64 24 | 0x8825 Image GPSTag Long 1 276 25 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 26 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 S 27 | 0x0002 GPSInfo GPSLatitude Rational 3 34/1 56/1 89/10 28 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 29 | 0x0004 GPSInfo GPSLongitude Rational 3 90/1 0/1 5911111/100000 30 | 0x0007 GPSInfo GPSTimeStamp Rational 3 11/1 34/1 56/1 31 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 32 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 33 | -------------------------------------------------------------------------------- /tests/data/test104.result: -------------------------------------------------------------------------------- 1 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 2 | w = Write Fail, ? = No EXIF date, ! = GPS already present 3 | 4 | Correlate: / 5 | 6 | Completed correlation process. 7 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 8 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 9 | 0 No Date, 0 GPS Already Present.) 10 | 0x011a Image XResolution Rational 1 72/1 11 | 0x011b Image YResolution Rational 1 72/1 12 | 0x0128 Image ResolutionUnit Short 1 2 13 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 14 | 0x0213 Image YCbCrPositioning Short 1 1 15 | 0x8769 Image ExifTag Long 1 134 16 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 17 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 18 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 19 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 20 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 21 | 0xa001 Photo ColorSpace Short 1 65535 22 | 0xa002 Photo PixelXDimension Long 1 64 23 | 0xa003 Photo PixelYDimension Long 1 64 24 | 0x8825 Image GPSTag Long 1 276 25 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 26 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 27 | 0x0002 GPSInfo GPSLatitude Rational 3 89/1 0/1 590000/10000 28 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 E 29 | 0x0004 GPSInfo GPSLongitude Rational 3 179/1 59/1 59000/1000 30 | 0x0007 GPSInfo GPSTimeStamp Rational 3 11/1 34/1 56/1 31 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 32 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 33 | -------------------------------------------------------------------------------- /tests/data/test113.result: -------------------------------------------------------------------------------- 1 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 2 | w = Write Fail, ? = No EXIF date, ! = GPS already present 3 | 4 | Correlate: / 5 | 6 | Completed correlation process. 7 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 8 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 9 | 0 No Date, 0 GPS Already Present.) 10 | 0x011a Image XResolution Rational 1 72/1 11 | 0x011b Image YResolution Rational 1 72/1 12 | 0x0128 Image ResolutionUnit Short 1 2 13 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 14 | 0x0213 Image YCbCrPositioning Short 1 1 15 | 0x8769 Image ExifTag Long 1 134 16 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 17 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 18 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 19 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 20 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 21 | 0xa001 Photo ColorSpace Short 1 65535 22 | 0xa002 Photo PixelXDimension Long 1 64 23 | 0xa003 Photo PixelYDimension Long 1 64 24 | 0x8825 Image GPSTag Long 1 276 25 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 26 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 S 27 | 0x0002 GPSInfo GPSLatitude Rational 3 34/1 56/1 89/10 28 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 29 | 0x0004 GPSInfo GPSLongitude Rational 3 90/1 0/1 5911111/100000 30 | 0x0007 GPSInfo GPSTimeStamp Rational 3 11/1 34/1 56/1 31 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 32 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 33 | -------------------------------------------------------------------------------- /tests/data/test103.result: -------------------------------------------------------------------------------- 1 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 2 | w = Write Fail, ? = No EXIF date, ! = GPS already present 3 | 4 | Correlate: / 5 | 6 | Completed correlation process. 7 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 8 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 9 | 0 No Date, 0 GPS Already Present.) 10 | 0x011a Image XResolution Rational 1 72/1 11 | 0x011b Image YResolution Rational 1 72/1 12 | 0x0128 Image ResolutionUnit Short 1 2 13 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 14 | 0x0213 Image YCbCrPositioning Short 1 1 15 | 0x8769 Image ExifTag Long 1 134 16 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 17 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 18 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 19 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 20 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 21 | 0xa001 Photo ColorSpace Short 1 65535 22 | 0xa002 Photo PixelXDimension Long 1 64 23 | 0xa003 Photo PixelYDimension Long 1 64 24 | 0x8825 Image GPSTag Long 1 276 25 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 26 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 S 27 | 0x0002 GPSInfo GPSLatitude Rational 3 89/1 59/1 599999/10000 28 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 29 | 0x0004 GPSInfo GPSLongitude Rational 3 179/1 59/1 59999/1000 30 | 0x0007 GPSInfo GPSTimeStamp Rational 3 11/1 34/1 56/1 31 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 32 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 33 | -------------------------------------------------------------------------------- /tests/data/test044.result: -------------------------------------------------------------------------------- 1 | test.jpg: Wrong timestamp: 2 | Photo: Thu Nov 22 06:35:00 2012 UTC 3 | GPS: Sat Dec 22 05:35:00 2012 UTC 4 | Corrected: Thu Nov 22 06:35:00 2012 UTC 5 | 0x011a Image XResolution Rational 1 72/1 6 | 0x011b Image YResolution Rational 1 72/1 7 | 0x0128 Image ResolutionUnit Short 1 2 8 | 0x0132 Image DateTime Ascii 20 2012:11:21 23:35:00 9 | 0x0213 Image YCbCrPositioning Short 1 1 10 | 0x8769 Image ExifTag Long 1 134 11 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 12 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:21 23:35:00 13 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:21 23:35:00 14 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 15 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 16 | 0xa001 Photo ColorSpace Short 1 65535 17 | 0xa002 Photo PixelXDimension Long 1 64 18 | 0xa003 Photo PixelYDimension Long 1 64 19 | 0x8825 Image GPSTag Long 1 276 20 | 0x0000 GPSInfo GPSVersionID Byte 4 2 0 0 0 21 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 22 | 0x0002 GPSInfo GPSLatitude SRational 3 37/1 2522/100 0/1 23 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 24 | 0x0004 GPSInfo GPSLongitude SRational 3 122/1 504/100 0/1 25 | 0x0005 GPSInfo GPSAltitudeRef Byte 1 0 26 | 0x0006 GPSInfo GPSAltitude SRational 1 10/1 27 | 0x0007 GPSInfo GPSTimeStamp Rational 3 6/1 35/1 0/1 28 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 29 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 30 | test.jpg: Timestamp is OK: Photo 2012:11:21 23:35:00 (localtime), GPS 2012:11:22 06:35:00 (UTC). 31 | -------------------------------------------------------------------------------- /tests/data/test048.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: . 6 | 7 | Completed correlation process. 8 | Matched: 1 (1 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | 0x011a Image XResolution Rational 1 72/1 12 | 0x011b Image YResolution Rational 1 72/1 13 | 0x0128 Image ResolutionUnit Short 1 2 14 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 15 | 0x0213 Image YCbCrPositioning Short 1 1 16 | 0x8769 Image ExifTag Long 1 134 17 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 18 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 19 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 20 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 21 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 22 | 0xa001 Photo ColorSpace Short 1 65535 23 | 0xa002 Photo PixelXDimension Long 1 64 24 | 0xa003 Photo PixelYDimension Long 1 64 25 | 0x8825 Image GPSTag Long 1 276 26 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 27 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 28 | 0x0002 GPSInfo GPSLatitude Rational 3 37/1 25/1 13505/1000 29 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 30 | 0x0004 GPSInfo GPSLongitude Rational 3 122/1 5/1 2497/1000 31 | 0x0007 GPSInfo GPSTimeStamp Rational 3 12/1 34/1 56/1 32 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 33 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 34 | -------------------------------------------------------------------------------- /tests/data/test062.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: . 6 | 7 | Completed correlation process. 8 | Matched: 1 (1 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | 0x011a Image XResolution Rational 1 72/1 12 | 0x011b Image YResolution Rational 1 72/1 13 | 0x0128 Image ResolutionUnit Short 1 2 14 | 0x0132 Image DateTime Ascii 20 2001:11:04 16:52:58 15 | 0x0213 Image YCbCrPositioning Short 1 1 16 | 0x8769 Image ExifTag Long 1 134 17 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 18 | 0x9003 Photo DateTimeOriginal Ascii 20 2001:11:04 16:52:58 19 | 0x9004 Photo DateTimeDigitized Ascii 20 2001:11:04 16:52:58 20 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 21 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 22 | 0xa001 Photo ColorSpace Short 1 65535 23 | 0xa002 Photo PixelXDimension Long 1 64 24 | 0xa003 Photo PixelYDimension Long 1 64 25 | 0x8825 Image GPSTag Long 1 276 26 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 27 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 S 28 | 0x0002 GPSInfo GPSLatitude Rational 3 19/1 40/1 16619/1000 29 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 30 | 0x0004 GPSInfo GPSLongitude Rational 3 174/1 17/1 22060/1000 31 | 0x0007 GPSInfo GPSTimeStamp Rational 3 6/1 52/1 58/1 32 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 33 | 0x001d GPSInfo GPSDateStamp Ascii 11 2001:11:05 34 | -------------------------------------------------------------------------------- /tests/data/test069.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: . 6 | 7 | Completed correlation process. 8 | Matched: 1 (1 Exact, 0 Interpolated, 0 Rounded). 9 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | 0x011a Image XResolution Rational 1 72/1 12 | 0x011b Image YResolution Rational 1 72/1 13 | 0x0128 Image ResolutionUnit Short 1 2 14 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 15 | 0x0213 Image YCbCrPositioning Short 1 1 16 | 0x8769 Image ExifTag Long 1 134 17 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 18 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 19 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 20 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 21 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 22 | 0xa001 Photo ColorSpace Short 1 65535 23 | 0xa002 Photo PixelXDimension Long 1 64 24 | 0xa003 Photo PixelYDimension Long 1 64 25 | 0x8825 Image GPSTag Long 1 276 26 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 27 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 28 | 0x0002 GPSInfo GPSLatitude Rational 3 37/1 25/1 13505/1000 29 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 W 30 | 0x0004 GPSInfo GPSLongitude Rational 3 122/1 5/1 2497/1000 31 | 0x0007 GPSInfo GPSTimeStamp Rational 3 12/1 34/1 56/1 32 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 33 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 34 | -------------------------------------------------------------------------------- /tests/data/test073.result: -------------------------------------------------------------------------------- 1 | Reading GPS Data... 2 | Legend: . = Ok, / = Interpolated, < = Rounded, - = No match, ^ = Too far 3 | w = Write Fail, ? = No EXIF date, ! = GPS already present 4 | 5 | Correlate: / 6 | 7 | Completed correlation process. 8 | Matched: 1 (0 Exact, 1 Interpolated, 0 Rounded). 9 | Failed: 0 (0 Not matched, 0 Write failure, 0 Too Far, 10 | 0 No Date, 0 GPS Already Present.) 11 | 0x011a Image XResolution Rational 1 72/1 12 | 0x011b Image YResolution Rational 1 72/1 13 | 0x0128 Image ResolutionUnit Short 1 2 14 | 0x0132 Image DateTime Ascii 20 2012:11:22 12:34:56 15 | 0x0213 Image YCbCrPositioning Short 1 1 16 | 0x8769 Image ExifTag Long 1 134 17 | 0x9000 Photo ExifVersion Undefined 4 48 50 49 48 18 | 0x9003 Photo DateTimeOriginal Ascii 20 2012:11:22 12:34:56 19 | 0x9004 Photo DateTimeDigitized Ascii 20 2012:11:22 12:34:56 20 | 0x9101 Photo ComponentsConfiguration Undefined 4 1 2 3 0 21 | 0xa000 Photo FlashpixVersion Undefined 4 48 49 48 48 22 | 0xa001 Photo ColorSpace Short 1 65535 23 | 0xa002 Photo PixelXDimension Long 1 64 24 | 0xa003 Photo PixelYDimension Long 1 64 25 | 0x8825 Image GPSTag Long 1 276 26 | 0x0000 GPSInfo GPSVersionID Byte 4 2 2 0 0 27 | 0x0001 GPSInfo GPSLatitudeRef Ascii 2 N 28 | 0x0002 GPSInfo GPSLatitude Rational 3 47/1 25/1 16449600/1000000 29 | 0x0003 GPSInfo GPSLongitudeRef Ascii 2 E 30 | 0x0004 GPSInfo GPSLongitude Rational 3 10/1 59/1 6888000/1000000 31 | 0x0007 GPSInfo GPSTimeStamp Rational 3 12/1 34/1 56/1 32 | 0x0012 GPSInfo GPSMapDatum Ascii 7 WGS-84 33 | 0x001d GPSInfo GPSDateStamp Ascii 11 2012:11:22 34 | --------------------------------------------------------------------------------