00001 // 00002 // (C) Jan de Vaan 2007-2010, all rights reserved. See the accompanying "License.txt" for licensed use. 00003 // 00004 #ifndef CHARLS_PUBLICTYPES 00005 #define CHARLS_PUBLICTYPES 00006 00007 #include "config.h" 00008 00009 enum JLS_ERROR 00010 { 00011 OK = 0, 00012 InvalidJlsParameters, 00013 ParameterValueNotSupported, 00014 UncompressedBufferTooSmall, 00015 CompressedBufferTooSmall, 00016 InvalidCompressedData, 00017 TooMuchCompressedData, 00018 ImageTypeNotSupported, 00019 UnsupportedBitDepthForTransform, 00020 UnsupportedColorTransform 00021 }; 00022 00023 00024 enum interleavemode 00025 { 00026 ILV_NONE = 0, 00027 ILV_LINE = 1, 00028 ILV_SAMPLE = 2 00029 }; 00030 00031 00032 struct JlsCustomParameters 00033 { 00034 int MAXVAL; 00035 int T1; 00036 int T2; 00037 int T3; 00038 int RESET; 00039 }; 00040 00041 00042 struct JlsRect 00043 { 00044 int X, Y; 00045 int Width, Height; 00046 }; 00047 00048 00049 struct JfifParameters 00050 { 00051 int Ver; 00052 char units; 00053 int XDensity; 00054 int YDensity; 00055 short Xthumb; 00056 short Ythumb; 00057 void* pdataThumbnail; // user must set buffer which size is Xthumb*Ythumb*3(RGB) before JpegLsDecode() 00058 }; 00059 00060 00061 struct JlsParameters 00062 { 00063 int width; 00064 int height; 00065 int bitspersample; 00066 int bytesperline; // for [source (at encoding)][decoded (at decoding)] pixel image in user buffer 00067 int components; 00068 int allowedlossyerror; 00069 enum interleavemode ilv; 00070 int colorTransform; 00071 char outputBgr; 00072 struct JlsCustomParameters custom; 00073 struct JfifParameters jfif; 00074 }; 00075 00076 #endif