OpenSimMirror/OpenSim/Framework/OpenJpeg/openjpeg.cs

376 lines
9.8 KiB
C#

/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSimulator Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
using System;
using System.Collections.Generic;
using System.Text;
namespace OpenSim.Framework.OpenJpeg
{
public class openjpeg
{
public openjpeg()
{
}
}
public enum PROG_ORDER
{
PROG_UNKNOWN = -1,
LRCP = 0,
RLCP = 1,
RPCL = 2,
PCRL = 3,
CPRL = 4
}
public enum RSIZ_CAPABILITIES
{
STD_RSIZ = 0,
CINEMA2K = 3,
CINEMA4K = 4
}
public enum CINEMA_MODE
{
OFF = 0,
CINEMA2K_24 = 1,
CINEMA2K_48 = 2,
CINEMA4K_24 = 3
}
public enum COLOR_SPACE
{
CLRSPC_UNKNOWN = -1,
CLRSPC_SRGB = 1,
CLRSPC_GRAY = 2,
CLRSPC_SYCC = 3
}
public enum CODEC_FORMAT
{
CODEC_UNKNOWN = -1,
CODEC_J2K = 0,
CODEC_JPT = 1,
CODEC_JP2 = 2
}
public enum LIMIT_DECODING
{
NO_LIMITATION = 0,
LIMIT_TO_MAIN_HEADER=1,
DECODE_ALL_BUT_PACKETS = 2
}
public struct opj_poc
{
public int resno0, compno0;
public int layno1, resno1, compno1;
public int layno0, precno0, precno1;
public PROG_ORDER prg1, prg;
/// <summary>
/// Don't forget to initialize with 5 elements
/// </summary>
public sbyte[] progorder;
public int tile;
public int tx0, tx1, ty0, ty1;
public int layS, resS, copmS, prcS;
public int layE, resE, compE, prcE;
public int txS, txE, tyS, tyE, dx, dy;
public int lay_t, res_t, comp_t, prc_t, tx0_t, ty0_t;
}
public struct opj_cparameters
{
public bool tile_size_on;
public int cp_tx0;
public int cp_ty0;
public int cp_tdx;
public int cp_tdy;
public int cp_disto_alloc;
public int cp_fixed_alloc;
public int cp_fixed_wuality;
public int cp_matrice;
public sbyte cp_comment;
public int csty;
public PROG_ORDER prog_order;
/// <summary>
/// Don't forget to initialize 32 elements
/// </summary>
public opj_poc[] POC;
public int numpocs;
public int tcp_numlayers;
/// <summary>
/// Don't forget to intitialize 100 elements
/// </summary>
public float[] tcp_rates;
/// <summary>
/// Don't forget to initialize 100 elements
/// </summary>
public float[] tcp_distoratio;
public int numresolution;
public int cblockw_init;
public int cblockh_init;
public int mode;
public int irreversible;
public int roi_compno;
public int roi_shift;
public int res_spec;
/// <summary>
/// Don't forget to initialize 33 elements
/// </summary>
public int[] prc_init;
/// <summary>
/// Don't forget to initialize 33 elements
/// </summary>
public int[] prch_init;
public string infile;
public string outfile;
public int index_on;
public string index;
public int image_offset_x0;
public int image_offset_y0;
public int subsampling_dx;
public int subsampling_dy;
public int decod_format;
public int cod_format;
public bool jpwl_epc_on;
public int jpwl_hprot_MH;
/// <summary>
/// Don't forget to initialize 16 elements
/// </summary>
public int[] jpwl_hprot_TPH_tileno;
/// <summary>
/// Don't forget to initialize 16 elements
/// </summary>
public int[] jpwl_hprot_TPH;
/// <summary>
/// Don't forget to initialize 16 elements
/// </summary>
public int[] jpwl_pprot_tileno;
public int[] jpwl_pprot_packno;
public int[] jpwl_pprot;
public int jpwl_sens_size;
public int jpwl_sense_addr;
public int jpwl_sens_range;
public int jpwl_sens_MH;
/// <summary>
/// Don't forget to initialize 16 elements
/// </summary>
public int[] jpwl_sens_TPH_tileno;
/// <summary>
/// Don't forget to initialize 16 elements
/// </summary>
public int[] jpwl_sens_TPH;
public CINEMA_MODE cp_cinema;
public int max_comp_size;
public sbyte tp_on;
public sbyte tp_flag;
public sbyte tcp_mct;
}
public struct opj_dparameters
{
public int cp_reduce;
public int cp_layer;
public string infile;
public string outfile;
public int decod_format;
public int cod_format;
public bool jpwl_correct;
public int jpwl_exp_comps;
public int jpwl_max_tiles;
public LIMIT_DECODING cp_limit_decoding;
}
public struct opj_common_fields
{
public bool is_decompressor;
public CODEC_FORMAT codec_format;
}
public struct opj_common_struct
{
public opj_common_fields flds;
}
public struct opj_cinfo
{
public opj_common_fields flds;
}
public struct opj_dinfo
{
public opj_common_fields flds;
}
public struct opj_cio
{
public opj_common_struct cinfo;
public int openmode;
public byte buffer;
public int length;
public byte start;
public byte end;
public byte bp;
}
public struct opj_image_comp
{
public int dx;
public int dy;
public int w;
public int h;
public int x0;
public int y0;
public int prec;
public int bpp;
public int sgnd;
public int resno_decoded;
public int factor;
public int data;
}
public struct opj_image
{
public int x0;
public int y0;
public int x1;
public int y1;
public int numcomps;
public COLOR_SPACE color_space;
public opj_image_comp comps;
}
public struct opj_image_comptparm
{
public int dx;
public int dy;
public int w;
public int h;
public int x0;
public int y0;
public int prec;
public int bpp;
public int sgnd;
}
public struct opj_packet_info
{
public int start_pos;
public int end_ph_pos;
public int end_pos;
public double disto;
}
public struct opj_tp_info
{
public int tp_start_pos;
public int tp_end_header;
public int tp_end_pos;
public int tp_start_pack;
public int tp_numpacks;
}
public struct opj_tile_info
{
public double thresh;
public int tileno;
public int start_pos;
public int end_header;
public int end_pos;
/// <summary>
/// Don't forget to initialize 33 elements
/// </summary>
public int[] pw;
/// <summary>
/// Don't forget to initialize 33 elements
/// </summary>
public int[] ph;
/// <summary>
/// Don't forget to initialize 33 elements
/// </summary>
public int[] pdx;
/// <summary>
/// Don't forget to initialize 33 elements
/// </summary>
public int[] pdy;
public opj_packet_info packet;
public int numpix;
public double distotile;
public int num_tps;
public opj_tp_info tp;
}
public struct opj_marker_info_t
{
public ushort type;
public int pos;
public int len;
}
public struct opj_codestream_info
{
public double D_max;
public int packno;
public int index_write;
public int image_w;
public int image_h;
public PROG_ORDER prog;
public int tile_x;
public int tile_y;
public int tile_Ox;
public int tile_Oy;
public int tw;
public int numcomps;
public int numlayers;
public int numdecompos;
public int marknum;
public opj_marker_info_t marker;
public int maxmarknum;
public int main_head_start;
public int main_head_end;
public int codestream_size;
public opj_tile_info tile;
}
public static class opj_defines
{
public const int OPJ_STREAM_READ = 0x0001;
public const int OPJ_STREAM_WRITE = 0x0002;
}
}