Feature #992
Better raw file support and test
0%
Description
See topic: 1817
New lens identifications by using Lensfun's RAW database. http://dev.exiv2.org/boards/3/topics/1817
Related issues
History
Updated by Robin Mills almost 7 years ago
Forum discussion 1873: http://dev.exiv2.org/boards/3/topics/1873
Updated by Robin Mills over 6 years ago
I've linked this report to #995 Writing Exif to TIFF-like Hasselblad RAW *.3fr
I've also discovered this site which has sample images for many raw formats: http://www.rawsamples.ch/index.php/en/
Thanks to Tuan's webready code, we will be able to read the metadata from those files without copying them locally.
1268 rmills@rmillsmbp:~/Downloads $ exiv2 -pS RAW_NIKON_D5300.NEF STRUCTURE OF TIFF FILE: RAW_NIKON_D5300.NEF address | tag | type | count | offset | value 10 | 0x00fe NewSubfileType | LONG | 1 | 1 | 1 22 | 0x0100 ImageWidth | LONG | 1 | 160 | 160 34 | 0x0101 ImageLength | LONG | 1 | 120 | 120 46 | 0x0102 BitsPerSample | SHORT | 3 | 328 | 58 | 0x0103 Compression | SHORT | 1 | 1 | 1 70 | 0x0106 PhotometricInterpret | SHORT | 1 | 2 | 2 82 | 0x010f Make | ASCII | 18 | 336 | NIKON CORPORATION. 94 | 0x0110 Model | ASCII | 12 | 356 | NIKON D5300. 106 | 0x0111 StripOffsets | LONG | 1 | 168448 | 37376 118 | 0x0112 Orientation | SHORT | 1 | 1 | 1 130 | 0x0115 SamplesPerPixel | SHORT | 1 | 3 | 3 142 | 0x0116 RowsPerStrip | LONG | 1 | 120 | 120 154 | 0x0117 StripByteCounts | LONG | 1 | 57600 | 57600 166 | 0x011a XResolution | RATIONAL | 1 | 368 | 178 | 0x011b YResolution | RATIONAL | 1 | 376 | 190 | 0x011c PlanarConfiguration | SHORT | 1 | 1 | 1 202 | 0x0128 ResolutionUnit | SHORT | 1 | 2 | 2 214 | 0x0131 Software | ASCII | 10 | 384 | Ver.1.00 . 226 | 0x0132 DateTime | ASCII | 20 | 396 | 2014:04:02 11:39:52. 238 | 0x014a SubIFDs | LONG | 3 | 416 | 250 | 0x0214 ReferenceBlackWhite | RATIONAL | 6 | 428 | 262 | 0x02bc XMLPacket | BYTE | 2048 | 476 | <?xpacket begin="..." id="W5M0Mp ... 274 | 0x8769 ExifTag | LONG | 1 | 2544 | 2544 286 | 0x8825 GPSTag | LONG | 1 | 167936 | 36864 298 | 0x9003 DateTimeOriginal | ASCII | 20 | 2524 | 2014:04:02 11:39:52. 310 | 0x9216 TIFFEPStandardID | BYTE | 4 | 1 | I*.. 1269 rmills@rmillsmbp:~/Downloads $ exiv2 -pS http://www.rawsamples.ch/raws/nikon/RAW_NIKON_D5300.NEF STRUCTURE OF TIFF FILE: http://www.rawsamples.ch/raws/nikon/RAW_NIKON_D5300.NEF address | tag | type | count | offset | value 10 | 0x00fe NewSubfileType | LONG | 1 | 1 | 1 22 | 0x0100 ImageWidth | LONG | 1 | 160 | 160 34 | 0x0101 ImageLength | LONG | 1 | 120 | 120 46 | 0x0102 BitsPerSample | SHORT | 3 | 328 | 58 | 0x0103 Compression | SHORT | 1 | 1 | 1 70 | 0x0106 PhotometricInterpret | SHORT | 1 | 2 | 2 82 | 0x010f Make | ASCII | 18 | 336 | NIKON CORPORATION. 94 | 0x0110 Model | ASCII | 12 | 356 | NIKON D5300. 106 | 0x0111 StripOffsets | LONG | 1 | 168448 | 37376 118 | 0x0112 Orientation | SHORT | 1 | 1 | 1 130 | 0x0115 SamplesPerPixel | SHORT | 1 | 3 | 3 142 | 0x0116 RowsPerStrip | LONG | 1 | 120 | 120 154 | 0x0117 StripByteCounts | LONG | 1 | 57600 | 57600 166 | 0x011a XResolution | RATIONAL | 1 | 368 | 178 | 0x011b YResolution | RATIONAL | 1 | 376 | 190 | 0x011c PlanarConfiguration | SHORT | 1 | 1 | 1 202 | 0x0128 ResolutionUnit | SHORT | 1 | 2 | 2 214 | 0x0131 Software | ASCII | 10 | 384 | Ver.1.00 . 226 | 0x0132 DateTime | ASCII | 20 | 396 | 2014:04:02 11:39:52. 238 | 0x014a SubIFDs | LONG | 3 | 416 | 250 | 0x0214 ReferenceBlackWhite | RATIONAL | 6 | 428 | 262 | 0x02bc XMLPacket | BYTE | 2048 | 476 | <?xpacket begin="..." id="W5M0Mp ... 274 | 0x8769 ExifTag | LONG | 1 | 2544 | 2544 286 | 0x8825 GPSTag | LONG | 1 | 167936 | 36864 298 | 0x9003 DateTimeOriginal | ASCII | 20 | 2524 | 2014:04:02 11:39:52. 310 | 0x9216 TIFFEPStandardID | BYTE | 4 | 1 | I*.. 1270 rmills@rmillsmbp:~/Downloads $
Updated by Robin Mills over 5 years ago
I think this should be considered for GSoC 2017 for the following reasons:
1 The project is essentially "time-bounded". We can make a list of file formats to be considered. They are implemented and tested one-at-a-time. Everything achieved is useful. What can't be done in the time, doesn't defeat the project.
2 The level of supervision/mentoring is quite low.
3 It has no library, build or platform dependences
4 Development can proceed on Linux. The buildserver provides multi-platform build support.
There are a couple of issues relating to SubIFDs #1182 and #668 and these should be carefully considered in this project. Perhaps we need options in exiv2 which we can switch on/off at will. One could be "allow editing of SubImage IFDs".
We should consider adding webp and webm support #1048
The video code should be reviewed and brought into a better state. #1068. However that's out of scope for #992.
Updated by Robin Mills over 5 years ago
- Assignee set to Robin Mills
- Target version changed from 1.0 to 0.28
Updated by Robin Mills about 5 years ago
I have downloaded the 5Gbyte zip of the raw files available from: https://www.rawsamples.ch/index.php/en/all-files-as-7z-archive They are now available on the buildserver at testfiles/raw and on the web at: http://exiv2.dyndns.org:8080/userContent/testfiles/raw/
I am very happy to report that exiv2 can successfully read every file. A total of 322 files.
~/Jenkins/testfiles/raw $ for i in $(find . -type f); do exiv2 -pa --verbose --grep DateTimeDigitized $i 2>/dev/null ; done | grep File | wc 322 966 13689 ~/Jenkins/testfiles/raw $ (for i in $(find . -type f); do echo $i; done) | wc 322 322 10469 ~/Jenkins/testfiles/raw $