blob: a0c553c6cb01b605bdb3aff5e228c438dec5fdea [file] [log] [blame]
/*****************************************************************************/
// Copyright 2006-2007 Adobe Systems Incorporated
// All Rights Reserved.
//
// NOTICE: Adobe permits you to use, modify, and distribute this file in
// accordance with the terms of the Adobe license agreement accompanying it.
/*****************************************************************************/
/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_tag_values.h#1 $ */
/* $DateTime: 2012/05/30 13:28:51 $ */
/* $Change: 832332 $ */
/* $Author: tknoll $ */
/*****************************************************************************/
#ifndef __dng_tag_values__
#define __dng_tag_values__
/*****************************************************************************/
#include "dng_flags.h"
/*****************************************************************************/
// Values for NewSubFileType tag.
enum
{
// The main image data.
sfMainImage = 0,
// Preview image for the primary settings.
sfPreviewImage = 1,
// Transparency mask
sfTransparencyMask = 4,
// Preview Transparency mask
sfPreviewMask = sfPreviewImage + sfTransparencyMask,
// Preview image for non-primary settings.
sfAltPreviewImage = 0x10001
};
/******************************************************************************/
// Values for PhotometricInterpretation tag.
enum
{
piWhiteIsZero = 0,
piBlackIsZero = 1,
piRGB = 2,
piRGBPalette = 3,
piTransparencyMask = 4,
piCMYK = 5,
piYCbCr = 6,
piCIELab = 8,
piICCLab = 9,
piCFA = 32803, // TIFF-EP spec
piLinearRaw = 34892
};
/******************************************************************************/
// Values for PlanarConfiguration tag.
enum
{
pcInterleaved = 1,
pcPlanar = 2,
// Ordering, using an RGB image as an example:
//
// RRRRRRRRRR
// GGGGGGGGGG
// BBBBBBBBBB
// RRRRRRRRRR
// GGGGGGGGGG
// BBBBBBBBBB
//
// The "Align16" variant additionally ensures that the offset of each
// plane's row is aligned to an integer multiple of 16 bytes from the
// beginning of the buffer.
pcRowInterleaved = 100000, // Internal use only
pcRowInterleavedAlign16 = 100001 // Internal use only
};
/******************************************************************************/
// Values for ExtraSamples tag.
enum
{
esUnspecified = 0,
esAssociatedAlpha = 1,
esUnassociatedAlpha = 2
};
/******************************************************************************/
// Values for SampleFormat tag.
enum
{
sfUnsignedInteger = 1,
sfSignedInteger = 2,
sfFloatingPoint = 3,
sfUndefined = 4
};
/******************************************************************************/
// Values for Compression tag.
enum
{
ccUncompressed = 1,
ccLZW = 5,
ccOldJPEG = 6,
ccJPEG = 7,
ccDeflate = 8,
ccPackBits = 32773,
ccOldDeflate = 32946,
// Used in DNG files in places that allow lossless JPEG.
ccLossyJPEG = 34892
};
/******************************************************************************/
// Values for Predictor tag.
enum
{
cpNullPredictor = 1,
cpHorizontalDifference = 2,
cpFloatingPoint = 3,
cpHorizontalDifferenceX2 = 34892,
cpHorizontalDifferenceX4 = 34893,
cpFloatingPointX2 = 34894,
cpFloatingPointX4 = 34895
};
/******************************************************************************/
// Values for ResolutionUnit tag.
enum
{
ruNone = 1,
ruInch = 2,
ruCM = 3,
ruMM = 4,
ruMicroM = 5
};
/******************************************************************************/
// Values for LightSource tag.
enum
{
lsUnknown = 0,
lsDaylight = 1,
lsFluorescent = 2,
lsTungsten = 3,
lsFlash = 4,
lsFineWeather = 9,
lsCloudyWeather = 10,
lsShade = 11,
lsDaylightFluorescent = 12, // D 5700 - 7100K
lsDayWhiteFluorescent = 13, // N 4600 - 5500K
lsCoolWhiteFluorescent = 14, // W 3800 - 4500K
lsWhiteFluorescent = 15, // WW 3250 - 3800K
lsWarmWhiteFluorescent = 16, // L 2600 - 3250K
lsStandardLightA = 17,
lsStandardLightB = 18,
lsStandardLightC = 19,
lsD55 = 20,
lsD65 = 21,
lsD75 = 22,
lsD50 = 23,
lsISOStudioTungsten = 24,
lsOther = 255
};
/******************************************************************************/
// Values for ExposureProgram tag.
enum
{
epUnidentified = 0,
epManual = 1,
epProgramNormal = 2,
epAperturePriority = 3,
epShutterPriority = 4,
epProgramCreative = 5,
epProgramAction = 6,
epPortraitMode = 7,
epLandscapeMode = 8
};
/******************************************************************************/
// Values for MeteringMode tag.
enum
{
mmUnidentified = 0,
mmAverage = 1,
mmCenterWeightedAverage = 2,
mmSpot = 3,
mmMultiSpot = 4,
mmPattern = 5,
mmPartial = 6,
mmOther = 255
};
/******************************************************************************/
// CFA color codes from the TIFF/EP specification.
enum ColorKeyCode
{
colorKeyRed = 0,
colorKeyGreen = 1,
colorKeyBlue = 2,
colorKeyCyan = 3,
colorKeyMagenta = 4,
colorKeyYellow = 5,
colorKeyWhite = 6,
colorKeyMaxEnum = 0xFF
};
/*****************************************************************************/
// Values for the SensitivityType tag.
enum
{
stUnknown = 0,
stStandardOutputSensitivity = 1,
stRecommendedExposureIndex = 2,
stISOSpeed = 3,
stSOSandREI = 4,
stSOSandISOSpeed = 5,
stREIandISOSpeed = 6,
stSOSandREIandISOSpeed = 7
};
/*****************************************************************************/
// Values for the ColorimetricReference tag. It specifies the colorimetric
// reference used for images with PhotometricInterpretation values of CFA
// or LinearRaw.
enum
{
// Scene referred (default):
crSceneReferred = 0,
// Output referred using the parameters of the ICC profile PCS.
crICCProfilePCS = 1
};
/*****************************************************************************/
// Values for the ProfileEmbedPolicy tag.
enum
{
// Freely embedable and copyable into installations that encounter this
// profile, so long as the profile is only used to process DNG files.
pepAllowCopying = 0,
// Can be embeded in a DNG for portable processing, but cannot be used
// to process other files that the profile is not embedded in.
pepEmbedIfUsed = 1,
// Can only be used if installed on the machine processing the file.
// Note that this only applies to stand-alone profiles. Profiles that
// are already embedded inside a DNG file allowed to remain embedded
// in that DNG, even if the DNG is resaved.
pepEmbedNever = 2,
// No restricts on profile use or embedding.
pepNoRestrictions = 3
};
/*****************************************************************************/
// Values for the ProfileHueSatMapEncoding and ProfileLookTableEncoding tags.
enum
{
// 1. Convert linear ProPhoto RGB values to HSV.
// 2. Use the HSV coordinates to index into the color table.
// 3. Apply color table result to the original HSV values.
// 4. Convert modified HSV values back to linear ProPhoto RGB.
encoding_Linear = 0,
// 1. Convert linear ProPhoto RGB values to HSV.
// 2. Encode V coordinate using sRGB encoding curve.
// 3. Use the encoded HSV coordinates to index into the color table.
// 4. Apply color table result to the encoded values from step 2.
// 5. Decode V coordinate using sRGB decoding curve (inverse of step 2).
// 6. Convert HSV values back to linear ProPhoto RGB (inverse of step 1).
encoding_sRGB = 1
};
/*****************************************************************************/
// Values for the DefaultBlackRender tag.
enum
{
// By default, the renderer applies (possibly auto-calculated) black subtraction
// prior to the look table.
defaultBlackRender_Auto = 0,
// By default, the renderer does not apply any black subtraction prior to the
// look table.
defaultBlackRender_None = 1
};
/*****************************************************************************/
// Values for the PreviewColorSpace tag.
enum PreviewColorSpaceEnum
{
previewColorSpace_Unknown = 0,
previewColorSpace_GrayGamma22 = 1,
previewColorSpace_sRGB = 2,
previewColorSpace_AdobeRGB = 3,
previewColorSpace_ProPhotoRGB = 4,
previewColorSpace_LastValid = previewColorSpace_ProPhotoRGB,
previewColorSpace_MaxEnum = 0xFFFFFFFF
};
/*****************************************************************************/
// Values for CacheVersion tag.
enum
{
// The low-16 bits are a rendering version number.
cacheVersionMask = 0x0FFFF,
// Default cache version.
cacheVersionDefault = 0x00100,
// Is this an integer preview of a floating point image?
cacheVersionDefloated = 0x10000,
// Is this an flattening preview of an image with tranparency?
cacheVersionFlattened = 0x20000,
// Was this preview build using a the default baseline multi-channel
// CFA merge (i.e. only using the first channel)?
cacheVersionFakeMerge = 0x40000
};
/*****************************************************************************/
// TIFF-style byte order markers.
enum
{
byteOrderII = 0x4949, // 'II'
byteOrderMM = 0x4D4D // 'MM'
};
/*****************************************************************************/
// "Magic" numbers.
enum
{
// DNG related.
magicTIFF = 42, // TIFF (and DNG)
magicExtendedProfile = 0x4352, // 'CR'
magicRawCache = 1022, // Raw cache (fast load data)
// Other raw formats - included here so the DNG SDK can parse them.
magicPanasonic = 85,
magicOlympusA = 0x4F52,
magicOlympusB = 0x5352
};
/*****************************************************************************/
// DNG Version numbers
enum
{
dngVersion_None = 0,
dngVersion_1_0_0_0 = 0x01000000,
dngVersion_1_1_0_0 = 0x01010000,
dngVersion_1_2_0_0 = 0x01020000,
dngVersion_1_3_0_0 = 0x01030000,
dngVersion_1_4_0_0 = 0x01040000,
dngVersion_Current = dngVersion_1_4_0_0,
dngVersion_SaveDefault = dngVersion_Current
};
/*****************************************************************************/
#endif
/*****************************************************************************/