TagDefinitions.h revision ee777157c12a02e7350e18d49f7571b1222dfa69
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_DATETIMEORIGINAL = 0x9003u,
176    TAG_CFAPATTERN = 0x828Eu,
177    TAG_SUBIFDS = 0x014Au,
178    TAG_TIFFEPSTANDARDID = 0x9216u,
179    TAG_EXPOSURETIME = 0x829Au,
180    TAG_ISOSPEEDRATINGS = 0x8827u,
181    TAG_FOCALLENGTH = 0x920Au,
182    TAG_FNUMBER = 0x829Du,
183};
184
185/**
186 * TIFF_EP_TAG_DEFINITIONS contains tags defined in the TIFF EP spec
187 */
188const TagDefinition_t TIFF_EP_TAG_DEFINITIONS[] =  {
189    { // PhotometricInterpretation
190        0x0106u,
191        SHORT,
192        IFD_0,
193        1,
194        UNDEFINED_ENDIAN
195    },
196    { // SubIfds
197        0x014Au,
198        LONG,
199        IFD_0,
200        0,
201        UNDEFINED_ENDIAN
202    },
203    { // CFAPattern
204        0x828Eu,
205        BYTE,
206        IFD_0,
207        0,
208        UNDEFINED_ENDIAN
209    },
210    { // CFARepeatPatternDim
211        0x828Du,
212        SHORT,
213        IFD_0,
214        2,
215        UNDEFINED_ENDIAN
216    },
217    { // DateTimeOriginal
218        0x9003u,
219        ASCII,
220        IFD_0,
221        20,
222        UNDEFINED_ENDIAN
223    },
224    { // Tiff/EPStandardID
225        0x9216u,
226        BYTE,
227        IFD_0,
228        4,
229        UNDEFINED_ENDIAN
230    },
231    { // ExposureTime
232        0x829Au,
233        RATIONAL,
234        IFD_0,
235        0,
236        UNDEFINED_ENDIAN
237    },
238    { // ISOSpeedRatings
239        0x8827u,
240        SHORT,
241        IFD_0,
242        0,
243        UNDEFINED_ENDIAN
244    },
245    { // FocalLength
246        0x920Au,
247        RATIONAL,
248        IFD_0,
249        0,
250        UNDEFINED_ENDIAN
251    },
252    { // FNumber
253        0x829Du,
254        RATIONAL,
255        IFD_0,
256        0,
257        UNDEFINED_ENDIAN
258    },
259    /*TODO: Remaining TIFF EP tags*/
260};
261
262/**
263 * EXIF_2_3_TAG_DEFINITIONS contains tags defined in the Jeita EXIF 2.3 spec
264 */
265const TagDefinition_t EXIF_2_3_TAG_DEFINITIONS[] = {
266    { // ExifVersion
267        0x9000u,
268        UNDEFINED,
269        IFD_0,
270        4,
271        UNDEFINED_ENDIAN
272    },
273    /*TODO: Remaining EXIF 2.3 tags*/
274};
275
276/**
277 * TIFF_6_TAG_DEFINITIONS contains tags defined in the TIFF 6.0 spec
278 */
279const TagDefinition_t TIFF_6_TAG_DEFINITIONS[] = {
280    { // SubFileType
281        0x00FFu,
282        SHORT,
283        IFD_0,
284        1,
285        UNDEFINED_ENDIAN
286    },
287    { // Artist
288        0x013Bu,
289        ASCII,
290        IFD_0,
291        0,
292        UNDEFINED_ENDIAN
293    },
294    { // BitsPerSample
295        0x0102u,
296        SHORT,
297        IFD_0,
298        0,
299        UNDEFINED_ENDIAN
300    },
301    { // CellLength
302        0x0109u,
303        SHORT,
304        IFD_0,
305        1,
306        UNDEFINED_ENDIAN
307    },
308    { // CellWidth
309        0x0108u,
310        SHORT,
311        IFD_0,
312        1,
313        UNDEFINED_ENDIAN
314    },
315    { // ColorMap
316        0x0140u,
317        SHORT,
318        IFD_0,
319        0,
320        UNDEFINED_ENDIAN
321    },
322    { // Compression
323        0x0103u,
324        SHORT,
325        IFD_0,
326        1,
327        UNDEFINED_ENDIAN
328    },
329    { // Copyright
330        0x8298u,
331        ASCII,
332        IFD_0,
333        0,
334        UNDEFINED_ENDIAN
335    },
336    { // DateTime
337        0x0132u,
338        ASCII,
339        IFD_0,
340        20,
341        UNDEFINED_ENDIAN
342    },
343    { // ExtraSamples
344        0x0152u,
345        SHORT,
346        IFD_0,
347        0,
348        UNDEFINED_ENDIAN
349    },
350    { // FillOrder
351        0x010Au,
352        SHORT,
353        IFD_0,
354        1,
355        UNDEFINED_ENDIAN
356    },
357    { // FreeByteCounts
358        0x0121u,
359        LONG,
360        IFD_0,
361        1,
362        UNDEFINED_ENDIAN
363    },
364    { // FreeOffsets
365        0x0120u,
366        LONG,
367        IFD_0,
368        1,
369        UNDEFINED_ENDIAN
370    },
371    { // GrayResponseCurve
372        0x0123u,
373        SHORT,
374        IFD_0,
375        0,
376        UNDEFINED_ENDIAN
377    },
378    { // GrayResponseUnit
379        0x0122u,
380        SHORT,
381        IFD_0,
382        1,
383        UNDEFINED_ENDIAN
384    },
385    { // HostComputer
386        0x013Cu,
387        ASCII,
388        IFD_0,
389        0,
390        UNDEFINED_ENDIAN
391    },
392    { // ImageDescription
393        0x010Eu,
394        ASCII,
395        IFD_0,
396        0,
397        UNDEFINED_ENDIAN
398    },
399    { // ImageLength
400        0x0101u,
401        LONG,
402        IFD_0,
403        1,
404        UNDEFINED_ENDIAN
405    },
406    { // ImageWidth
407        0x0100u,
408        LONG,
409        IFD_0,
410        1,
411        UNDEFINED_ENDIAN
412    },
413    { // Make
414        0x010Fu,
415        ASCII,
416        IFD_0,
417        0,
418        UNDEFINED_ENDIAN
419    },
420    { // MaxSampleValue
421        0x0119u,
422        SHORT,
423        IFD_0,
424        0,
425        UNDEFINED_ENDIAN
426    },
427    { // MinSampleValue
428        0x0118u,
429        SHORT,
430        IFD_0,
431        0,
432        UNDEFINED_ENDIAN
433    },
434    { // Model
435        0x0110u,
436        ASCII,
437        IFD_0,
438        0,
439        UNDEFINED_ENDIAN
440    },
441    { // NewSubfileType
442        0x00FEu,
443        LONG,
444        IFD_0,
445        1,
446        UNDEFINED_ENDIAN
447    },
448    { // Orientation
449        0x0112u,
450        SHORT,
451        IFD_0,
452        1,
453        UNDEFINED_ENDIAN
454    },
455    { // PhotoMetricInterpretation
456        0x0106u,
457        SHORT,
458        IFD_0,
459        1,
460        UNDEFINED_ENDIAN
461    },
462    { // PlanarConfiguration
463        0x011Cu,
464        SHORT,
465        IFD_0,
466        1,
467        UNDEFINED_ENDIAN
468    },
469    { // ResolutionUnit
470        0x0128u,
471        SHORT,
472        IFD_0,
473        1,
474        UNDEFINED_ENDIAN
475    },
476    { // RowsPerStrip
477        0x0116u,
478        LONG,
479        IFD_0,
480        1,
481        UNDEFINED_ENDIAN
482    },
483    { // SamplesPerPixel
484        0x0115u,
485        SHORT,
486        IFD_0,
487        1,
488        UNDEFINED_ENDIAN
489    },
490    { // Software
491        0x0131u,
492        ASCII,
493        IFD_0,
494        0,
495        UNDEFINED_ENDIAN
496    },
497    { // StripByteCounts
498        0x0117u,
499        LONG,
500        IFD_0,
501        0,
502        UNDEFINED_ENDIAN
503    },
504    { // StripOffsets
505        0x0111u,
506        LONG,
507        IFD_0,
508        0,
509        UNDEFINED_ENDIAN
510    },
511    { // SubfileType
512        0x00FFu,
513        SHORT,
514        IFD_0,
515        1,
516        UNDEFINED_ENDIAN
517    },
518    { // Threshholding
519        0x0107u,
520        SHORT,
521        IFD_0,
522        1,
523        UNDEFINED_ENDIAN
524    },
525    { // XResolution
526        0x011Au,
527        RATIONAL,
528        IFD_0,
529        1,
530        UNDEFINED_ENDIAN
531    },
532    { // YResolution
533        0x011Bu,
534        RATIONAL,
535        IFD_0,
536        1,
537        UNDEFINED_ENDIAN
538    },
539    { // YResolution
540        0x011Bu,
541        RATIONAL,
542        IFD_0,
543        1,
544        UNDEFINED_ENDIAN
545    }
546};
547
548/**
549 * DNG_TAG_DEFINITIONS contains tags defined in the DNG 1.4 spec
550 */
551const TagDefinition_t DNG_TAG_DEFINITIONS[] = {
552    { // DNGVersion
553        0xC612u,
554        BYTE,
555        IFD_0,
556        4,
557        UNDEFINED_ENDIAN
558    },
559    { // DNGBackwardVersion
560        0xC613u,
561        BYTE,
562        IFD_0,
563        4,
564        UNDEFINED_ENDIAN
565    },
566    { // UniqueCameraModel
567        0xC614u,
568        ASCII,
569        IFD_0,
570        0,
571        UNDEFINED_ENDIAN
572    },
573    { // LocalizedCameraModel
574        0xC615u,
575        ASCII,
576        IFD_0,
577        0,
578        UNDEFINED_ENDIAN
579    },
580    { // CFAPlaneColor
581        0xC616u,
582        BYTE,
583        RAW_IFD,
584        0,
585        UNDEFINED_ENDIAN
586    },
587    { // CFALayout
588        0xC617u,
589        SHORT,
590        RAW_IFD,
591        1,
592        UNDEFINED_ENDIAN
593    },
594    { // LinearizationTable
595        0xC618u,
596        SHORT,
597        RAW_IFD,
598        0,
599        UNDEFINED_ENDIAN
600    },
601    { // BlackLevelRepeatDim
602        0xC619u,
603        SHORT,
604        RAW_IFD,
605        2,
606        UNDEFINED_ENDIAN
607    },
608    { // BlackLevel
609        0xC61Au,
610        LONG,
611        RAW_IFD,
612        0,
613        UNDEFINED_ENDIAN
614    },
615    { // BlackLevelDeltaH
616        0xC61Bu,
617        SRATIONAL,
618        RAW_IFD,
619        0,
620        UNDEFINED_ENDIAN
621    },
622    { // BlackLevelDeltaV
623        0xC61Cu,
624        SRATIONAL,
625        RAW_IFD,
626        0,
627        UNDEFINED_ENDIAN
628    },
629    { // WhiteLevel
630        0xC61Du,
631        LONG,
632        RAW_IFD,
633        0,
634        UNDEFINED_ENDIAN
635    },
636    { // DefaultScale
637        0xC61Eu,
638        RATIONAL,
639        RAW_IFD,
640        2,
641        UNDEFINED_ENDIAN
642    },
643    { // BestQualityScale
644        0xC65Cu,
645        RATIONAL,
646        RAW_IFD,
647        1,
648        UNDEFINED_ENDIAN
649    },
650    { // DefaultCropOrigin
651        0xC61Fu,
652        LONG,
653        RAW_IFD,
654        2,
655        UNDEFINED_ENDIAN
656    },
657    { // DefaultCropSize
658        0xC620u,
659        LONG,
660        RAW_IFD,
661        2,
662        UNDEFINED_ENDIAN
663    },
664    { // CalibrationIlluminant1
665        0xC65Au,
666        SHORT,
667        PROFILE_IFD,
668        1,
669        UNDEFINED_ENDIAN
670    },
671    { // CalibrationIlluminant2
672        0xC65Bu,
673        SHORT,
674        PROFILE_IFD,
675        1,
676        UNDEFINED_ENDIAN
677    },
678    { // ColorMatrix1
679        0xC621u,
680        SRATIONAL,
681        PROFILE_IFD,
682        0,
683        UNDEFINED_ENDIAN
684    },
685    { // ColorMatrix2
686        0xC622u,
687        SRATIONAL,
688        PROFILE_IFD,
689        0,
690        UNDEFINED_ENDIAN
691    },
692    { // CameraCalibration1
693        0xC623u,
694        SRATIONAL,
695        IFD_0,
696        0,
697        UNDEFINED_ENDIAN
698    },
699    { // CameraCalibration2
700        0xC624u,
701        SRATIONAL,
702        IFD_0,
703        0,
704        UNDEFINED_ENDIAN
705    },
706    { // ReductionMatrix1
707        0xC625u,
708        SRATIONAL,
709        PROFILE_IFD,
710        0,
711        UNDEFINED_ENDIAN
712    },
713    { // ReductionMatrix2
714        0xC626u,
715        SRATIONAL,
716        PROFILE_IFD,
717        0,
718        UNDEFINED_ENDIAN
719    },
720    { // AnalogBalance
721        0xC627u,
722        RATIONAL,
723        IFD_0,
724        0,
725        UNDEFINED_ENDIAN
726    },
727    { // AsShotNeutral
728        0xC628u,
729        RATIONAL,
730        IFD_0,
731        0,
732        UNDEFINED_ENDIAN
733    },
734    { // AsShotWhiteXY
735        0xC629u,
736        RATIONAL,
737        IFD_0,
738        2,
739        UNDEFINED_ENDIAN
740    },
741    { // BaselineExposure
742        0xC62Au,
743        SRATIONAL,
744        IFD_0,
745        1,
746        UNDEFINED_ENDIAN
747    },
748    { // BaselineNoise
749        0xC62Bu,
750        RATIONAL,
751        IFD_0,
752        1,
753        UNDEFINED_ENDIAN
754    },
755    { // BaselineSharpness
756        0xC62Cu,
757        RATIONAL,
758        IFD_0,
759        1,
760        UNDEFINED_ENDIAN
761    },
762    { // BayerGreenSplit
763        0xC62Du,
764        LONG,
765        RAW_IFD,
766        1,
767        UNDEFINED_ENDIAN
768    },
769    { // LinearResponseLimit
770        0xC62Eu,
771        RATIONAL,
772        IFD_0,
773        1,
774        UNDEFINED_ENDIAN
775    },
776    { // CameraSerialNumber
777        0xC62Fu,
778        ASCII,
779        IFD_0,
780        0,
781        UNDEFINED_ENDIAN
782    },
783    { // LensInfo
784        0xC630u,
785        RATIONAL,
786        IFD_0,
787        4,
788        UNDEFINED_ENDIAN
789    },
790    { // ChromaBlurRadius
791        0xC631u,
792        RATIONAL,
793        RAW_IFD,
794        1,
795        UNDEFINED_ENDIAN
796    },
797    { // AntiAliasStrength
798        0xC632u,
799        RATIONAL,
800        RAW_IFD,
801        1,
802        UNDEFINED_ENDIAN
803    },
804    { // ShadowScale
805        0xC633u,
806        RATIONAL,
807        IFD_0,
808        1,
809        UNDEFINED_ENDIAN
810    },
811    { // DNGPrivateData
812        0xC634u,
813        BYTE,
814        IFD_0,
815        0,
816        UNDEFINED_ENDIAN
817    },
818    { // MakerNoteSafety
819        0xC635u,
820        SHORT,
821        IFD_0,
822        1,
823        UNDEFINED_ENDIAN
824    },
825    { // RawDataUniqueID
826        0xC65Du,
827        BYTE,
828        IFD_0,
829        16,
830        UNDEFINED_ENDIAN
831    },
832    { // OriginalRawFileName
833        0xC68Bu,
834        ASCII,
835        IFD_0,
836        0,
837        UNDEFINED_ENDIAN
838    },
839    { // OriginalRawFileData
840        0xC68Cu,
841        UNDEFINED,
842        IFD_0,
843        0,
844        BIG
845    },
846    { // ActiveArea
847        0xC68Du,
848        LONG,
849        RAW_IFD,
850        4,
851        UNDEFINED_ENDIAN
852    },
853    { // MaskedAreas
854        0xC68Eu,
855        LONG,
856        RAW_IFD,
857        0,
858        UNDEFINED_ENDIAN
859    },
860    { // AsShotICCProfile
861        0xC68Fu,
862        UNDEFINED,
863        IFD_0,
864        0,
865        UNDEFINED_ENDIAN
866    },
867    { // AsShotPreProfileMatrix
868        0xC690u,
869        SRATIONAL,
870        IFD_0,
871        0,
872        UNDEFINED_ENDIAN
873    },
874    { // CurrentICCProfile
875        0xC691u,
876        UNDEFINED,
877        IFD_0,
878        0,
879        UNDEFINED_ENDIAN
880    },
881    { // CurrentICCProfile
882        0xC691u,
883        UNDEFINED,
884        IFD_0,
885        0,
886        UNDEFINED_ENDIAN
887    },
888    { // CurrentPreProfileMatrix
889        0xC692u,
890        SRATIONAL,
891        IFD_0,
892        0,
893        UNDEFINED_ENDIAN
894    },
895    { // ColorimetricReference
896        0xC6BFu,
897        SHORT,
898        IFD_0,
899        1,
900        UNDEFINED_ENDIAN
901    },
902    { // CameraCalibrationSignature
903        0xC6F3u,
904        ASCII,
905        IFD_0,
906        0,
907        UNDEFINED_ENDIAN
908    },
909    { // ProfileCalibrationSignature
910        0xC6F4u,
911        ASCII,
912        PROFILE_IFD,
913        0,
914        UNDEFINED_ENDIAN
915    },
916    { // ExtraCameraProfiles
917        0xC6F5u,
918        LONG,
919        IFD_0,
920        0,
921        UNDEFINED_ENDIAN
922    },
923    { // AsShotProfileName
924        0xC6F6u,
925        ASCII,
926        IFD_0,
927        0,
928        UNDEFINED_ENDIAN
929    },
930    { // NoiseReductionApplied
931        0xC6F7u,
932        RATIONAL,
933        RAW_IFD,
934        1,
935        UNDEFINED_ENDIAN
936    },
937    { // ProfileName
938        0xC6F8u,
939        ASCII,
940        PROFILE_IFD,
941        0,
942        UNDEFINED_ENDIAN
943    },
944    { // ProfileHueSatMapDims
945        0xC6F9u,
946        LONG,
947        PROFILE_IFD,
948        3,
949        UNDEFINED_ENDIAN
950    },
951    { // ProfileHueSatMapData1
952        0xC6FAu,
953        FLOAT,
954        PROFILE_IFD,
955        0,
956        UNDEFINED_ENDIAN
957    },
958    { // ProfileHueSatMapData2
959        0xC6FBu,
960        FLOAT,
961        PROFILE_IFD,
962        0,
963        UNDEFINED_ENDIAN
964    },
965    { // ProfileToneCurve
966        0xC6FCu,
967        FLOAT,
968        PROFILE_IFD,
969        0,
970        UNDEFINED_ENDIAN
971    },
972    { // ProfileEmbedPolicy
973        0xC6FDu,
974        LONG,
975        PROFILE_IFD,
976        1,
977        UNDEFINED_ENDIAN
978    },
979    { // ProfileCopyright
980        0xC6FEu,
981        ASCII,
982        PROFILE_IFD,
983        0,
984        UNDEFINED_ENDIAN
985    },
986    { // ForwardMatrix1
987        0xC714u,
988        SRATIONAL,
989        PROFILE_IFD,
990        0,
991        UNDEFINED_ENDIAN
992    },
993    { // ForwardMatrix2
994        0xC715u,
995        SRATIONAL,
996        PROFILE_IFD,
997        0,
998        UNDEFINED_ENDIAN
999    },
1000    { // PreviewApplicationName
1001        0xC716u,
1002        ASCII,
1003        PREVIEW_IFD,
1004        0,
1005        UNDEFINED_ENDIAN
1006    },
1007    { // PreviewApplicationVersion
1008        0xC717u,
1009        ASCII,
1010        PREVIEW_IFD,
1011        0,
1012        UNDEFINED_ENDIAN
1013    },
1014    { // PreviewSettingsName
1015        0xC718u,
1016        ASCII,
1017        PREVIEW_IFD,
1018        0,
1019        UNDEFINED_ENDIAN
1020    },
1021    { // PreviewSettingsDigest
1022        0xC719u,
1023        BYTE,
1024        PREVIEW_IFD,
1025        16,
1026        UNDEFINED_ENDIAN
1027    },
1028    { // PreviewColorSpace
1029        0xC71Au,
1030        LONG,
1031        PREVIEW_IFD,
1032        1,
1033        UNDEFINED_ENDIAN
1034    },
1035    { // PreviewDateTime
1036        0xC71Bu,
1037        ASCII,
1038        PREVIEW_IFD,
1039        0,
1040        UNDEFINED_ENDIAN
1041    },
1042    { // RawImageDigest
1043        0xC71Cu,
1044        BYTE,
1045        IFD_0,
1046        16,
1047        UNDEFINED_ENDIAN
1048    },
1049    { // OriginalRawFileDigest
1050        0xC71Du,
1051        BYTE,
1052        IFD_0,
1053        16,
1054        UNDEFINED_ENDIAN
1055    },
1056    { // SubTileBlockSize
1057        0xC71Eu,
1058        LONG,
1059        RAW_IFD,
1060        2,
1061        UNDEFINED_ENDIAN
1062    },
1063    { // RowInterleaveFactor
1064        0xC71Fu,
1065        LONG,
1066        RAW_IFD,
1067        1,
1068        UNDEFINED_ENDIAN
1069    },
1070    { // ProfileLookTableDims
1071        0xC725u,
1072        LONG,
1073        PROFILE_IFD,
1074        3,
1075        UNDEFINED_ENDIAN
1076    },
1077    { // ProfileLookTableData
1078        0xC726u,
1079        FLOAT,
1080        PROFILE_IFD,
1081        0,
1082        UNDEFINED_ENDIAN
1083    },
1084    { // OpcodeList1
1085        0xC740u,
1086        UNDEFINED,
1087        RAW_IFD,
1088        0,
1089        BIG
1090    },
1091    { // OpcodeList2
1092        0xC741u,
1093        UNDEFINED,
1094        RAW_IFD,
1095        0,
1096        BIG
1097    },
1098    { // OpcodeList3
1099        0xC74Eu,
1100        UNDEFINED,
1101        RAW_IFD,
1102        0,
1103        BIG
1104    },
1105    { // NoiseProfile
1106        0xC761u,
1107        DOUBLE,
1108        RAW_IFD,
1109        0,
1110        UNDEFINED_ENDIAN
1111    },
1112    { // DefaultUserCrop
1113        0xC7B5u,
1114        RATIONAL,
1115        RAW_IFD,
1116        4,
1117        UNDEFINED_ENDIAN
1118    },
1119    { // DefaultBlackRender
1120        0xC7A6u,
1121        LONG,
1122        PROFILE_IFD,
1123        1,
1124        UNDEFINED_ENDIAN
1125    },
1126    { // BaselineExposureOffset
1127        0xC7A5u,
1128        RATIONAL,
1129        PROFILE_IFD,
1130        1,
1131        UNDEFINED_ENDIAN
1132    },
1133    { // ProfileLookTableEncoding
1134        0xC7A4u,
1135        LONG,
1136        PROFILE_IFD,
1137        1,
1138        UNDEFINED_ENDIAN
1139    },
1140    { // ProfileHueSatMapEncoding
1141        0xC7A3u,
1142        LONG,
1143        PROFILE_IFD,
1144        1,
1145        UNDEFINED_ENDIAN
1146    },
1147    { // OriginalDefaultFinalSize
1148        0xC791u,
1149        LONG,
1150        IFD_0,
1151        2,
1152        UNDEFINED_ENDIAN
1153    },
1154    { // OriginalBestQualityFinalSize
1155        0xC792u,
1156        LONG,
1157        IFD_0,
1158        2,
1159        UNDEFINED_ENDIAN
1160    },
1161    { // OriginalDefaultCropSize
1162        0xC793u,
1163        LONG,
1164        IFD_0,
1165        2,
1166        UNDEFINED_ENDIAN
1167    },
1168    { // NewRawImageDigest
1169        0xC7A7u,
1170        BYTE,
1171        IFD_0,
1172        16,
1173        UNDEFINED_ENDIAN
1174    },
1175    { // RawToPreviewGain
1176        0xC7A8u,
1177        DOUBLE,
1178        PREVIEW_IFD,
1179        1,
1180        UNDEFINED_ENDIAN
1181    },
1182};
1183
1184} /*namespace img_utils*/
1185} /*namespace android*/
1186
1187#endif /*IMG_UTILS_TIFF_TAG_DEFINITION_H*/
1188