Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright (c) 2006 Konstantin Shishkov
  3.  *
  4.  * This file is part of FFmpeg.
  5.  *
  6.  * FFmpeg is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU Lesser General Public
  8.  * License as published by the Free Software Foundation; either
  9.  * version 2.1 of the License, or (at your option) any later version.
  10.  *
  11.  * FFmpeg is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14.  * Lesser General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU Lesser General Public
  17.  * License along with FFmpeg; if not, write to the Free Software
  18.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  19.  */
  20.  
  21. /**
  22.  * @file
  23.  * TIFF tables
  24.  *
  25.  * For more information about the TIFF format, check the official docs at:
  26.  * http://partners.adobe.com/public/developer/tiff/index.html
  27.  * @author Konstantin Shishkov
  28.  */
  29.  
  30. #ifndef AVCODEC_TIFF_H
  31. #define AVCODEC_TIFF_H
  32.  
  33. #include <stdint.h>
  34. #include "tiff_common.h"
  35.  
  36. /** abridged list of TIFF tags */
  37. enum TiffTags {
  38.     TIFF_SUBFILE            = 0xfe,
  39.     TIFF_WIDTH              = 0x100,
  40.     TIFF_HEIGHT,
  41.     TIFF_BPP,
  42.     TIFF_COMPR,
  43.     TIFF_INVERT             = 0x106,
  44.     TIFF_FILL_ORDER         = 0x10A,
  45.     TIFF_DOCUMENT_NAME      = 0x10D,
  46.     TIFF_IMAGE_DESCRIPTION  = 0x10E,
  47.     TIFF_MAKE               = 0x10F,
  48.     TIFF_MODEL              = 0x110,
  49.     TIFF_STRIP_OFFS         = 0x111,
  50.     TIFF_SAMPLES_PER_PIXEL  = 0x115,
  51.     TIFF_ROWSPERSTRIP       = 0x116,
  52.     TIFF_STRIP_SIZE,
  53.     TIFF_XRES               = 0x11A,
  54.     TIFF_YRES               = 0x11B,
  55.     TIFF_PLANAR             = 0x11C,
  56.     TIFF_PAGE_NAME          = 0x11D,
  57.     TIFF_XPOS               = 0x11E,
  58.     TIFF_YPOS               = 0x11F,
  59.     TIFF_T4OPTIONS          = 0x124,
  60.     TIFF_T6OPTIONS,
  61.     TIFF_RES_UNIT           = 0x128,
  62.     TIFF_PAGE_NUMBER        = 0x129,
  63.     TIFF_SOFTWARE_NAME      = 0x131,
  64.     TIFF_DATE               = 0x132,
  65.     TIFF_ARTIST             = 0x13B,
  66.     TIFF_HOST_COMPUTER      = 0x13C,
  67.     TIFF_PREDICTOR          = 0x13D,
  68.     TIFF_PAL                = 0x140,
  69.     TIFF_TILE_WIDTH         = 0x142,
  70.     TIFF_TILE_LENGTH        = 0x143,
  71.     TIFF_TILE_OFFSETS       = 0x144,
  72.     TIFF_TILE_BYTE_COUNTS   = 0x145,
  73.     TIFF_EXTRASAMPLES       = 0x152,
  74.     TIFF_YCBCR_COEFFICIENTS = 0x211,
  75.     TIFF_YCBCR_SUBSAMPLING  = 0x212,
  76.     TIFF_YCBCR_POSITIONING  = 0x213,
  77.     TIFF_REFERENCE_BW       = 0x214,
  78.     TIFF_COPYRIGHT          = 0x8298,
  79.     TIFF_MODEL_TIEPOINT     = 0x8482,
  80.     TIFF_MODEL_PIXEL_SCALE  = 0x830E,
  81.     TIFF_MODEL_TRANSFORMATION= 0x8480,
  82.     TIFF_GEO_KEY_DIRECTORY  = 0x87AF,
  83.     TIFF_GEO_DOUBLE_PARAMS  = 0x87B0,
  84.     TIFF_GEO_ASCII_PARAMS   = 0x87B1
  85. };
  86.  
  87. /** list of TIFF compression types */
  88. enum TiffCompr {
  89.     TIFF_RAW = 1,
  90.     TIFF_CCITT_RLE,
  91.     TIFF_G3,
  92.     TIFF_G4,
  93.     TIFF_LZW,
  94.     TIFF_JPEG,
  95.     TIFF_NEWJPEG,
  96.     TIFF_ADOBE_DEFLATE,
  97.     TIFF_PACKBITS = 0x8005,
  98.     TIFF_DEFLATE  = 0x80B2
  99. };
  100.  
  101. enum TiffGeoTagKey {
  102.     TIFF_GT_MODEL_TYPE_GEOKEY                = 1024,
  103.     TIFF_GT_RASTER_TYPE_GEOKEY               = 1025,
  104.     TIFF_GT_CITATION_GEOKEY                  = 1026,
  105.     TIFF_GEOGRAPHIC_TYPE_GEOKEY              = 2048,
  106.     TIFF_GEOG_CITATION_GEOKEY                = 2049,
  107.     TIFF_GEOG_GEODETIC_DATUM_GEOKEY          = 2050,
  108.     TIFF_GEOG_PRIME_MERIDIAN_GEOKEY          = 2051,
  109.     TIFF_GEOG_LINEAR_UNITS_GEOKEY            = 2052,
  110.     TIFF_GEOG_LINEAR_UNIT_SIZE_GEOKEY        = 2053,
  111.     TIFF_GEOG_ANGULAR_UNITS_GEOKEY           = 2054,
  112.     TIFF_GEOG_ANGULAR_UNIT_SIZE_GEOKEY       = 2055,
  113.     TIFF_GEOG_ELLIPSOID_GEOKEY               = 2056,
  114.     TIFF_GEOG_SEMI_MAJOR_AXIS_GEOKEY         = 2057,
  115.     TIFF_GEOG_SEMI_MINOR_AXIS_GEOKEY         = 2058,
  116.     TIFF_GEOG_INV_FLATTENING_GEOKEY          = 2059,
  117.     TIFF_GEOG_AZIMUTH_UNITS_GEOKEY           = 2060,
  118.     TIFF_GEOG_PRIME_MERIDIAN_LONG_GEOKEY     = 2061,
  119.     TIFF_PROJECTED_CS_TYPE_GEOKEY            = 3072,
  120.     TIFF_PCS_CITATION_GEOKEY                 = 3073,
  121.     TIFF_PROJECTION_GEOKEY                   = 3074,
  122.     TIFF_PROJ_COORD_TRANS_GEOKEY             = 3075,
  123.     TIFF_PROJ_LINEAR_UNITS_GEOKEY            = 3076,
  124.     TIFF_PROJ_LINEAR_UNIT_SIZE_GEOKEY        = 3077,
  125.     TIFF_PROJ_STD_PARALLEL1_GEOKEY           = 3078,
  126.     TIFF_PROJ_STD_PARALLEL2_GEOKEY           = 3079,
  127.     TIFF_PROJ_NAT_ORIGIN_LONG_GEOKEY         = 3080,
  128.     TIFF_PROJ_NAT_ORIGIN_LAT_GEOKEY          = 3081,
  129.     TIFF_PROJ_FALSE_EASTING_GEOKEY           = 3082,
  130.     TIFF_PROJ_FALSE_NORTHING_GEOKEY          = 3083,
  131.     TIFF_PROJ_FALSE_ORIGIN_LONG_GEOKEY       = 3084,
  132.     TIFF_PROJ_FALSE_ORIGIN_LAT_GEOKEY        = 3085,
  133.     TIFF_PROJ_FALSE_ORIGIN_EASTING_GEOKEY    = 3086,
  134.     TIFF_PROJ_FALSE_ORIGIN_NORTHING_GEOKEY   = 3087,
  135.     TIFF_PROJ_CENTER_LONG_GEOKEY             = 3088,
  136.     TIFF_PROJ_CENTER_LAT_GEOKEY              = 3089,
  137.     TIFF_PROJ_CENTER_EASTING_GEOKEY          = 3090,
  138.     TIFF_PROJ_CENTER_NORTHING_GEOKEY         = 3091,
  139.     TIFF_PROJ_SCALE_AT_NAT_ORIGIN_GEOKEY     = 3092,
  140.     TIFF_PROJ_SCALE_AT_CENTER_GEOKEY         = 3093,
  141.     TIFF_PROJ_AZIMUTH_ANGLE_GEOKEY           = 3094,
  142.     TIFF_PROJ_STRAIGHT_VERT_POLE_LONG_GEOKEY = 3095,
  143.     TIFF_VERTICAL_CS_TYPE_GEOKEY             = 4096,
  144.     TIFF_VERTICAL_CITATION_GEOKEY            = 4097,
  145.     TIFF_VERTICAL_DATUM_GEOKEY               = 4098,
  146.     TIFF_VERTICAL_UNITS_GEOKEY               = 4099
  147. };
  148.  
  149. enum TiffGeoTagType {
  150.     GEOTIFF_SHORT  = 0,
  151.     GEOTIFF_DOUBLE = 34736,
  152.     GEOTIFF_STRING = 34737
  153. };
  154.  
  155. typedef struct TiffGeoTag {
  156.     enum TiffGeoTagKey key;
  157.     enum TiffTags type;
  158.     int count;
  159.     int offset;
  160.     char *val;
  161. } TiffGeoTag;
  162.  
  163. typedef struct TiffGeoTagKeyName {
  164.     const enum TiffGeoTagKey key;
  165.     const char *const name;
  166. } TiffGeoTagKeyName;
  167.  
  168. typedef struct TiffGeoTagNameType {
  169.     const char *const name;
  170.     const enum TiffGeoTagType type;
  171. } TiffGeoTagNameType;
  172.  
  173. #endif /* AVCODEC_TIFF_H */
  174.