// 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_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_
