// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef CORE_FXCODEC_FX_CODEC_DEF_H_
#define CORE_FXCODEC_FX_CODEC_DEF_H_

enum FXCODEC_STATUS {
  FXCODEC_STATUS_ERROR = -1,
  FXCODEC_STATUS_FRAME_READY,
  FXCODEC_STATUS_FRAME_TOBECONTINUE,
  FXCODEC_STATUS_DECODE_READY,
  FXCODEC_STATUS_DECODE_TOBECONTINUE,
  FXCODEC_STATUS_DECODE_FINISH,
#ifdef PDF_ENABLE_XFA
  FXCODEC_STATUS_ERR_MEMORY,
#endif  // PDF_ENABLE_XFA
  FXCODEC_STATUS_ERR_READ,
  FXCODEC_STATUS_ERR_FLUSH,
  FXCODEC_STATUS_ERR_FORMAT,
  FXCODEC_STATUS_ERR_PARAMS
};
#define JP2_SPACE_INVALID -1
#define JPX_SPACE_INVALID -1
#define JP2_SPACE_bilevel1 0
#define JP2_SPACE_YCbCr1 1
#define JP2_SPACE_YCbCr2 3
#define JP2_SPACE_YCbCr3 4
#define JP2_SPACE_PhotoYCC 9
#define JP2_SPACE_CMY 11
#define JP2_SPACE_CMYK 12
#define JP2_SPACE_YCCK 13
#define JP2_SPACE_CIELab 14
#define JP2_SPACE_bilevel2 15
#define JP2_SPACE_sRGB 16
#define JP2_SPACE_sLUM 17
#define JP2_SPACE_sYCC 18
#define JP2_SPACE_CIEJab 19
#define JP2_SPACE_esRGB 20
#define JP2_SPACE_ROMMRGB 21
#define JP2_SPACE_YPbPr60 22
#define JP2_SPACE_YPbPr50 23
#define JP2_SPACE_esYCC 24
#define JP2_SPACE_iccLUM 100
#define JP2_SPACE_iccRGB 101
#define Icc_INTENT_PERCEPTUAL 0
#define Icc_INTENT_RELATIVE_COLORIMETRIC 1
#define Icc_INTENT_SATURATION 2
#define Icc_INTENT_ABSOLUTE_COLORIMETRIC 3
#define Icc_FORMAT_DEFAULT 0
#define Icc_FORMAT_SWAP (1 << 10)
#define Icc_FLAGS_DEFAULT 0x0000
#define Icc_FLAGS_BLACKPOINTCOMPENSATION 0x2000
#define Icc_FLAGS_NOWHITEONWHITEFIXUP 0x0004
#define Icc_FLAGS_HIGHRESPRECALC 0x0400
#define Icc_FLAGS_LOWRESPRECALC 0x0800
#define Icc_FLAGS_GAMUTCHECK 0x1000
#define Icc_FLAGS_SOFTPROOFING 0x4000
#define Icc_PARAMTYPE_NONE 0
#define Icc_PARAMTYPE_BUFFER 1
#define Icc_PARAMTYPE_PARAM 2
#ifdef PDF_ENABLE_XFA
enum FXCODEC_IMAGE_TYPE {
  FXCODEC_IMAGE_UNKNOWN = 0,
  FXCODEC_IMAGE_BMP,
  FXCODEC_IMAGE_JPG,
  FXCODEC_IMAGE_PNG,
  FXCODEC_IMAGE_GIF,
  FXCODEC_IMAGE_TIF,
  FXCODEC_IMAGE_MAX
};
enum FXCODEC_RESUNIT {
  FXCODEC_RESUNIT_NONE = 0,
  FXCODEC_RESUNIT_INCH,
  FXCODEC_RESUNIT_CENTIMETER,
  FXCODEC_RESUNIT_METER
};
#endif  // PDF_ENABLE_XFA
#define EXIFTAG_USHORT_RESUNIT 296
#define EXIFTAG_FLOAT_DPIX 282
#define EXIFTAG_FLOAT_DPIY 283
#define EXIFTAG_USHORT_ORIENTATION 274
#define EXIFTAG_STRING_MANUFACTURER 271
#define EXIFTAG_STRING_MODULE 272
#define EXIFTAG_STRING_SOFTWARE 305
#define EXIFTAG_STRING_IAMGEDESCRIPTION 270
#define EXIFTAG_STRING_DATETIME 306
#define EXIFTAG_STRING_COPYRIGHT 33432

#endif  // CORE_FXCODEC_FX_CODEC_DEF_H_
