TagDefinitions.h revision e507721000647a7d8afe44c63ef7fd04ef8971b1
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 specified tag ID.
33    uint16_t tagId;
34    // The default type for this tag.  This must be a valid TIFF type.
35    TagType defaultType;
36    // The default Image File Directory (IFD) for this tag.
37    uint32_t defaultIfd;
38    // The valid count for this tag, or 0 if the count is not fixed.
39    uint32_t fixedCount;
40    // The endianness of the tag value, or UNDEFINED_ENDIAN if there is no fixed endian
41    Endianness fixedEndian;
42} TagDefinition_t;
43
44/**
45 * Convenience defines for tag ids.
46 */
47enum {
48    TAG_RAWTOPREVIEWGAIN = 0xC7A8u,
49    TAG_NEWRAWIMAGEDIGEST = 0xC7A7u,
50    TAG_ORIGINALDEFAULTCROPSIZE = 0xC793u,
51    TAG_ORIGINALBESTQUALITYFINALSIZE = 0xC792u,
52    TAG_ORIGINALDEFAULTFINALSIZE = 0xC791u,
53    TAG_PROFILEHUESATMAPENCODING = 0xC7A3u,
54    TAG_PROFILELOOKTABLEENCODING = 0xC7A4u,
55    TAG_BASELINEEXPOSUREOFFSET = 0xC7A5u,
56    TAG_DEFAULTBLACKRENDER = 0xC7A6u,
57    TAG_DEFAULTUSERCROP = 0xC7B5u,
58    TAG_NOISEPROFILE = 0xC761u,
59    TAG_OPCODELIST3 = 0xC74Eu,
60    TAG_OPCODELIST2 = 0xC741u,
61    TAG_OPCODELIST1 = 0xC740u,
62    TAG_PROFILELOOKTABLEDATA = 0xC726u,
63    TAG_PROFILELOOKTABLEDIMS = 0xC725u,
64    TAG_ROWINTERLEAVEFACTOR = 0xC71Fu,
65    TAG_SUBTILEBLOCKSIZE = 0xC71Eu,
66    TAG_ORIGINALRAWFILEDIGEST = 0xC71Du,
67    TAG_RAWIMAGEDIGEST = 0xC71Cu,
68    TAG_PREVIEWDATETIME = 0xC71Bu,
69    TAG_PREVIEWCOLORSPACE = 0xC71Au,
70    TAG_PREVIEWSETTINGSDIGEST = 0xC719u,
71    TAG_PREVIEWSETTINGSNAME = 0xC718u,
72    TAG_PREVIEWAPPLICATIONVERSION = 0xC717u,
73    TAG_PREVIEWAPPLICATIONNAME = 0xC716u,
74    TAG_FORWARDMATRIX2 = 0xC715u,
75    TAG_FORWARDMATRIX1 = 0xC714u,
76    TAG_PROFILECOPYRIGHT = 0xC6FEu,
77    TAG_PROFILEEMBEDPOLICY = 0xC6FDu,
78    TAG_PROFILETONECURVE = 0xC6FCu,
79    TAG_PROFILEHUESATMAPDATA2 = 0xC6FBu,
80    TAG_PROFILEHUESATMAPDATA1 = 0xC6FAu,
81    TAG_PROFILEHUESATMAPDIMS = 0xC6F9u,
82    TAG_PROFILENAME = 0xC6F8u,
83    TAG_NOISEREDUCTIONAPPLIED = 0xC6F7u,
84    TAG_ASSHOTPROFILENAME = 0xC6F6u,
85    TAG_EXTRACAMERAPROFILES = 0xC6F5u,
86    TAG_PROFILECALIBRATIONSIGNATURE = 0xC6F4u,
87    TAG_CAMERACALIBRATIONSIGNATURE = 0xC6F3u,
88    TAG_COLORIMETRICREFERENCE = 0xC6BFu,
89    TAG_CURRENTPREPROFILEMATRIX = 0xC692u,
90    TAG_CURRENTICCPROFILE = 0xC691u,
91    TAG_ASSHOTPREPROFILEMATRIX = 0xC690u,
92    TAG_ASSHOTICCPROFILE = 0xC68Fu,
93    TAG_MASKEDAREAS = 0xC68Eu,
94    TAG_ACTIVEAREA = 0xC68Du,
95    TAG_ORIGINALRAWFILEDATA = 0xC68Cu,
96    TAG_ORIGINALRAWFILENAME = 0xC68Bu,
97    TAG_RAWDATAUNIQUEID = 0xC65Du,
98    TAG_MAKERNOTESAFETY = 0xC635u,
99    TAG_DNGPRIVATEDATA = 0xC634u,
100    TAG_SHADOWSCALE = 0xC633u,
101    TAG_ANTIALIASSTRENGTH = 0xC632u,
102    TAG_CHROMABLURRADIUS = 0xC631u,
103    TAG_LENSINFO = 0xC630u,
104    TAG_CAMERASERIALNUMBER = 0xC62Fu,
105    TAG_LINEARRESPONSELIMIT = 0xC62Eu,
106    TAG_BAYERGREENSPLIT = 0xC62Du,
107    TAG_BASELINESHARPNESS = 0xC62Cu,
108    TAG_BASELINENOISE = 0xC62Bu,
109    TAG_BASELINEEXPOSURE = 0xC62Au,
110    TAG_ASSHOTWHITEXY = 0xC629u,
111    TAG_ASSHOTNEUTRAL = 0xC628u,
112    TAG_ANALOGBALANCE = 0xC627u,
113    TAG_REDUCTIONMATRIX2 = 0xC626u,
114    TAG_REDUCTIONMATRIX1 = 0xC625u,
115    TAG_CAMERACALIBRATION2 = 0xC624u,
116    TAG_CAMERACALIBRATION1 = 0xC623u,
117    TAG_COLORMATRIX2 = 0xC622u,
118    TAG_COLORMATRIX1 = 0xC621u,
119    TAG_CALIBRATIONILLUMINANT2 = 0xC65Bu,
120    TAG_CALIBRATIONILLUMINANT1 = 0xC65Au,
121    TAG_DEFAULTCROPSIZE = 0xC620u,
122    TAG_DEFAULTCROPORIGIN = 0xC61Fu,
123    TAG_BESTQUALITYSCALE = 0xC65Cu,
124    TAG_DEFAULTSCALE = 0xC61Eu,
125    TAG_WHITELEVEL = 0xC61Du,
126    TAG_BLACKLEVELDELTAV = 0xC61Cu,
127    TAG_BLACKLEVELDELTAH = 0xC61Bu,
128    TAG_BLACKLEVEL = 0xC61Au,
129    TAG_BLACKLEVELREPEATDIM = 0xC619u,
130    TAG_LINEARIZATIONTABLE = 0xC618u,
131    TAG_CFALAYOUT = 0xC617u,
132    TAG_CFAPLANECOLOR = 0xC616u,
133    TAG_LOCALIZEDCAMERAMODEL = 0xC615u,
134    TAG_UNIQUECAMERAMODEL = 0xC614u,
135    TAG_DNGBACKWARDVERSION = 0xC613u,
136    TAG_DNGVERSION = 0xC612u,
137    TAG_SUBFILETYPE = 0x00FFu,
138    TAG_YRESOLUTION = 0x011Bu,
139    TAG_XRESOLUTION = 0x011Au,
140    TAG_THRESHHOLDING = 0x0107u,
141    TAG_STRIPOFFSETS = 0x0111u,
142    TAG_STRIPBYTECOUNTS = 0x0117u,
143    TAG_SOFTWARE = 0x0131u,
144    TAG_SAMPLESPERPIXEL = 0x0115u,
145    TAG_ROWSPERSTRIP = 0x0116u,
146    TAG_RESOLUTIONUNIT = 0x0128u,
147    TAG_PLANARCONFIGURATION = 0x011Cu,
148    TAG_PHOTOMETRICINTERPRETATION = 0x0106u,
149    TAG_ORIENTATION = 0x0112u,
150    TAG_NEWSUBFILETYPE = 0x00FEu,
151    TAG_MODEL = 0x0110u,
152    TAG_MINSAMPLEVALUE = 0x0118u,
153    TAG_MAXSAMPLEVALUE = 0x0119u,
154    TAG_MAKE = 0x010Fu,
155    TAG_IMAGEWIDTH = 0x0100u,
156    TAG_IMAGELENGTH = 0x0101u,
157    TAG_IMAGEDESCRIPTION = 0x010Eu,
158    TAG_HOSTCOMPUTER = 0x013Cu,
159    TAG_GRAYRESPONSEUNIT = 0x0122u,
160    TAG_GRAYRESPONSECURVE = 0x0123u,
161    TAG_FREEOFFSETS = 0x0120u,
162    TAG_FREEBYTECOUNTS = 0x0121u,
163    TAG_FILLORDER = 0x010Au,
164    TAG_EXTRASAMPLES = 0x0152u,
165    TAG_DATETIME = 0x0132u,
166    TAG_COPYRIGHT = 0x8298u,
167    TAG_COMPRESSION = 0x0103u,
168    TAG_COLORMAP = 0x0140u,
169    TAG_CELLWIDTH = 0x0108u,
170    TAG_CELLLENGTH = 0x0109u,
171    TAG_BITSPERSAMPLE = 0x0102u,
172    TAG_ARTIST = 0x013Bu,
173    TAG_EXIFVERSION = 0x9000u,
174    TAG_CFAREPEATPATTERNDIM = 0x828Du,
175    TAG_CFAPATTERN = 0x828Eu,
176    TAG_SUBIFDS = 0x014Au,
177};
178
179/**
180 * TIFF_EP_TAG_DEFINITIONS contains tags defined in the TIFF EP spec
181 */
182const TagDefinition_t TIFF_EP_TAG_DEFINITIONS[] =  {
183    { // PhotometricInterpretation
184        0x0106u,
185        SHORT,
186        IFD_0,
187        1,
188        UNDEFINED_ENDIAN
189    },
190    { // SubIfds
191        0x014Au,
192        LONG,
193        IFD_0,
194        0,
195        UNDEFINED_ENDIAN
196    },
197    { // CFAPattern
198        0x828Eu,
199        BYTE,
200        IFD_0,
201        0,
202        UNDEFINED_ENDIAN
203    },
204    { // CFARepeatPatternDim
205        0x828Du,
206        SHORT,
207        IFD_0,
208        2,
209        UNDEFINED_ENDIAN
210    },
211    /*TODO: Remaining TIFF EP tags*/
212};
213
214/**
215 * EXIF_2_3_TAG_DEFINITIONS contains tags defined in the Jeita EXIF 2.3 spec
216 */
217const TagDefinition_t EXIF_2_3_TAG_DEFINITIONS[] = {
218    { // ExifVersion
219        0x9000u,
220        UNDEFINED,
221        IFD_0,
222        4,
223        UNDEFINED_ENDIAN
224    },
225    /*TODO: Remaining EXIF 2.3 tags*/
226};
227
228/**
229 * TIFF_6_TAG_DEFINITIONS contains tags defined in the TIFF 6.0 spec
230 */
231const TagDefinition_t TIFF_6_TAG_DEFINITIONS[] = {
232    { // SubFileType
233        0x00FFu,
234        SHORT,
235        IFD_0,
236        1,
237        UNDEFINED_ENDIAN
238    },
239    { // Artist
240        0x013Bu,
241        ASCII,
242        IFD_0,
243        0,
244        UNDEFINED_ENDIAN
245    },
246    { // BitsPerSample
247        0x0102u,
248        SHORT,
249        IFD_0,
250        0,
251        UNDEFINED_ENDIAN
252    },
253    { // CellLength
254        0x0109u,
255        SHORT,
256        IFD_0,
257        1,
258        UNDEFINED_ENDIAN
259    },
260    { // CellWidth
261        0x0108u,
262        SHORT,
263        IFD_0,
264        1,
265        UNDEFINED_ENDIAN
266    },
267    { // ColorMap
268        0x0140u,
269        SHORT,
270        IFD_0,
271        0,
272        UNDEFINED_ENDIAN
273    },
274    { // Compression
275        0x0103u,
276        SHORT,
277        IFD_0,
278        1,
279        UNDEFINED_ENDIAN
280    },
281    { // Copyright
282        0x8298u,
283        ASCII,
284        IFD_0,
285        0,
286        UNDEFINED_ENDIAN
287    },
288    { // DateTime
289        0x0132u,
290        ASCII,
291        IFD_0,
292        20,
293        UNDEFINED_ENDIAN
294    },
295    { // ExtraSamples
296        0x0152u,
297        SHORT,
298        IFD_0,
299        0,
300        UNDEFINED_ENDIAN
301    },
302    { // FillOrder
303        0x010Au,
304        SHORT,
305        IFD_0,
306        1,
307        UNDEFINED_ENDIAN
308    },
309    { // FreeByteCounts
310        0x0121u,
311        LONG,
312        IFD_0,
313        1,
314        UNDEFINED_ENDIAN
315    },
316    { // FreeOffsets
317        0x0120u,
318        LONG,
319        IFD_0,
320        1,
321        UNDEFINED_ENDIAN
322    },
323    { // GrayResponseCurve
324        0x0123u,
325        SHORT,
326        IFD_0,
327        0,
328        UNDEFINED_ENDIAN
329    },
330    { // GrayResponseUnit
331        0x0122u,
332        SHORT,
333        IFD_0,
334        1,
335        UNDEFINED_ENDIAN
336    },
337    { // HostComputer
338        0x013Cu,
339        ASCII,
340        IFD_0,
341        0,
342        UNDEFINED_ENDIAN
343    },
344    { // ImageDescription
345        0x010Eu,
346        ASCII,
347        IFD_0,
348        0,
349        UNDEFINED_ENDIAN
350    },
351    { // ImageLength
352        0x0101u,
353        LONG,
354        IFD_0,
355        1,
356        UNDEFINED_ENDIAN
357    },
358    { // ImageWidth
359        0x0100u,
360        LONG,
361        IFD_0,
362        1,
363        UNDEFINED_ENDIAN
364    },
365    { // Make
366        0x010Fu,
367        ASCII,
368        IFD_0,
369        0,
370        UNDEFINED_ENDIAN
371    },
372    { // MaxSampleValue
373        0x0119u,
374        SHORT,
375        IFD_0,
376        0,
377        UNDEFINED_ENDIAN
378    },
379    { // MinSampleValue
380        0x0118u,
381        SHORT,
382        IFD_0,
383        0,
384        UNDEFINED_ENDIAN
385    },
386    { // Model
387        0x0110u,
388        ASCII,
389        IFD_0,
390        0,
391        UNDEFINED_ENDIAN
392    },
393    { // NewSubfileType
394        0x00FEu,
395        LONG,
396        IFD_0,
397        1,
398        UNDEFINED_ENDIAN
399    },
400    { // Orientation
401        0x0112u,
402        SHORT,
403        IFD_0,
404        1,
405        UNDEFINED_ENDIAN
406    },
407    { // PhotoMetricInterpretation
408        0x0106u,
409        SHORT,
410        IFD_0,
411        1,
412        UNDEFINED_ENDIAN
413    },
414    { // PlanarConfiguration
415        0x011Cu,
416        SHORT,
417        IFD_0,
418        1,
419        UNDEFINED_ENDIAN
420    },
421    { // ResolutionUnit
422        0x0128u,
423        SHORT,
424        IFD_0,
425        1,
426        UNDEFINED_ENDIAN
427    },
428    { // RowsPerStrip
429        0x0116u,
430        LONG,
431        IFD_0,
432        1,
433        UNDEFINED_ENDIAN
434    },
435    { // SamplesPerPixel
436        0x0115u,
437        SHORT,
438        IFD_0,
439        1,
440        UNDEFINED_ENDIAN
441    },
442    { // Software
443        0x0131u,
444        ASCII,
445        IFD_0,
446        0,
447        UNDEFINED_ENDIAN
448    },
449    { // StripByteCounts
450        0x0117u,
451        LONG,
452        IFD_0,
453        0,
454        UNDEFINED_ENDIAN
455    },
456    { // StripOffsets
457        0x0111u,
458        LONG,
459        IFD_0,
460        0,
461        UNDEFINED_ENDIAN
462    },
463    { // SubfileType
464        0x00FFu,
465        SHORT,
466        IFD_0,
467        1,
468        UNDEFINED_ENDIAN
469    },
470    { // Threshholding
471        0x0107u,
472        SHORT,
473        IFD_0,
474        1,
475        UNDEFINED_ENDIAN
476    },
477    { // XResolution
478        0x011Au,
479        RATIONAL,
480        IFD_0,
481        1,
482        UNDEFINED_ENDIAN
483    },
484    { // YResolution
485        0x011Bu,
486        RATIONAL,
487        IFD_0,
488        1,
489        UNDEFINED_ENDIAN
490    },
491    { // YResolution
492        0x011Bu,
493        RATIONAL,
494        IFD_0,
495        1,
496        UNDEFINED_ENDIAN
497    }
498};
499
500/**
501 * DNG_TAG_DEFINITIONS contains tags defined in the DNG 1.4 spec
502 */
503const TagDefinition_t DNG_TAG_DEFINITIONS[] = {
504    { // DNGVersion
505        0xC612u,
506        BYTE,
507        IFD_0,
508        4,
509        UNDEFINED_ENDIAN
510    },
511    { // DNGBackwardVersion
512        0xC613u,
513        BYTE,
514        IFD_0,
515        4,
516        UNDEFINED_ENDIAN
517    },
518    { // UniqueCameraModel
519        0xC614u,
520        ASCII,
521        IFD_0,
522        0,
523        UNDEFINED_ENDIAN
524    },
525    { // LocalizedCameraModel
526        0xC615u,
527        ASCII,
528        IFD_0,
529        0,
530        UNDEFINED_ENDIAN
531    },
532    { // CFAPlaneColor
533        0xC616u,
534        BYTE,
535        RAW_IFD,
536        0,
537        UNDEFINED_ENDIAN
538    },
539    { // CFALayout
540        0xC617u,
541        SHORT,
542        RAW_IFD,
543        1,
544        UNDEFINED_ENDIAN
545    },
546    { // LinearizationTable
547        0xC618u,
548        SHORT,
549        RAW_IFD,
550        0,
551        UNDEFINED_ENDIAN
552    },
553    { // BlackLevelRepeatDim
554        0xC619u,
555        SHORT,
556        RAW_IFD,
557        2,
558        UNDEFINED_ENDIAN
559    },
560    { // BlackLevel
561        0xC61Au,
562        LONG,
563        RAW_IFD,
564        0,
565        UNDEFINED_ENDIAN
566    },
567    { // BlackLevelDeltaH
568        0xC61Bu,
569        SRATIONAL,
570        RAW_IFD,
571        0,
572        UNDEFINED_ENDIAN
573    },
574    { // BlackLevelDeltaV
575        0xC61Cu,
576        SRATIONAL,
577        RAW_IFD,
578        0,
579        UNDEFINED_ENDIAN
580    },
581    { // WhiteLevel
582        0xC61Du,
583        LONG,
584        RAW_IFD,
585        0,
586        UNDEFINED_ENDIAN
587    },
588    { // DefaultScale
589        0xC61Eu,
590        RATIONAL,
591        RAW_IFD,
592        2,
593        UNDEFINED_ENDIAN
594    },
595    { // BestQualityScale
596        0xC65Cu,
597        RATIONAL,
598        RAW_IFD,
599        1,
600        UNDEFINED_ENDIAN
601    },
602    { // DefaultCropOrigin
603        0xC61Fu,
604        LONG,
605        RAW_IFD,
606        2,
607        UNDEFINED_ENDIAN
608    },
609    { // DefaultCropSize
610        0xC620u,
611        LONG,
612        RAW_IFD,
613        2,
614        UNDEFINED_ENDIAN
615    },
616    { // CalibrationIlluminant1
617        0xC65Au,
618        SHORT,
619        PROFILE_IFD,
620        1,
621        UNDEFINED_ENDIAN
622    },
623    { // CalibrationIlluminant2
624        0xC65Bu,
625        SHORT,
626        PROFILE_IFD,
627        1,
628        UNDEFINED_ENDIAN
629    },
630    { // ColorMatrix1
631        0xC621u,
632        SRATIONAL,
633        PROFILE_IFD,
634        0,
635        UNDEFINED_ENDIAN
636    },
637    { // ColorMatrix2
638        0xC622u,
639        SRATIONAL,
640        PROFILE_IFD,
641        0,
642        UNDEFINED_ENDIAN
643    },
644    { // CameraCalibration1
645        0xC623u,
646        SRATIONAL,
647        IFD_0,
648        0,
649        UNDEFINED_ENDIAN
650    },
651    { // CameraCalibration2
652        0xC624u,
653        SRATIONAL,
654        IFD_0,
655        0,
656        UNDEFINED_ENDIAN
657    },
658    { // ReductionMatrix1
659        0xC625u,
660        SRATIONAL,
661        PROFILE_IFD,
662        0,
663        UNDEFINED_ENDIAN
664    },
665    { // ReductionMatrix2
666        0xC626u,
667        SRATIONAL,
668        PROFILE_IFD,
669        0,
670        UNDEFINED_ENDIAN
671    },
672    { // AnalogBalance
673        0xC627u,
674        RATIONAL,
675        IFD_0,
676        0,
677        UNDEFINED_ENDIAN
678    },
679    { // AsShotNeutral
680        0xC628u,
681        RATIONAL,
682        IFD_0,
683        0,
684        UNDEFINED_ENDIAN
685    },
686    { // AsShotWhiteXY
687        0xC629u,
688        RATIONAL,
689        IFD_0,
690        2,
691        UNDEFINED_ENDIAN
692    },
693    { // BaselineExposure
694        0xC62Au,
695        SRATIONAL,
696        IFD_0,
697        1,
698        UNDEFINED_ENDIAN
699    },
700    { // BaselineNoise
701        0xC62Bu,
702        RATIONAL,
703        IFD_0,
704        1,
705        UNDEFINED_ENDIAN
706    },
707    { // BaselineSharpness
708        0xC62Cu,
709        RATIONAL,
710        IFD_0,
711        1,
712        UNDEFINED_ENDIAN
713    },
714    { // BayerGreenSplit
715        0xC62Du,
716        LONG,
717        RAW_IFD,
718        1,
719        UNDEFINED_ENDIAN
720    },
721    { // LinearResponseLimit
722        0xC62Eu,
723        RATIONAL,
724        IFD_0,
725        1,
726        UNDEFINED_ENDIAN
727    },
728    { // CameraSerialNumber
729        0xC62Fu,
730        ASCII,
731        IFD_0,
732        0,
733        UNDEFINED_ENDIAN
734    },
735    { // LensInfo
736        0xC630u,
737        RATIONAL,
738        IFD_0,
739        4,
740        UNDEFINED_ENDIAN
741    },
742    { // ChromaBlurRadius
743        0xC631u,
744        RATIONAL,
745        RAW_IFD,
746        1,
747        UNDEFINED_ENDIAN
748    },
749    { // AntiAliasStrength
750        0xC632u,
751        RATIONAL,
752        RAW_IFD,
753        1,
754        UNDEFINED_ENDIAN
755    },
756    { // ShadowScale
757        0xC633u,
758        RATIONAL,
759        IFD_0,
760        1,
761        UNDEFINED_ENDIAN
762    },
763    { // DNGPrivateData
764        0xC634u,
765        BYTE,
766        IFD_0,
767        0,
768        UNDEFINED_ENDIAN
769    },
770    { // MakerNoteSafety
771        0xC635u,
772        SHORT,
773        IFD_0,
774        1,
775        UNDEFINED_ENDIAN
776    },
777    { // RawDataUniqueID
778        0xC65Du,
779        BYTE,
780        IFD_0,
781        16,
782        UNDEFINED_ENDIAN
783    },
784    { // OriginalRawFileName
785        0xC68Bu,
786        ASCII,
787        IFD_0,
788        0,
789        UNDEFINED_ENDIAN
790    },
791    { // OriginalRawFileData
792        0xC68Cu,
793        UNDEFINED,
794        IFD_0,
795        0,
796        BIG
797    },
798    { // ActiveArea
799        0xC68Du,
800        LONG,
801        RAW_IFD,
802        4,
803        UNDEFINED_ENDIAN
804    },
805    { // MaskedAreas
806        0xC68Eu,
807        LONG,
808        RAW_IFD,
809        0,
810        UNDEFINED_ENDIAN
811    },
812    { // AsShotICCProfile
813        0xC68Fu,
814        UNDEFINED,
815        IFD_0,
816        0,
817        UNDEFINED_ENDIAN
818    },
819    { // AsShotPreProfileMatrix
820        0xC690u,
821        SRATIONAL,
822        IFD_0,
823        0,
824        UNDEFINED_ENDIAN
825    },
826    { // CurrentICCProfile
827        0xC691u,
828        UNDEFINED,
829        IFD_0,
830        0,
831        UNDEFINED_ENDIAN
832    },
833    { // CurrentICCProfile
834        0xC691u,
835        UNDEFINED,
836        IFD_0,
837        0,
838        UNDEFINED_ENDIAN
839    },
840    { // CurrentPreProfileMatrix
841        0xC692u,
842        SRATIONAL,
843        IFD_0,
844        0,
845        UNDEFINED_ENDIAN
846    },
847    { // ColorimetricReference
848        0xC6BFu,
849        SHORT,
850        IFD_0,
851        1,
852        UNDEFINED_ENDIAN
853    },
854    { // CameraCalibrationSignature
855        0xC6F3u,
856        ASCII,
857        IFD_0,
858        0,
859        UNDEFINED_ENDIAN
860    },
861    { // ProfileCalibrationSignature
862        0xC6F4u,
863        ASCII,
864        PROFILE_IFD,
865        0,
866        UNDEFINED_ENDIAN
867    },
868    { // ExtraCameraProfiles
869        0xC6F5u,
870        LONG,
871        IFD_0,
872        0,
873        UNDEFINED_ENDIAN
874    },
875    { // AsShotProfileName
876        0xC6F6u,
877        ASCII,
878        IFD_0,
879        0,
880        UNDEFINED_ENDIAN
881    },
882    { // NoiseReductionApplied
883        0xC6F7u,
884        RATIONAL,
885        RAW_IFD,
886        1,
887        UNDEFINED_ENDIAN
888    },
889    { // ProfileName
890        0xC6F8u,
891        ASCII,
892        PROFILE_IFD,
893        0,
894        UNDEFINED_ENDIAN
895    },
896    { // ProfileHueSatMapDims
897        0xC6F9u,
898        LONG,
899        PROFILE_IFD,
900        3,
901        UNDEFINED_ENDIAN
902    },
903    { // ProfileHueSatMapData1
904        0xC6FAu,
905        FLOAT,
906        PROFILE_IFD,
907        0,
908        UNDEFINED_ENDIAN
909    },
910    { // ProfileHueSatMapData2
911        0xC6FBu,
912        FLOAT,
913        PROFILE_IFD,
914        0,
915        UNDEFINED_ENDIAN
916    },
917    { // ProfileToneCurve
918        0xC6FCu,
919        FLOAT,
920        PROFILE_IFD,
921        0,
922        UNDEFINED_ENDIAN
923    },
924    { // ProfileEmbedPolicy
925        0xC6FDu,
926        LONG,
927        PROFILE_IFD,
928        1,
929        UNDEFINED_ENDIAN
930    },
931    { // ProfileCopyright
932        0xC6FEu,
933        ASCII,
934        PROFILE_IFD,
935        0,
936        UNDEFINED_ENDIAN
937    },
938    { // ForwardMatrix1
939        0xC714u,
940        SRATIONAL,
941        PROFILE_IFD,
942        0,
943        UNDEFINED_ENDIAN
944    },
945    { // ForwardMatrix2
946        0xC715u,
947        SRATIONAL,
948        PROFILE_IFD,
949        0,
950        UNDEFINED_ENDIAN
951    },
952    { // PreviewApplicationName
953        0xC716u,
954        ASCII,
955        PREVIEW_IFD,
956        0,
957        UNDEFINED_ENDIAN
958    },
959    { // PreviewApplicationVersion
960        0xC717u,
961        ASCII,
962        PREVIEW_IFD,
963        0,
964        UNDEFINED_ENDIAN
965    },
966    { // PreviewSettingsName
967        0xC718u,
968        ASCII,
969        PREVIEW_IFD,
970        0,
971        UNDEFINED_ENDIAN
972    },
973    { // PreviewSettingsDigest
974        0xC719u,
975        BYTE,
976        PREVIEW_IFD,
977        16,
978        UNDEFINED_ENDIAN
979    },
980    { // PreviewColorSpace
981        0xC71Au,
982        LONG,
983        PREVIEW_IFD,
984        1,
985        UNDEFINED_ENDIAN
986    },
987    { // PreviewDateTime
988        0xC71Bu,
989        ASCII,
990        PREVIEW_IFD,
991        0,
992        UNDEFINED_ENDIAN
993    },
994    { // RawImageDigest
995        0xC71Cu,
996        BYTE,
997        IFD_0,
998        16,
999        UNDEFINED_ENDIAN
1000    },
1001    { // OriginalRawFileDigest
1002        0xC71Du,
1003        BYTE,
1004        IFD_0,
1005        16,
1006        UNDEFINED_ENDIAN
1007    },
1008    { // SubTileBlockSize
1009        0xC71Eu,
1010        LONG,
1011        RAW_IFD,
1012        2,
1013        UNDEFINED_ENDIAN
1014    },
1015    { // RowInterleaveFactor
1016        0xC71Fu,
1017        LONG,
1018        RAW_IFD,
1019        1,
1020        UNDEFINED_ENDIAN
1021    },
1022    { // ProfileLookTableDims
1023        0xC725u,
1024        LONG,
1025        PROFILE_IFD,
1026        3,
1027        UNDEFINED_ENDIAN
1028    },
1029    { // ProfileLookTableData
1030        0xC726u,
1031        FLOAT,
1032        PROFILE_IFD,
1033        0,
1034        UNDEFINED_ENDIAN
1035    },
1036    { // OpcodeList1
1037        0xC740u,
1038        UNDEFINED,
1039        RAW_IFD,
1040        0,
1041        BIG
1042    },
1043    { // OpcodeList2
1044        0xC741u,
1045        UNDEFINED,
1046        RAW_IFD,
1047        0,
1048        BIG
1049    },
1050    { // OpcodeList3
1051        0xC74Eu,
1052        UNDEFINED,
1053        RAW_IFD,
1054        0,
1055        BIG
1056    },
1057    { // NoiseProfile
1058        0xC761u,
1059        DOUBLE,
1060        RAW_IFD,
1061        0,
1062        UNDEFINED_ENDIAN
1063    },
1064    { // DefaultUserCrop
1065        0xC7B5u,
1066        RATIONAL,
1067        RAW_IFD,
1068        4,
1069        UNDEFINED_ENDIAN
1070    },
1071    { // DefaultBlackRender
1072        0xC7A6u,
1073        LONG,
1074        PROFILE_IFD,
1075        1,
1076        UNDEFINED_ENDIAN
1077    },
1078    { // BaselineExposureOffset
1079        0xC7A5u,
1080        RATIONAL,
1081        PROFILE_IFD,
1082        1,
1083        UNDEFINED_ENDIAN
1084    },
1085    { // ProfileLookTableEncoding
1086        0xC7A4u,
1087        LONG,
1088        PROFILE_IFD,
1089        1,
1090        UNDEFINED_ENDIAN
1091    },
1092    { // ProfileHueSatMapEncoding
1093        0xC7A3u,
1094        LONG,
1095        PROFILE_IFD,
1096        1,
1097        UNDEFINED_ENDIAN
1098    },
1099    { // OriginalDefaultFinalSize
1100        0xC791u,
1101        LONG,
1102        IFD_0,
1103        2,
1104        UNDEFINED_ENDIAN
1105    },
1106    { // OriginalBestQualityFinalSize
1107        0xC792u,
1108        LONG,
1109        IFD_0,
1110        2,
1111        UNDEFINED_ENDIAN
1112    },
1113    { // OriginalDefaultCropSize
1114        0xC793u,
1115        LONG,
1116        IFD_0,
1117        2,
1118        UNDEFINED_ENDIAN
1119    },
1120    { // NewRawImageDigest
1121        0xC7A7u,
1122        BYTE,
1123        IFD_0,
1124        16,
1125        UNDEFINED_ENDIAN
1126    },
1127    { // RawToPreviewGain
1128        0xC7A8u,
1129        DOUBLE,
1130        PREVIEW_IFD,
1131        1,
1132        UNDEFINED_ENDIAN
1133    },
1134};
1135
1136} /*namespace img_utils*/
1137} /*namespace android*/
1138
1139#endif /*IMG_UTILS_TIFF_TAG_DEFINITION_H*/
1140