TagDefinitions.h revision 4510de26e5361f3a9f07057ec6f26483c888c1fa
1/*
2 * Copyright 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef IMG_UTILS_TIFF_TAG_DEFINITION_H
18#define IMG_UTILS_TIFF_TAG_DEFINITION_H
19
20#include <img_utils/TiffEntry.h>
21#include <img_utils/Output.h>
22#include <img_utils/TiffHelpers.h>
23#include <stdint.h>
24
25namespace android {
26namespace img_utils {
27
28/**
29 * Tag definitions contain information about standard TIFF compatible tags.
30 */
31typedef struct TagDefinition {
32    // The tag name.
33    const char* tagName;
34    // The specified tag ID.
35    const uint16_t tagId;
36    // The default type for this tag.  This must be a valid TIFF type.
37    const TagType defaultType;
38    // The default Image File Directory (IFD) for this tag.
39    const uint32_t defaultIfd;
40    // The valid count for this tag, or 0 if the count is not fixed.
41    const uint32_t fixedCount;
42    // The endianness of the tag value, or UNDEFINED_ENDIAN if there is no fixed endian
43    const Endianness fixedEndian;
44} TagDefinition_t;
45
46/**
47 * Convenience defines for tag ids.
48 */
49enum {
50    TAG_RAWTOPREVIEWGAIN = 0xC7A8u,
51    TAG_NEWRAWIMAGEDIGEST = 0xC7A7u,
52    TAG_ORIGINALDEFAULTCROPSIZE = 0xC793u,
53    TAG_ORIGINALBESTQUALITYFINALSIZE = 0xC792u,
54    TAG_ORIGINALDEFAULTFINALSIZE = 0xC791u,
55    TAG_PROFILEHUESATMAPENCODING = 0xC7A3u,
56    TAG_PROFILELOOKTABLEENCODING = 0xC7A4u,
57    TAG_BASELINEEXPOSUREOFFSET = 0xC7A5u,
58    TAG_DEFAULTBLACKRENDER = 0xC7A6u,
59    TAG_DEFAULTUSERCROP = 0xC7B5u,
60    TAG_NOISEPROFILE = 0xC761u,
61    TAG_OPCODELIST3 = 0xC74Eu,
62    TAG_OPCODELIST2 = 0xC741u,
63    TAG_OPCODELIST1 = 0xC740u,
64    TAG_PROFILELOOKTABLEDATA = 0xC726u,
65    TAG_PROFILELOOKTABLEDIMS = 0xC725u,
66    TAG_ROWINTERLEAVEFACTOR = 0xC71Fu,
67    TAG_SUBTILEBLOCKSIZE = 0xC71Eu,
68    TAG_ORIGINALRAWFILEDIGEST = 0xC71Du,
69    TAG_RAWIMAGEDIGEST = 0xC71Cu,
70    TAG_PREVIEWDATETIME = 0xC71Bu,
71    TAG_PREVIEWCOLORSPACE = 0xC71Au,
72    TAG_PREVIEWSETTINGSDIGEST = 0xC719u,
73    TAG_PREVIEWSETTINGSNAME = 0xC718u,
74    TAG_PREVIEWAPPLICATIONVERSION = 0xC717u,
75    TAG_PREVIEWAPPLICATIONNAME = 0xC716u,
76    TAG_FORWARDMATRIX2 = 0xC715u,
77    TAG_FORWARDMATRIX1 = 0xC714u,
78    TAG_PROFILECOPYRIGHT = 0xC6FEu,
79    TAG_PROFILEEMBEDPOLICY = 0xC6FDu,
80    TAG_PROFILETONECURVE = 0xC6FCu,
81    TAG_PROFILEHUESATMAPDATA2 = 0xC6FBu,
82    TAG_PROFILEHUESATMAPDATA1 = 0xC6FAu,
83    TAG_PROFILEHUESATMAPDIMS = 0xC6F9u,
84    TAG_PROFILENAME = 0xC6F8u,
85    TAG_NOISEREDUCTIONAPPLIED = 0xC6F7u,
86    TAG_ASSHOTPROFILENAME = 0xC6F6u,
87    TAG_EXTRACAMERAPROFILES = 0xC6F5u,
88    TAG_PROFILECALIBRATIONSIGNATURE = 0xC6F4u,
89    TAG_CAMERACALIBRATIONSIGNATURE = 0xC6F3u,
90    TAG_COLORIMETRICREFERENCE = 0xC6BFu,
91    TAG_CURRENTPREPROFILEMATRIX = 0xC692u,
92    TAG_CURRENTICCPROFILE = 0xC691u,
93    TAG_ASSHOTPREPROFILEMATRIX = 0xC690u,
94    TAG_ASSHOTICCPROFILE = 0xC68Fu,
95    TAG_MASKEDAREAS = 0xC68Eu,
96    TAG_ACTIVEAREA = 0xC68Du,
97    TAG_ORIGINALRAWFILEDATA = 0xC68Cu,
98    TAG_ORIGINALRAWFILENAME = 0xC68Bu,
99    TAG_RAWDATAUNIQUEID = 0xC65Du,
100    TAG_MAKERNOTESAFETY = 0xC635u,
101    TAG_DNGPRIVATEDATA = 0xC634u,
102    TAG_SHADOWSCALE = 0xC633u,
103    TAG_ANTIALIASSTRENGTH = 0xC632u,
104    TAG_CHROMABLURRADIUS = 0xC631u,
105    TAG_LENSINFO = 0xC630u,
106    TAG_CAMERASERIALNUMBER = 0xC62Fu,
107    TAG_LINEARRESPONSELIMIT = 0xC62Eu,
108    TAG_BAYERGREENSPLIT = 0xC62Du,
109    TAG_BASELINESHARPNESS = 0xC62Cu,
110    TAG_BASELINENOISE = 0xC62Bu,
111    TAG_BASELINEEXPOSURE = 0xC62Au,
112    TAG_ASSHOTWHITEXY = 0xC629u,
113    TAG_ASSHOTNEUTRAL = 0xC628u,
114    TAG_ANALOGBALANCE = 0xC627u,
115    TAG_REDUCTIONMATRIX2 = 0xC626u,
116    TAG_REDUCTIONMATRIX1 = 0xC625u,
117    TAG_CAMERACALIBRATION2 = 0xC624u,
118    TAG_CAMERACALIBRATION1 = 0xC623u,
119    TAG_COLORMATRIX2 = 0xC622u,
120    TAG_COLORMATRIX1 = 0xC621u,
121    TAG_CALIBRATIONILLUMINANT2 = 0xC65Bu,
122    TAG_CALIBRATIONILLUMINANT1 = 0xC65Au,
123    TAG_DEFAULTCROPSIZE = 0xC620u,
124    TAG_DEFAULTCROPORIGIN = 0xC61Fu,
125    TAG_BESTQUALITYSCALE = 0xC65Cu,
126    TAG_DEFAULTSCALE = 0xC61Eu,
127    TAG_WHITELEVEL = 0xC61Du,
128    TAG_BLACKLEVELDELTAV = 0xC61Cu,
129    TAG_BLACKLEVELDELTAH = 0xC61Bu,
130    TAG_BLACKLEVEL = 0xC61Au,
131    TAG_BLACKLEVELREPEATDIM = 0xC619u,
132    TAG_LINEARIZATIONTABLE = 0xC618u,
133    TAG_CFALAYOUT = 0xC617u,
134    TAG_CFAPLANECOLOR = 0xC616u,
135    TAG_LOCALIZEDCAMERAMODEL = 0xC615u,
136    TAG_UNIQUECAMERAMODEL = 0xC614u,
137    TAG_DNGBACKWARDVERSION = 0xC613u,
138    TAG_DNGVERSION = 0xC612u,
139    TAG_SUBFILETYPE = 0x00FFu,
140    TAG_YRESOLUTION = 0x011Bu,
141    TAG_XRESOLUTION = 0x011Au,
142    TAG_THRESHHOLDING = 0x0107u,
143    TAG_STRIPOFFSETS = 0x0111u,
144    TAG_STRIPBYTECOUNTS = 0x0117u,
145    TAG_SOFTWARE = 0x0131u,
146    TAG_SAMPLESPERPIXEL = 0x0115u,
147    TAG_ROWSPERSTRIP = 0x0116u,
148    TAG_RESOLUTIONUNIT = 0x0128u,
149    TAG_PLANARCONFIGURATION = 0x011Cu,
150    TAG_PHOTOMETRICINTERPRETATION = 0x0106u,
151    TAG_ORIENTATION = 0x0112u,
152    TAG_NEWSUBFILETYPE = 0x00FEu,
153    TAG_MODEL = 0x0110u,
154    TAG_MINSAMPLEVALUE = 0x0118u,
155    TAG_MAXSAMPLEVALUE = 0x0119u,
156    TAG_MAKE = 0x010Fu,
157    TAG_IMAGEWIDTH = 0x0100u,
158    TAG_IMAGELENGTH = 0x0101u,
159    TAG_IMAGEDESCRIPTION = 0x010Eu,
160    TAG_HOSTCOMPUTER = 0x013Cu,
161    TAG_GRAYRESPONSEUNIT = 0x0122u,
162    TAG_GRAYRESPONSECURVE = 0x0123u,
163    TAG_FREEOFFSETS = 0x0120u,
164    TAG_FREEBYTECOUNTS = 0x0121u,
165    TAG_FILLORDER = 0x010Au,
166    TAG_EXTRASAMPLES = 0x0152u,
167    TAG_DATETIME = 0x0132u,
168    TAG_COPYRIGHT = 0x8298u,
169    TAG_COMPRESSION = 0x0103u,
170    TAG_COLORMAP = 0x0140u,
171    TAG_CELLWIDTH = 0x0108u,
172    TAG_CELLLENGTH = 0x0109u,
173    TAG_BITSPERSAMPLE = 0x0102u,
174    TAG_ARTIST = 0x013Bu,
175    TAG_EXIFVERSION = 0x9000u,
176    TAG_CFAREPEATPATTERNDIM = 0x828Du,
177    TAG_DATETIMEORIGINAL = 0x9003u,
178    TAG_CFAPATTERN = 0x828Eu,
179    TAG_SUBIFDS = 0x014Au,
180    TAG_TIFFEPSTANDARDID = 0x9216u,
181    TAG_EXPOSURETIME = 0x829Au,
182    TAG_ISOSPEEDRATINGS = 0x8827u,
183    TAG_FOCALLENGTH = 0x920Au,
184    TAG_FNUMBER = 0x829Du,
185    TAG_GPSINFO = 0x8825u,
186    TAG_GPSVERSIONID = 0x0u,
187    TAG_GPSLATITUDEREF = 0x1u,
188    TAG_GPSLATITUDE = 0x2u,
189    TAG_GPSLONGITUDEREF = 0x3u,
190    TAG_GPSLONGITUDE = 0x4u,
191    TAG_GPSTIMESTAMP = 0x7u,
192    TAG_GPSDATESTAMP = 0x001Du,
193};
194
195/**
196 * TIFF_EP_TAG_DEFINITIONS contains tags defined in the TIFF EP spec
197 */
198const TagDefinition_t TIFF_EP_TAG_DEFINITIONS[] =  {
199    { // PhotometricInterpretation
200        "PhotometricInterpretation",
201        0x0106u,
202        SHORT,
203        IFD_0,
204        1,
205        UNDEFINED_ENDIAN
206    },
207    { // SubIfds
208        "SubIfds",
209        0x014Au,
210        LONG,
211        IFD_0,
212        0,
213        UNDEFINED_ENDIAN
214    },
215    { // CFAPattern
216        "CFAPattern",
217        0x828Eu,
218        BYTE,
219        IFD_0,
220        0,
221        UNDEFINED_ENDIAN
222    },
223    { // CFARepeatPatternDim
224        "CFARepeatPatternDim",
225        0x828Du,
226        SHORT,
227        IFD_0,
228        2,
229        UNDEFINED_ENDIAN
230    },
231    { // DateTimeOriginal
232        "DateTimeOriginal",
233        0x9003u,
234        ASCII,
235        IFD_0,
236        20,
237        UNDEFINED_ENDIAN
238    },
239    { // Tiff/EPStandardID
240        "Tiff",
241        0x9216u,
242        BYTE,
243        IFD_0,
244        4,
245        UNDEFINED_ENDIAN
246    },
247    { // ExposureTime
248        "ExposureTime",
249        0x829Au,
250        RATIONAL,
251        IFD_0,
252        0,
253        UNDEFINED_ENDIAN
254    },
255    { // ISOSpeedRatings
256        "ISOSpeedRatings",
257        0x8827u,
258        SHORT,
259        IFD_0,
260        0,
261        UNDEFINED_ENDIAN
262    },
263    { // FocalLength
264        "FocalLength",
265        0x920Au,
266        RATIONAL,
267        IFD_0,
268        0,
269        UNDEFINED_ENDIAN
270    },
271    { // FNumber
272        "FNumber",
273        0x829Du,
274        RATIONAL,
275        IFD_0,
276        0,
277        UNDEFINED_ENDIAN
278    },
279    { // GPSInfo
280        "GPSInfo",
281        0x8825u,
282        LONG,
283        IFD_0,
284        1,
285        UNDEFINED_ENDIAN
286    },
287    { // GPSVersionID
288        "GPSVersionID",
289        0x0u,
290        BYTE,
291        IFD_0,
292        4,
293        UNDEFINED_ENDIAN
294    },
295    { // GPSLatitudeRef
296        "GPSLatitudeRef",
297        0x1u,
298        ASCII,
299        IFD_0,
300        2,
301        UNDEFINED_ENDIAN
302    },
303    { // GPSLatitude
304        "GPSLatitude",
305        0x2u,
306        RATIONAL,
307        IFD_0,
308        3,
309        UNDEFINED_ENDIAN
310    },
311    { // GPSLongitudeRef
312        "GPSLongitudeRef",
313        0x3u,
314        ASCII,
315        IFD_0,
316        2,
317        UNDEFINED_ENDIAN
318    },
319    { // GPSLongitude
320        "GPSLongitude",
321        0x4u,
322        RATIONAL,
323        IFD_0,
324        3,
325        UNDEFINED_ENDIAN
326    },
327    { // GPSTimeStamp
328        "GPSTimeStamp",
329        0x7u,
330        RATIONAL,
331        IFD_0,
332        3,
333        UNDEFINED_ENDIAN
334    },
335    /*TODO: Remaining TIFF EP tags*/
336};
337
338/**
339 * EXIF_2_3_TAG_DEFINITIONS contains tags defined in the Jeita EXIF 2.3 spec
340 */
341const TagDefinition_t EXIF_2_3_TAG_DEFINITIONS[] = {
342    { // ExifVersion
343        "ExifVersion",
344        0x9000u,
345        UNDEFINED,
346        IFD_0,
347        4,
348        UNDEFINED_ENDIAN
349    },
350    { // GPSDateStamp
351        "GPSDateStamp",
352        0x001Du,
353        ASCII,
354        IFD_0,
355        11,
356        UNDEFINED_ENDIAN
357    },
358    /*TODO: Remaining EXIF 2.3 tags*/
359};
360
361/**
362 * TIFF_6_TAG_DEFINITIONS contains tags defined in the TIFF 6.0 spec
363 */
364const TagDefinition_t TIFF_6_TAG_DEFINITIONS[] = {
365    { // SubFileType
366        "SubFileType",
367        0x00FFu,
368        SHORT,
369        IFD_0,
370        1,
371        UNDEFINED_ENDIAN
372    },
373    { // Artist
374        "Artist",
375        0x013Bu,
376        ASCII,
377        IFD_0,
378        0,
379        UNDEFINED_ENDIAN
380    },
381    { // BitsPerSample
382        "BitsPerSample",
383        0x0102u,
384        SHORT,
385        IFD_0,
386        0,
387        UNDEFINED_ENDIAN
388    },
389    { // CellLength
390        "CellLength",
391        0x0109u,
392        SHORT,
393        IFD_0,
394        1,
395        UNDEFINED_ENDIAN
396    },
397    { // CellWidth
398        "CellWidth",
399        0x0108u,
400        SHORT,
401        IFD_0,
402        1,
403        UNDEFINED_ENDIAN
404    },
405    { // ColorMap
406        "ColorMap",
407        0x0140u,
408        SHORT,
409        IFD_0,
410        0,
411        UNDEFINED_ENDIAN
412    },
413    { // Compression
414        "Compression",
415        0x0103u,
416        SHORT,
417        IFD_0,
418        1,
419        UNDEFINED_ENDIAN
420    },
421    { // Copyright
422        "Copyright",
423        0x8298u,
424        ASCII,
425        IFD_0,
426        0,
427        UNDEFINED_ENDIAN
428    },
429    { // DateTime
430        "DateTime",
431        0x0132u,
432        ASCII,
433        IFD_0,
434        20,
435        UNDEFINED_ENDIAN
436    },
437    { // ExtraSamples
438        "ExtraSamples",
439        0x0152u,
440        SHORT,
441        IFD_0,
442        0,
443        UNDEFINED_ENDIAN
444    },
445    { // FillOrder
446        "FillOrder",
447        0x010Au,
448        SHORT,
449        IFD_0,
450        1,
451        UNDEFINED_ENDIAN
452    },
453    { // FreeByteCounts
454        "FreeByteCounts",
455        0x0121u,
456        LONG,
457        IFD_0,
458        1,
459        UNDEFINED_ENDIAN
460    },
461    { // FreeOffsets
462        "FreeOffsets",
463        0x0120u,
464        LONG,
465        IFD_0,
466        1,
467        UNDEFINED_ENDIAN
468    },
469    { // GrayResponseCurve
470        "GrayResponseCurve",
471        0x0123u,
472        SHORT,
473        IFD_0,
474        0,
475        UNDEFINED_ENDIAN
476    },
477    { // GrayResponseUnit
478        "GrayResponseUnit",
479        0x0122u,
480        SHORT,
481        IFD_0,
482        1,
483        UNDEFINED_ENDIAN
484    },
485    { // HostComputer
486        "HostComputer",
487        0x013Cu,
488        ASCII,
489        IFD_0,
490        0,
491        UNDEFINED_ENDIAN
492    },
493    { // ImageDescription
494        "ImageDescription",
495        0x010Eu,
496        ASCII,
497        IFD_0,
498        0,
499        UNDEFINED_ENDIAN
500    },
501    { // ImageLength
502        "ImageLength",
503        0x0101u,
504        LONG,
505        IFD_0,
506        1,
507        UNDEFINED_ENDIAN
508    },
509    { // ImageWidth
510        "ImageWidth",
511        0x0100u,
512        LONG,
513        IFD_0,
514        1,
515        UNDEFINED_ENDIAN
516    },
517    { // Make
518        "Make",
519        0x010Fu,
520        ASCII,
521        IFD_0,
522        0,
523        UNDEFINED_ENDIAN
524    },
525    { // MaxSampleValue
526        "MaxSampleValue",
527        0x0119u,
528        SHORT,
529        IFD_0,
530        0,
531        UNDEFINED_ENDIAN
532    },
533    { // MinSampleValue
534        "MinSampleValue",
535        0x0118u,
536        SHORT,
537        IFD_0,
538        0,
539        UNDEFINED_ENDIAN
540    },
541    { // Model
542        "Model",
543        0x0110u,
544        ASCII,
545        IFD_0,
546        0,
547        UNDEFINED_ENDIAN
548    },
549    { // NewSubfileType
550        "NewSubfileType",
551        0x00FEu,
552        LONG,
553        IFD_0,
554        1,
555        UNDEFINED_ENDIAN
556    },
557    { // Orientation
558        "Orientation",
559        0x0112u,
560        SHORT,
561        IFD_0,
562        1,
563        UNDEFINED_ENDIAN
564    },
565    { // PhotoMetricInterpretation
566        "PhotoMetricInterpretation",
567        0x0106u,
568        SHORT,
569        IFD_0,
570        1,
571        UNDEFINED_ENDIAN
572    },
573    { // PlanarConfiguration
574        "PlanarConfiguration",
575        0x011Cu,
576        SHORT,
577        IFD_0,
578        1,
579        UNDEFINED_ENDIAN
580    },
581    { // ResolutionUnit
582        "ResolutionUnit",
583        0x0128u,
584        SHORT,
585        IFD_0,
586        1,
587        UNDEFINED_ENDIAN
588    },
589    { // RowsPerStrip
590        "RowsPerStrip",
591        0x0116u,
592        LONG,
593        IFD_0,
594        1,
595        UNDEFINED_ENDIAN
596    },
597    { // SamplesPerPixel
598        "SamplesPerPixel",
599        0x0115u,
600        SHORT,
601        IFD_0,
602        1,
603        UNDEFINED_ENDIAN
604    },
605    { // Software
606        "Software",
607        0x0131u,
608        ASCII,
609        IFD_0,
610        0,
611        UNDEFINED_ENDIAN
612    },
613    { // StripByteCounts
614        "StripByteCounts",
615        0x0117u,
616        LONG,
617        IFD_0,
618        0,
619        UNDEFINED_ENDIAN
620    },
621    { // StripOffsets
622        "StripOffsets",
623        0x0111u,
624        LONG,
625        IFD_0,
626        0,
627        UNDEFINED_ENDIAN
628    },
629    { // SubfileType
630        "SubfileType",
631        0x00FFu,
632        SHORT,
633        IFD_0,
634        1,
635        UNDEFINED_ENDIAN
636    },
637    { // Threshholding
638        "Threshholding",
639        0x0107u,
640        SHORT,
641        IFD_0,
642        1,
643        UNDEFINED_ENDIAN
644    },
645    { // XResolution
646        "XResolution",
647        0x011Au,
648        RATIONAL,
649        IFD_0,
650        1,
651        UNDEFINED_ENDIAN
652    },
653    { // YResolution
654        "YResolution",
655        0x011Bu,
656        RATIONAL,
657        IFD_0,
658        1,
659        UNDEFINED_ENDIAN
660    },
661};
662
663/**
664 * DNG_TAG_DEFINITIONS contains tags defined in the DNG 1.4 spec
665 */
666const TagDefinition_t DNG_TAG_DEFINITIONS[] = {
667    { // DNGVersion
668        "DNGVersion",
669        0xC612u,
670        BYTE,
671        IFD_0,
672        4,
673        UNDEFINED_ENDIAN
674    },
675    { // DNGBackwardVersion
676        "DNGBackwardVersion",
677        0xC613u,
678        BYTE,
679        IFD_0,
680        4,
681        UNDEFINED_ENDIAN
682    },
683    { // UniqueCameraModel
684        "UniqueCameraModel",
685        0xC614u,
686        ASCII,
687        IFD_0,
688        0,
689        UNDEFINED_ENDIAN
690    },
691    { // LocalizedCameraModel
692        "LocalizedCameraModel",
693        0xC615u,
694        ASCII,
695        IFD_0,
696        0,
697        UNDEFINED_ENDIAN
698    },
699    { // CFAPlaneColor
700        "CFAPlaneColor",
701        0xC616u,
702        BYTE,
703        RAW_IFD,
704        0,
705        UNDEFINED_ENDIAN
706    },
707    { // CFALayout
708        "CFALayout",
709        0xC617u,
710        SHORT,
711        RAW_IFD,
712        1,
713        UNDEFINED_ENDIAN
714    },
715    { // LinearizationTable
716        "LinearizationTable",
717        0xC618u,
718        SHORT,
719        RAW_IFD,
720        0,
721        UNDEFINED_ENDIAN
722    },
723    { // BlackLevelRepeatDim
724        "BlackLevelRepeatDim",
725        0xC619u,
726        SHORT,
727        RAW_IFD,
728        2,
729        UNDEFINED_ENDIAN
730    },
731    { // BlackLevel
732        "BlackLevel",
733        0xC61Au,
734        LONG,
735        RAW_IFD,
736        0,
737        UNDEFINED_ENDIAN
738    },
739    { // BlackLevelDeltaH
740        "BlackLevelDeltaH",
741        0xC61Bu,
742        SRATIONAL,
743        RAW_IFD,
744        0,
745        UNDEFINED_ENDIAN
746    },
747    { // BlackLevelDeltaV
748        "BlackLevelDeltaV",
749        0xC61Cu,
750        SRATIONAL,
751        RAW_IFD,
752        0,
753        UNDEFINED_ENDIAN
754    },
755    { // WhiteLevel
756        "WhiteLevel",
757        0xC61Du,
758        LONG,
759        RAW_IFD,
760        0,
761        UNDEFINED_ENDIAN
762    },
763    { // DefaultScale
764        "DefaultScale",
765        0xC61Eu,
766        RATIONAL,
767        RAW_IFD,
768        2,
769        UNDEFINED_ENDIAN
770    },
771    { // BestQualityScale
772        "BestQualityScale",
773        0xC65Cu,
774        RATIONAL,
775        RAW_IFD,
776        1,
777        UNDEFINED_ENDIAN
778    },
779    { // DefaultCropOrigin
780        "DefaultCropOrigin",
781        0xC61Fu,
782        LONG,
783        RAW_IFD,
784        2,
785        UNDEFINED_ENDIAN
786    },
787    { // DefaultCropSize
788        "DefaultCropSize",
789        0xC620u,
790        LONG,
791        RAW_IFD,
792        2,
793        UNDEFINED_ENDIAN
794    },
795    { // CalibrationIlluminant1
796        "CalibrationIlluminant1",
797        0xC65Au,
798        SHORT,
799        PROFILE_IFD,
800        1,
801        UNDEFINED_ENDIAN
802    },
803    { // CalibrationIlluminant2
804        "CalibrationIlluminant2",
805        0xC65Bu,
806        SHORT,
807        PROFILE_IFD,
808        1,
809        UNDEFINED_ENDIAN
810    },
811    { // ColorMatrix1
812        "ColorMatrix1",
813        0xC621u,
814        SRATIONAL,
815        PROFILE_IFD,
816        0,
817        UNDEFINED_ENDIAN
818    },
819    { // ColorMatrix2
820        "ColorMatrix2",
821        0xC622u,
822        SRATIONAL,
823        PROFILE_IFD,
824        0,
825        UNDEFINED_ENDIAN
826    },
827    { // CameraCalibration1
828        "CameraCalibration1",
829        0xC623u,
830        SRATIONAL,
831        IFD_0,
832        0,
833        UNDEFINED_ENDIAN
834    },
835    { // CameraCalibration2
836        "CameraCalibration2",
837        0xC624u,
838        SRATIONAL,
839        IFD_0,
840        0,
841        UNDEFINED_ENDIAN
842    },
843    { // ReductionMatrix1
844        "ReductionMatrix1",
845        0xC625u,
846        SRATIONAL,
847        PROFILE_IFD,
848        0,
849        UNDEFINED_ENDIAN
850    },
851    { // ReductionMatrix2
852        "ReductionMatrix2",
853        0xC626u,
854        SRATIONAL,
855        PROFILE_IFD,
856        0,
857        UNDEFINED_ENDIAN
858    },
859    { // AnalogBalance
860        "AnalogBalance",
861        0xC627u,
862        RATIONAL,
863        IFD_0,
864        0,
865        UNDEFINED_ENDIAN
866    },
867    { // AsShotNeutral
868        "AsShotNeutral",
869        0xC628u,
870        RATIONAL,
871        IFD_0,
872        0,
873        UNDEFINED_ENDIAN
874    },
875    { // AsShotWhiteXY
876        "AsShotWhiteXY",
877        0xC629u,
878        RATIONAL,
879        IFD_0,
880        2,
881        UNDEFINED_ENDIAN
882    },
883    { // BaselineExposure
884        "BaselineExposure",
885        0xC62Au,
886        SRATIONAL,
887        IFD_0,
888        1,
889        UNDEFINED_ENDIAN
890    },
891    { // BaselineNoise
892        "BaselineNoise",
893        0xC62Bu,
894        RATIONAL,
895        IFD_0,
896        1,
897        UNDEFINED_ENDIAN
898    },
899    { // BaselineSharpness
900        "BaselineSharpness",
901        0xC62Cu,
902        RATIONAL,
903        IFD_0,
904        1,
905        UNDEFINED_ENDIAN
906    },
907    { // BayerGreenSplit
908        "BayerGreenSplit",
909        0xC62Du,
910        LONG,
911        RAW_IFD,
912        1,
913        UNDEFINED_ENDIAN
914    },
915    { // LinearResponseLimit
916        "LinearResponseLimit",
917        0xC62Eu,
918        RATIONAL,
919        IFD_0,
920        1,
921        UNDEFINED_ENDIAN
922    },
923    { // CameraSerialNumber
924        "CameraSerialNumber",
925        0xC62Fu,
926        ASCII,
927        IFD_0,
928        0,
929        UNDEFINED_ENDIAN
930    },
931    { // LensInfo
932        "LensInfo",
933        0xC630u,
934        RATIONAL,
935        IFD_0,
936        4,
937        UNDEFINED_ENDIAN
938    },
939    { // ChromaBlurRadius
940        "ChromaBlurRadius",
941        0xC631u,
942        RATIONAL,
943        RAW_IFD,
944        1,
945        UNDEFINED_ENDIAN
946    },
947    { // AntiAliasStrength
948        "AntiAliasStrength",
949        0xC632u,
950        RATIONAL,
951        RAW_IFD,
952        1,
953        UNDEFINED_ENDIAN
954    },
955    { // ShadowScale
956        "ShadowScale",
957        0xC633u,
958        RATIONAL,
959        IFD_0,
960        1,
961        UNDEFINED_ENDIAN
962    },
963    { // DNGPrivateData
964        "DNGPrivateData",
965        0xC634u,
966        BYTE,
967        IFD_0,
968        0,
969        UNDEFINED_ENDIAN
970    },
971    { // MakerNoteSafety
972        "MakerNoteSafety",
973        0xC635u,
974        SHORT,
975        IFD_0,
976        1,
977        UNDEFINED_ENDIAN
978    },
979    { // RawDataUniqueID
980        "RawDataUniqueID",
981        0xC65Du,
982        BYTE,
983        IFD_0,
984        16,
985        UNDEFINED_ENDIAN
986    },
987    { // OriginalRawFileName
988        "OriginalRawFileName",
989        0xC68Bu,
990        ASCII,
991        IFD_0,
992        0,
993        UNDEFINED_ENDIAN
994    },
995    { // OriginalRawFileData
996        "OriginalRawFileData",
997        0xC68Cu,
998        UNDEFINED,
999        IFD_0,
1000        0,
1001        BIG
1002    },
1003    { // ActiveArea
1004        "ActiveArea",
1005        0xC68Du,
1006        LONG,
1007        RAW_IFD,
1008        4,
1009        UNDEFINED_ENDIAN
1010    },
1011    { // MaskedAreas
1012        "MaskedAreas",
1013        0xC68Eu,
1014        LONG,
1015        RAW_IFD,
1016        0,
1017        UNDEFINED_ENDIAN
1018    },
1019    { // AsShotICCProfile
1020        "AsShotICCProfile",
1021        0xC68Fu,
1022        UNDEFINED,
1023        IFD_0,
1024        0,
1025        UNDEFINED_ENDIAN
1026    },
1027    { // AsShotPreProfileMatrix
1028        "AsShotPreProfileMatrix",
1029        0xC690u,
1030        SRATIONAL,
1031        IFD_0,
1032        0,
1033        UNDEFINED_ENDIAN
1034    },
1035    { // CurrentICCProfile
1036        "CurrentICCProfile",
1037        0xC691u,
1038        UNDEFINED,
1039        IFD_0,
1040        0,
1041        UNDEFINED_ENDIAN
1042    },
1043    { // CurrentICCProfile
1044        "CurrentICCProfile",
1045        0xC691u,
1046        UNDEFINED,
1047        IFD_0,
1048        0,
1049        UNDEFINED_ENDIAN
1050    },
1051    { // CurrentPreProfileMatrix
1052        "CurrentPreProfileMatrix",
1053        0xC692u,
1054        SRATIONAL,
1055        IFD_0,
1056        0,
1057        UNDEFINED_ENDIAN
1058    },
1059    { // ColorimetricReference
1060        "ColorimetricReference",
1061        0xC6BFu,
1062        SHORT,
1063        IFD_0,
1064        1,
1065        UNDEFINED_ENDIAN
1066    },
1067    { // CameraCalibrationSignature
1068        "CameraCalibrationSignature",
1069        0xC6F3u,
1070        ASCII,
1071        IFD_0,
1072        0,
1073        UNDEFINED_ENDIAN
1074    },
1075    { // ProfileCalibrationSignature
1076        "ProfileCalibrationSignature",
1077        0xC6F4u,
1078        ASCII,
1079        PROFILE_IFD,
1080        0,
1081        UNDEFINED_ENDIAN
1082    },
1083    { // ExtraCameraProfiles
1084        "ExtraCameraProfiles",
1085        0xC6F5u,
1086        LONG,
1087        IFD_0,
1088        0,
1089        UNDEFINED_ENDIAN
1090    },
1091    { // AsShotProfileName
1092        "AsShotProfileName",
1093        0xC6F6u,
1094        ASCII,
1095        IFD_0,
1096        0,
1097        UNDEFINED_ENDIAN
1098    },
1099    { // NoiseReductionApplied
1100        "NoiseReductionApplied",
1101        0xC6F7u,
1102        RATIONAL,
1103        RAW_IFD,
1104        1,
1105        UNDEFINED_ENDIAN
1106    },
1107    { // ProfileName
1108        "ProfileName",
1109        0xC6F8u,
1110        ASCII,
1111        PROFILE_IFD,
1112        0,
1113        UNDEFINED_ENDIAN
1114    },
1115    { // ProfileHueSatMapDims
1116        "ProfileHueSatMapDims",
1117        0xC6F9u,
1118        LONG,
1119        PROFILE_IFD,
1120        3,
1121        UNDEFINED_ENDIAN
1122    },
1123    { // ProfileHueSatMapData1
1124        "ProfileHueSatMapData1",
1125        0xC6FAu,
1126        FLOAT,
1127        PROFILE_IFD,
1128        0,
1129        UNDEFINED_ENDIAN
1130    },
1131    { // ProfileHueSatMapData2
1132        "ProfileHueSatMapData2",
1133        0xC6FBu,
1134        FLOAT,
1135        PROFILE_IFD,
1136        0,
1137        UNDEFINED_ENDIAN
1138    },
1139    { // ProfileToneCurve
1140        "ProfileToneCurve",
1141        0xC6FCu,
1142        FLOAT,
1143        PROFILE_IFD,
1144        0,
1145        UNDEFINED_ENDIAN
1146    },
1147    { // ProfileEmbedPolicy
1148        "ProfileEmbedPolicy",
1149        0xC6FDu,
1150        LONG,
1151        PROFILE_IFD,
1152        1,
1153        UNDEFINED_ENDIAN
1154    },
1155    { // ProfileCopyright
1156        "ProfileCopyright",
1157        0xC6FEu,
1158        ASCII,
1159        PROFILE_IFD,
1160        0,
1161        UNDEFINED_ENDIAN
1162    },
1163    { // ForwardMatrix1
1164        "ForwardMatrix1",
1165        0xC714u,
1166        SRATIONAL,
1167        PROFILE_IFD,
1168        0,
1169        UNDEFINED_ENDIAN
1170    },
1171    { // ForwardMatrix2
1172        "ForwardMatrix2",
1173        0xC715u,
1174        SRATIONAL,
1175        PROFILE_IFD,
1176        0,
1177        UNDEFINED_ENDIAN
1178    },
1179    { // PreviewApplicationName
1180        "PreviewApplicationName",
1181        0xC716u,
1182        ASCII,
1183        PREVIEW_IFD,
1184        0,
1185        UNDEFINED_ENDIAN
1186    },
1187    { // PreviewApplicationVersion
1188        "PreviewApplicationVersion",
1189        0xC717u,
1190        ASCII,
1191        PREVIEW_IFD,
1192        0,
1193        UNDEFINED_ENDIAN
1194    },
1195    { // PreviewSettingsName
1196        "PreviewSettingsName",
1197        0xC718u,
1198        ASCII,
1199        PREVIEW_IFD,
1200        0,
1201        UNDEFINED_ENDIAN
1202    },
1203    { // PreviewSettingsDigest
1204        "PreviewSettingsDigest",
1205        0xC719u,
1206        BYTE,
1207        PREVIEW_IFD,
1208        16,
1209        UNDEFINED_ENDIAN
1210    },
1211    { // PreviewColorSpace
1212        "PreviewColorSpace",
1213        0xC71Au,
1214        LONG,
1215        PREVIEW_IFD,
1216        1,
1217        UNDEFINED_ENDIAN
1218    },
1219    { // PreviewDateTime
1220        "PreviewDateTime",
1221        0xC71Bu,
1222        ASCII,
1223        PREVIEW_IFD,
1224        0,
1225        UNDEFINED_ENDIAN
1226    },
1227    { // RawImageDigest
1228        "RawImageDigest",
1229        0xC71Cu,
1230        BYTE,
1231        IFD_0,
1232        16,
1233        UNDEFINED_ENDIAN
1234    },
1235    { // OriginalRawFileDigest
1236        "OriginalRawFileDigest",
1237        0xC71Du,
1238        BYTE,
1239        IFD_0,
1240        16,
1241        UNDEFINED_ENDIAN
1242    },
1243    { // SubTileBlockSize
1244        "SubTileBlockSize",
1245        0xC71Eu,
1246        LONG,
1247        RAW_IFD,
1248        2,
1249        UNDEFINED_ENDIAN
1250    },
1251    { // RowInterleaveFactor
1252        "RowInterleaveFactor",
1253        0xC71Fu,
1254        LONG,
1255        RAW_IFD,
1256        1,
1257        UNDEFINED_ENDIAN
1258    },
1259    { // ProfileLookTableDims
1260        "ProfileLookTableDims",
1261        0xC725u,
1262        LONG,
1263        PROFILE_IFD,
1264        3,
1265        UNDEFINED_ENDIAN
1266    },
1267    { // ProfileLookTableData
1268        "ProfileLookTableData",
1269        0xC726u,
1270        FLOAT,
1271        PROFILE_IFD,
1272        0,
1273        UNDEFINED_ENDIAN
1274    },
1275    { // OpcodeList1
1276        "OpcodeList1",
1277        0xC740u,
1278        UNDEFINED,
1279        RAW_IFD,
1280        0,
1281        BIG
1282    },
1283    { // OpcodeList2
1284        "OpcodeList2",
1285        0xC741u,
1286        UNDEFINED,
1287        RAW_IFD,
1288        0,
1289        BIG
1290    },
1291    { // OpcodeList3
1292        "OpcodeList3",
1293        0xC74Eu,
1294        UNDEFINED,
1295        RAW_IFD,
1296        0,
1297        BIG
1298    },
1299    { // NoiseProfile
1300        "NoiseProfile",
1301        0xC761u,
1302        DOUBLE,
1303        RAW_IFD,
1304        0,
1305        UNDEFINED_ENDIAN
1306    },
1307    { // DefaultUserCrop
1308        "DefaultUserCrop",
1309        0xC7B5u,
1310        RATIONAL,
1311        RAW_IFD,
1312        4,
1313        UNDEFINED_ENDIAN
1314    },
1315    { // DefaultBlackRender
1316        "DefaultBlackRender",
1317        0xC7A6u,
1318        LONG,
1319        PROFILE_IFD,
1320        1,
1321        UNDEFINED_ENDIAN
1322    },
1323    { // BaselineExposureOffset
1324        "BaselineExposureOffset",
1325        0xC7A5u,
1326        RATIONAL,
1327        PROFILE_IFD,
1328        1,
1329        UNDEFINED_ENDIAN
1330    },
1331    { // ProfileLookTableEncoding
1332        "ProfileLookTableEncoding",
1333        0xC7A4u,
1334        LONG,
1335        PROFILE_IFD,
1336        1,
1337        UNDEFINED_ENDIAN
1338    },
1339    { // ProfileHueSatMapEncoding
1340        "ProfileHueSatMapEncoding",
1341        0xC7A3u,
1342        LONG,
1343        PROFILE_IFD,
1344        1,
1345        UNDEFINED_ENDIAN
1346    },
1347    { // OriginalDefaultFinalSize
1348        "OriginalDefaultFinalSize",
1349        0xC791u,
1350        LONG,
1351        IFD_0,
1352        2,
1353        UNDEFINED_ENDIAN
1354    },
1355    { // OriginalBestQualityFinalSize
1356        "OriginalBestQualityFinalSize",
1357        0xC792u,
1358        LONG,
1359        IFD_0,
1360        2,
1361        UNDEFINED_ENDIAN
1362    },
1363    { // OriginalDefaultCropSize
1364        "OriginalDefaultCropSize",
1365        0xC793u,
1366        LONG,
1367        IFD_0,
1368        2,
1369        UNDEFINED_ENDIAN
1370    },
1371    { // NewRawImageDigest
1372        "NewRawImageDigest",
1373        0xC7A7u,
1374        BYTE,
1375        IFD_0,
1376        16,
1377        UNDEFINED_ENDIAN
1378    },
1379    { // RawToPreviewGain
1380        "RawToPreviewGain",
1381        0xC7A8u,
1382        DOUBLE,
1383        PREVIEW_IFD,
1384        1,
1385        UNDEFINED_ENDIAN
1386    },
1387};
1388
1389} /*namespace img_utils*/
1390} /*namespace android*/
1391
1392#endif /*IMG_UTILS_TIFF_TAG_DEFINITION_H*/
1393