// 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 _FX_CODEC_DEF_H_
#define _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,
    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
#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
