28 #ifndef AVCODEC_EXIF_H 
   29 #define AVCODEC_EXIF_H 
   35 #define EXIF_MAX_IFD_RECURSION 2 
   36 #define EXIF_TAG_NAME_LENGTH   32 
   44     {
"GPSVersionID",               0x00}, 
 
   45     {
"GPSLatitudeRef",             0x01},
 
   46     {
"GPSLatitude",                0x02},
 
   47     {
"GPSLongitudeRef",            0x03},
 
   48     {
"GPSLongitude",               0x04},
 
   49     {
"GPSAltitudeRef",             0x05},
 
   50     {
"GPSAltitude",                0x06},
 
   51     {
"GPSTimeStamp",               0x07},
 
   52     {
"GPSSatellites",              0x08},
 
   54     {
"GPSMeasureMode",             0x0A},
 
   56     {
"GPSSpeedRef",                0x0C},
 
   58     {
"GPSTrackRef",                0x0E},
 
   60     {
"GPSImgDirectionRef",         0x10},
 
   61     {
"GPSImgDirection",            0x11},
 
   62     {
"GPSMapDatum",                0x12},
 
   63     {
"GPSDestLatitudeRef",         0x13},
 
   64     {
"GPSDestLatitude",            0x14},
 
   65     {
"GPSDestLongitudeRef",        0x15},
 
   66     {
"GPSDestLongitude",           0x16},
 
   67     {
"GPSDestBearingRef",          0x17},
 
   68     {
"GPSDestBearing",             0x18},
 
   69     {
"GPSDestDistanceRef",         0x19},
 
   70     {
"GPSDestDistance",            0x1A},
 
   71     {
"GPSProcessingMethod",        0x1B},
 
   72     {
"GPSAreaInformation",         0x1C},
 
   73     {
"GPSDateStamp",               0x1D},
 
   74     {
"GPSDifferential",            0x1E},
 
   75     {
"ImageWidth",                 0x100}, 
 
   76     {
"ImageLength",                0x101},
 
   77     {
"BitsPerSample",              0x102},
 
   78     {
"Compression",                0x103},
 
   79     {
"PhotometricInterpretation",  0x106},
 
   80     {
"Orientation",                0x112},
 
   81     {
"SamplesPerPixel",            0x115},
 
   82     {
"PlanarConfiguration",        0x11C},
 
   83     {
"YCbCrSubSampling",           0x212},
 
   84     {
"YCbCrPositioning",           0x213},
 
   85     {
"XResolution",                0x11A},
 
   86     {
"YResolution",                0x11B},
 
   87     {
"ResolutionUnit",             0x128},
 
   88     {
"StripOffsets",               0x111},
 
   89     {
"RowsPerStrip",               0x116},
 
   90     {
"StripByteCounts",            0x117},
 
   91     {
"JPEGInterchangeFormat",      0x201},
 
   92     {
"JPEGInterchangeFormatLength",0x202},
 
   93     {
"TransferFunction",           0x12D},
 
   94     {
"WhitePoint",                 0x13E},
 
   95     {
"PrimaryChromaticities",      0x13F},
 
   96     {
"YCbCrCoefficients",          0x211},
 
   97     {
"ReferenceBlackWhite",        0x214},
 
   99     {
"ImageDescription",           0x10E},
 
  104     {
"Copyright",                  0x8298},
 
  105     {
"ExifVersion",                0x9000}, 
 
  106     {
"FlashpixVersion",            0xA000},
 
  107     {
"ColorSpace",                 0xA001},
 
  108     {
"ComponentsConfiguration",    0x9101},
 
  109     {
"CompressedBitsPerPixel",     0x9102},
 
  110     {
"PixelXDimension",            0xA002},
 
  111     {
"PixelYDimension",            0xA003},
 
  112     {
"MakerNote",                  0x927C},
 
  113     {
"UserComment",                0x9286},
 
  114     {
"RelatedSoundFile",           0xA004},
 
  115     {
"DateTimeOriginal",           0x9003},
 
  116     {
"DateTimeDigitized",          0x9004},
 
  117     {
"SubSecTime",                 0x9290},
 
  118     {
"SubSecTimeOriginal",         0x9291},
 
  119     {
"SubSecTimeDigitized",        0x9292},
 
  120     {
"ImageUniqueID",              0xA420},
 
  121     {
"ExposureTime",               0x829A}, 
 
  123     {
"ExposureProgram",            0x8822},
 
  124     {
"SpectralSensitivity",        0x8824},
 
  125     {
"ISOSpeedRatings",            0x8827},
 
  127     {
"ShutterSpeedValue",          0x9201},
 
  128     {
"ApertureValue",              0x9202},
 
  129     {
"BrightnessValue",            0x9203},
 
  130     {
"ExposureBiasValue",          0x9204},
 
  131     {
"MaxApertureValue",           0x9205},
 
  132     {
"SubjectDistance",            0x9206},
 
  133     {
"MeteringMode",               0x9207},
 
  134     {
"LightSource",                0x9208},
 
  136     {
"FocalLength",                0x920A},
 
  137     {
"SubjectArea",                0x9214},
 
  138     {
"FlashEnergy",                0xA20B},
 
  139     {
"SpatialFrequencyResponse",   0xA20C},
 
  140     {
"FocalPlaneXResolution",      0xA20E},
 
  141     {
"FocalPlaneYResolution",      0xA20F},
 
  142     {
"FocalPlaneResolutionUnit",   0xA210},
 
  143     {
"SubjectLocation",            0xA214},
 
  144     {
"ExposureIndex",              0xA215},
 
  145     {
"SensingMethod",              0xA217},
 
  146     {
"FileSource",                 0xA300},
 
  147     {
"SceneType",                  0xA301},
 
  148     {
"CFAPattern",                 0xA302},
 
  149     {
"CustomRendered",             0xA401},
 
  150     {
"ExposureMode",               0xA402},
 
  151     {
"WhiteBalance",               0xA403},
 
  152     {
"DigitalZoomRatio",           0xA404},
 
  153     {
"FocalLengthIn35mmFilm",      0xA405},
 
  154     {
"SceneCaptureType",           0xA406},
 
  155     {
"GainControl",                0xA407},
 
  156     {
"Contrast",                   0xA408},
 
  157     {
"Saturation",                 0xA409},
 
  158     {
"Sharpness",                  0xA40A},
 
  159     {
"DeviceSettingDescription",   0xA40B},
 
  160     {
"SubjectDistanceRange",       0xA40C}
 
static const struct exif_tag tag_list[]
 
#define EXIF_TAG_NAME_LENGTH
 
int ff_exif_decode_ifd(void *logctx, GetByteContext *gbytes, int le, int depth, AVDictionary **metadata)
 
Libavcodec external API header. 
 
int avpriv_exif_decode_ifd(void *logctx, const uint8_t *buf, int size, int le, int depth, AVDictionary **metadata)
Recursively decodes all IFD's and adds included TAGS into the metadata dictionary.