12.0.1: 2The following changes have been made since version 2.0.0: 3 4General code cleanup and bug-fixes for variables which could be 5used before being set. 6 7Fixed some missing 'break' statements in 'default' branches of several 8switch statements in print_filetype(). These apparently caused gcc 93.4.3 to abort under Linux. 10 11Updates to Minolta MakerNotes for A1 and A2 models, contributed by 12Stanislav Brabec. Also added an identifier for the DiMAGE 5, and 13updated the CamerSettings ImageSize. Now catches and flags the 14'count' bug in the 'ImageByteSize' makernote tag, rather than 15printing spurious multiple values at the ImageByteSize value used 16as an offset. 17 18In jp2000.c, 'mark' characters for file offsets were inconsistent. 19Now '@' is used for all box tags, and '=' for untagged entries. 20Also added a missing initialization for 'max_offset' in process_jp2_de(). 21 22APP sections and image data was omitted from output in LIST mode; 23now printed as 'pseudo-tags' in "@offset:length" format. Also 24print_offset_makervalue() was not printing @offset:length for 25UNDEFINED sections in REPORT mode. 26 27All 'pseudo-tags' are now marked with '*' in the address field 28(these only appear in LIST mode, where the address field is not 29enabled by default). 30 31'Tiled' jpeg images included in tiff IFDs can be compressed 32tile-by-tile. This has been seen in a few DNG images. It caused 33report of "early EOI" when the first tile EOI was found, and the 34remaining tiles ignored. The program now expands the first and 35last tile, with just tile numbers in between. 36 37The TIFF 'XML' tag now has a name. 38 39In main(), the file close was handled outside check for null file 40pointer, and would cause a core dump if no file was open. I hate 41it when that happens. 42 43ExposureInfo was not printed in CIFF directories due to an hidden 44'break' statement which caused the following code to be ignored. 45Also in CIFF, some directory entries would print with empty values 46in REPORT mode if no option was selected for output format of 47offsets. Now defaults to decimal offset. 48 49================================================================= 50 512.0.0: 52The following changes have been made since version 1.2.6: 53 54Support has been added for several "raw" camera file/image formats: 55 MRW,CIFF/CRW,X3F,RAF,JP2/JPEG2000,DNG,CR2,NEF,ORF,PEF,KDC,K25, 56and TIFF and JPEG support has been improved and generalized. In 57particular, TIFF routines have fewer expectations that interfere with 58handling of derived formats, and more information is extracted from 59JPEG markers. 60 61 62Image summaries have been improved and are now provided for all 63supported formats (not just TIFF). The new summary scheme avoids 64problems which occurred in TIFF summaries when IFD chains were longer 65than two IFDs. Summary entries are provided for all sub-images found in 66the file. 67 68 69Subtle and not-so-subtle improvements have been made in program output. 70All image sections (not just JPEG) are now reported "in place" with a 71brief hex dump of the beginning of data, and an option to dump more. 72More checks and alerts about "suspicious" file format elements are 73provided, e.g reports of JPEG_EOI found before the announced end of the 74section. LIST mode output now uses "long names" consisting of the 75entire list of parent sections of the current tag, separated by dots. 76This is more informative, and necessary to avoid duplicate names, but 77may require post-processing if the output is consumed by a script (most 78shells don't allow '.' in variable names). Short names in list mode are 79typically not useful (but suit yourself). Long names can be enabled in 80structural mode, if you like that sort of thing. 81 82 83Bug fixes: 84The program is now prepared to handle image summaries for chained 85TIFF IFDs of any length. Chained IFDs have always been handled, but 86the image summary mechanism was not prepared to handle chains longer 87than the 'usual' 2 IFDs. Thumbnails found in the first two IFDs would 88not be "forgotten" when processing later IFDs and would be reported 89repeatedly; confused data would appear in the summary. The mechanism 90would report only JPEG thumbnails and image blobs found in TIFF IFDs. 91The new summary mechanism displays and records all image sections 92found, in all supported file formats, and reports useful (and usually 93more accurate) summary information about each at the end of processing, 94including a count of images found and where they are located. 95 96 97Expanded MakerNote coverage: 98Much new data, particularly for Olympus (more tags, MakerNote subifds, 99etc), and Nikon (including preview subifd). Most of the new information 100is taken from Phil Harvey's 'ExifTool' web pages at 101 http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/index.html 102 103 104Improved MakerNote handling: 105The program now defines "noteversions" for makers that use multiple 106versions, and will attempt to choose the correct version for 107unknown models. Canon CustomFunctions have been fixed so that D30 108CustomFunctions, previously displayed for all models containing 109CustomFunctions tags, are now displayed only for D30, with additional 110noteversions for some additional models. An unrecognized Canon model 111with the CustomFunctions tag will display only the contents, with no 112attempt at interpretation. 113 114New options: 115Several new options have been added (see the manual page); 116 -B len|a print 'len' (or all) bytes of binary image 117 data or failed JPEG data 118 -C [make]+[model] print known makes and models 119 -n print filename on each line of output 120 (toggle) 121 -pl print long names (default for LIST mode) 122 (toggle) 123 -t disable color by default if output is not 124 to a tty (effective ONLY if set in 125 EXIFPROBE_OPTIONS) 126 -O offset start processing at 'offset' 127 -N noteversion force use of MakerNote version 'noteversion' 128 [a maker-specific number] 129 -u print raw 'unicode' data. Default output 130 assumes data labeled as 'UNICODE' is really 131 ascii in a bigger box, and prints just the 132 low bytes. This option enables raw printing 133 of both bytes (no translations attempted). 134 (toggle) 135 136 137Auxilliary programs: 138Some crude but sometimes useful auxiliary programs are now 139included with the distribution. 140 extract_section - extracts a section of a file given start offset 141 and length, or start and end offset (which you 142 can get from exifprobe output). An easy way to 143 extract embedded JPEGs. 144 findjpeg - scan a file for valid jpeg streams. VERY crude, 145 and not useful on mostly binary files. 146 dump_section - print a specified chunk of a file as bytes, 147 shorts, longs, or short or long rationals. 148 probetohtml - a simple shell script which uses 'sed' to convert 149 color escape sequences to font color tags and 150 generate an HTML file for the output of exifprobe. 151 reformat.sh - script to reformat LIST output to change dots to 152 underscores, remove comments, etc. to make the 153 output acceptable to a shell for sourcing. The 154 '-var' and '-export' options of exifgrep are no 155 longer adequate for that purpose. 156 157 convert_rgb_to_tiff - convert the RGB section of a Canon CR2 file to 158 a 384x256 TIFF image that anybody can see. 159 Uses ImageMagick 'convert' utility on extracted 160 d.ata 161 convert_rgb_to_jpeg - convert the RGB section of a Canon CR2 file to 162 a 384x256 JPEG image that anybody can see. 163 Uses ImageMagick 'convert' utility on extracted 164 data. 165