aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/OpenJpeg
diff options
context:
space:
mode:
authorJeff Ames2008-12-30 01:08:07 +0000
committerJeff Ames2008-12-30 01:08:07 +0000
commit2be0f7a6f0b66e25b0d7e0e6cfee93f0c41b562b (patch)
treec39317267e7f1d634fc1a922ded51c6e48e329d1 /OpenSim/Framework/OpenJpeg
parentChanging the default Comms module to be RESTComms, in case none is specified ... (diff)
downloadopensim-SC_OLD-2be0f7a6f0b66e25b0d7e0e6cfee93f0c41b562b.zip
opensim-SC_OLD-2be0f7a6f0b66e25b0d7e0e6cfee93f0c41b562b.tar.gz
opensim-SC_OLD-2be0f7a6f0b66e25b0d7e0e6cfee93f0c41b562b.tar.bz2
opensim-SC_OLD-2be0f7a6f0b66e25b0d7e0e6cfee93f0c41b562b.tar.xz
Update svn properties, minor formatting cleanup.
Diffstat (limited to 'OpenSim/Framework/OpenJpeg')
-rw-r--r--OpenSim/Framework/OpenJpeg/bio.cs300
-rw-r--r--OpenSim/Framework/OpenJpeg/fix.cs59
-rw-r--r--OpenSim/Framework/OpenJpeg/int_.cs142
-rw-r--r--OpenSim/Framework/OpenJpeg/j2k.cs318
-rw-r--r--OpenSim/Framework/OpenJpeg/openjpeg.cs733
-rw-r--r--OpenSim/Framework/OpenJpeg/pi.cs119
6 files changed, 906 insertions, 765 deletions
diff --git a/OpenSim/Framework/OpenJpeg/bio.cs b/OpenSim/Framework/OpenJpeg/bio.cs
index 4f095ad..4a5b321 100644
--- a/OpenSim/Framework/OpenJpeg/bio.cs
+++ b/OpenSim/Framework/OpenJpeg/bio.cs
@@ -1,138 +1,162 @@
1using System; 1/*
2using System.Collections.Generic; 2 * Copyright (c) Contributors, http://opensimulator.org/
3using System.Text; 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 4 *
5namespace OpenSim.Framework.OpenJpeg 5 * Redistribution and use in source and binary forms, with or without
6{ 6 * modification, are permitted provided that the following conditions are met:
7 public static class bio 7 * * Redistributions of source code must retain the above copyright
8 { 8 * notice, this list of conditions and the following disclaimer.
9 9 * * Redistributions in binary form must reproduce the above copyright
10 public static opj_bio bio_create() 10 * notice, this list of conditions and the following disclaimer in the
11 { 11 * documentation and/or other materials provided with the distribution.
12 opj_bio bio = new opj_bio(); 12 * * Neither the name of the OpenSimulator Project nor the
13 return bio; 13 * names of its contributors may be used to endorse or promote products
14 } 14 * derived from this software without specific prior written permission.
15 15 *
16 public static void bio_destroy(opj_bio bio) 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 { 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 // not needed on C# 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 } 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 public static int bio_numbytes(opj_bio bio) 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 { 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 return (bio.bp - bio.start); 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 } 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 public static void bio_init_enc(opj_bio bio, sbyte bp, int len) 26 */
27 { 27
28 bio.start = (byte)bp; 28using System;
29 bio.end = (byte)(bp + (byte)len); 29using System.Collections.Generic;
30 bio.bp = (byte)bp; 30using System.Text;
31 bio.buf = 0; 31
32 bio.ct = 8; 32namespace OpenSim.Framework.OpenJpeg
33 } 33{
34 34 public static class bio
35 public static void bio_init_dec(opj_bio bio, sbyte bp, int len) 35 {
36 { 36 public static opj_bio bio_create()
37 bio.start = (byte)bp; 37 {
38 bio.end = (byte)(bp + len); 38 opj_bio bio = new opj_bio();
39 bio.bp = (byte)bp; 39 return bio;
40 bio.buf = 0; 40 }
41 bio.ct = 0; 41
42 } 42 public static void bio_destroy(opj_bio bio)
43 43 {
44 public static void bio_write(opj_bio bio, int v, int n) 44 // not needed on C#
45 { 45 }
46 for (int i = n - 1; i >= 0; i--) 46
47 bio_putbit(bio, (v >> i) & 1); 47 public static int bio_numbytes(opj_bio bio)
48 } 48 {
49 49 return (bio.bp - bio.start);
50 public static int bio_read(opj_bio bio, int n) 50 }
51 { 51
52 int v = 0; 52 public static void bio_init_enc(opj_bio bio, sbyte bp, int len)
53 for (int i = n - 1; i >= 0; i--) 53 {
54 v += bio_getbit(bio) << i; 54 bio.start = (byte)bp;
55 55 bio.end = (byte)(bp + (byte)len);
56 return v; 56 bio.bp = (byte)bp;
57 } 57 bio.buf = 0;
58 58 bio.ct = 8;
59 public static int bio_flush(opj_bio bio) 59 }
60 { 60
61 bio.ct = 0; 61 public static void bio_init_dec(opj_bio bio, sbyte bp, int len)
62 if (bio_byteout(bio) != 0) 62 {
63 return 1; 63 bio.start = (byte)bp;
64 64 bio.end = (byte)(bp + len);
65 if (bio.ct == 7) 65 bio.bp = (byte)bp;
66 { 66 bio.buf = 0;
67 bio.ct = 0; 67 bio.ct = 0;
68 if (bio_byteout(bio) != 0) 68 }
69 return 1; 69
70 } 70 public static void bio_write(opj_bio bio, int v, int n)
71 return 0; 71 {
72 } 72 for (int i = n - 1; i >= 0; i--)
73 73 bio_putbit(bio, (v >> i) & 1);
74 public static int bio_inalign(opj_bio bio) 74 }
75 { 75
76 bio.ct = 0; 76 public static int bio_read(opj_bio bio, int n)
77 if ((bio.buf & 0xff) == 0xff) 77 {
78 { 78 int v = 0;
79 if (bio_bytein(bio) != 0) 79 for (int i = n - 1; i >= 0; i--)
80 return 1; 80 v += bio_getbit(bio) << i;
81 bio.ct = 0; 81
82 } 82 return v;
83 return 0; 83 }
84 } 84
85 85 public static int bio_flush(opj_bio bio)
86 private static int bio_bytein(opj_bio bio) 86 {
87 { 87 bio.ct = 0;
88 bio.buf = (bio.buf << 8) & 0xffff; 88 if (bio_byteout(bio) != 0)
89 bio.ct = bio.buf == 0xff00 ? 7 : 8; 89 return 1;
90 if (bio.bp >= bio.end) 90
91 return 1; 91 if (bio.ct == 7)
92 bio.buf |= bio.bp++; 92 {
93 93 bio.ct = 0;
94 return 0; 94 if (bio_byteout(bio) != 0)
95 } 95 return 1;
96 96 }
97 private static int bio_byteout(opj_bio bio) 97 return 0;
98 { 98 }
99 bio.buf = (bio.buf << 8) & 0xffff; 99
100 bio.ct = bio.buf == 0xff00 ? 7 : 8; 100 public static int bio_inalign(opj_bio bio)
101 if (bio.bp >= bio.end) 101 {
102 return 1; 102 bio.ct = 0;
103 103 if ((bio.buf & 0xff) == 0xff)
104 bio.bp = (byte)(bio.buf >> 8); 104 {
105 bio.bp++; 105 if (bio_bytein(bio) != 0)
106 return 0; 106 return 1;
107 } 107 bio.ct = 0;
108 108 }
109 private static void bio_putbit(opj_bio bio, int b) 109 return 0;
110 { 110 }
111 if (bio.ct == 0) 111
112 bio_byteout(bio); 112 private static int bio_bytein(opj_bio bio)
113 113 {
114 bio.ct--; 114 bio.buf = (bio.buf << 8) & 0xffff;
115 bio.buf |= (byte)(b << bio.ct); 115 bio.ct = bio.buf == 0xff00 ? 7 : 8;
116 116 if (bio.bp >= bio.end)
117 } 117 return 1;
118 118 bio.buf |= bio.bp++;
119 private static int bio_getbit(opj_bio bio) 119
120 { 120 return 0;
121 if (bio.ct == 0) 121 }
122 bio_bytein(bio); 122
123 bio.ct--; 123 private static int bio_byteout(opj_bio bio)
124 124 {
125 return (int)((bio.buf >> bio.ct) & 1); 125 bio.buf = (bio.buf << 8) & 0xffff;
126 } 126 bio.ct = bio.buf == 0xff00 ? 7 : 8;
127 127 if (bio.bp >= bio.end)
128 } 128 return 1;
129 129
130 public struct opj_bio 130 bio.bp = (byte)(bio.buf >> 8);
131 { 131 bio.bp++;
132 public byte start; 132 return 0;
133 public byte end; 133 }
134 public byte bp; 134
135 public uint buf; 135 private static void bio_putbit(opj_bio bio, int b)
136 public int ct; 136 {
137 } 137 if (bio.ct == 0)
138} 138 bio_byteout(bio);
139
140 bio.ct--;
141 bio.buf |= (byte)(b << bio.ct);
142 }
143
144 private static int bio_getbit(opj_bio bio)
145 {
146 if (bio.ct == 0)
147 bio_bytein(bio);
148 bio.ct--;
149
150 return (int)((bio.buf >> bio.ct) & 1);
151 }
152 }
153
154 public struct opj_bio
155 {
156 public byte start;
157 public byte end;
158 public byte bp;
159 public uint buf;
160 public int ct;
161 }
162}
diff --git a/OpenSim/Framework/OpenJpeg/fix.cs b/OpenSim/Framework/OpenJpeg/fix.cs
index 76d3159..9de0041 100644
--- a/OpenSim/Framework/OpenJpeg/fix.cs
+++ b/OpenSim/Framework/OpenJpeg/fix.cs
@@ -1,16 +1,43 @@
1using System; 1/*
2using System.Collections.Generic; 2 * Copyright (c) Contributors, http://opensimulator.org/
3using System.Text; 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 4 *
5namespace OpenSim.Framework.OpenJpeg 5 * Redistribution and use in source and binary forms, with or without
6{ 6 * modification, are permitted provided that the following conditions are met:
7 public static class fix 7 * * Redistributions of source code must retain the above copyright
8 { 8 * notice, this list of conditions and the following disclaimer.
9 public static int fix_mul(int a, int b) 9 * * Redistributions in binary form must reproduce the above copyright
10 { 10 * notice, this list of conditions and the following disclaimer in the
11 long temp = (long)a * (long)b; 11 * documentation and/or other materials provided with the distribution.
12 temp += temp & 4096; 12 * * Neither the name of the OpenSimulator Project nor the
13 return (int)(temp >> 13); 13 * names of its contributors may be used to endorse or promote products
14 } 14 * derived from this software without specific prior written permission.
15 } 15 *
16} 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Text;
31
32namespace OpenSim.Framework.OpenJpeg
33{
34 public static class fix
35 {
36 public static int fix_mul(int a, int b)
37 {
38 long temp = (long)a * (long)b;
39 temp += temp & 4096;
40 return (int)(temp >> 13);
41 }
42 }
43}
diff --git a/OpenSim/Framework/OpenJpeg/int_.cs b/OpenSim/Framework/OpenJpeg/int_.cs
index dc71728..07321b5 100644
--- a/OpenSim/Framework/OpenJpeg/int_.cs
+++ b/OpenSim/Framework/OpenJpeg/int_.cs
@@ -1,58 +1,84 @@
1using System; 1/*
2using System.Collections.Generic; 2 * Copyright (c) Contributors, http://opensimulator.org/
3using System.Text; 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 4 *
5namespace OpenSim.Framework.OpenJpeg 5 * Redistribution and use in source and binary forms, with or without
6{ 6 * modification, are permitted provided that the following conditions are met:
7 public static class int_ 7 * * Redistributions of source code must retain the above copyright
8 { 8 * notice, this list of conditions and the following disclaimer.
9 public static int int_min(int a, int b) 9 * * Redistributions in binary form must reproduce the above copyright
10 { 10 * notice, this list of conditions and the following disclaimer in the
11 return a < b ? a : b; 11 * documentation and/or other materials provided with the distribution.
12 } 12 * * Neither the name of the OpenSimulator Project nor the
13 13 * names of its contributors may be used to endorse or promote products
14 public static int int_max(int a, int b) 14 * derived from this software without specific prior written permission.
15 { 15 *
16 return (a > b) ? a : b; 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 } 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 public static int int_clamp(int a, int min, int max) 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 { 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 if (a < min) 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 return min; 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 if (a > max) 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 return max; 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 return a; 26 */
27 } 27
28 28using System;
29 public static int int_abs(int a) 29using System.Collections.Generic;
30 { 30using System.Text;
31 return a < 0 ? -a : a; 31
32 } 32namespace OpenSim.Framework.OpenJpeg
33 33{
34 public static int int_ceildiv(int a, int b) 34 public static class int_
35 { 35 {
36 return (a + b - 1) / b; 36 public static int int_min(int a, int b)
37 } 37 {
38 38 return a < b ? a : b;
39 public static int int_ceildivpow2(int a, int b) 39 }
40 { 40
41 return (a + (1 << b) - 1) >> b; 41 public static int int_max(int a, int b)
42 } 42 {
43 43 return (a > b) ? a : b;
44 public static int int_floordivpow2(int a, int b) 44 }
45 { 45
46 return a >> b; 46 public static int int_clamp(int a, int min, int max)
47 } 47 {
48 48 if (a < min)
49 public static int int_floorlog2(int a) 49 return min;
50 { 50 if (a > max)
51 for (int l=0; a > 1; l++) 51 return max;
52 a >>= 1; 52
53 53 return a;
54 return 1; 54 }
55 } 55
56 56 public static int int_abs(int a)
57 } 57 {
58} 58 return a < 0 ? -a : a;
59 }
60
61 public static int int_ceildiv(int a, int b)
62 {
63 return (a + b - 1) / b;
64 }
65
66 public static int int_ceildivpow2(int a, int b)
67 {
68 return (a + (1 << b) - 1) >> b;
69 }
70
71 public static int int_floordivpow2(int a, int b)
72 {
73 return a >> b;
74 }
75
76 public static int int_floorlog2(int a)
77 {
78 for (int l=0; a > 1; l++)
79 a >>= 1;
80
81 return 1;
82 }
83 }
84}
diff --git a/OpenSim/Framework/OpenJpeg/j2k.cs b/OpenSim/Framework/OpenJpeg/j2k.cs
index f655364..8751792 100644
--- a/OpenSim/Framework/OpenJpeg/j2k.cs
+++ b/OpenSim/Framework/OpenJpeg/j2k.cs
@@ -1,125 +1,149 @@
1using System; 1/*
2using System.Collections.Generic; 2 * Copyright (c) Contributors, http://opensimulator.org/
3using System.Text; 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 4 *
5namespace OpenSim.Framework.OpenJpeg 5 * Redistribution and use in source and binary forms, with or without
6{ 6 * modification, are permitted provided that the following conditions are met:
7 7 * * Redistributions of source code must retain the above copyright
8 public static class j2k 8 * notice, this list of conditions and the following disclaimer.
9 { 9 * * Redistributions in binary form must reproduce the above copyright
10 } 10 * notice, this list of conditions and the following disclaimer in the
11 11 * documentation and/or other materials provided with the distribution.
12 public enum J2K_STATUS 12 * * Neither the name of the OpenSimulator Project nor the
13 { 13 * names of its contributors may be used to endorse or promote products
14 J2K_STATE_MHSOC = 0x0001, /**< a SOC marker is expected */ 14 * derived from this software without specific prior written permission.
15 J2K_STATE_MHSIZ = 0x0002, /**< a SIZ marker is expected */ 15 *
16 J2K_STATE_MH = 0x0004, /**< the decoding process is in the main header */ 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 J2K_STATE_TPHSOT = 0x0008, /**< the decoding process is in a tile part header and expects a SOT marker */ 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 J2K_STATE_TPH = 0x0010, /**< the decoding process is in a tile part header */ 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 J2K_STATE_MT = 0x0020, /**< the EOC marker has just been read */ 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 J2K_STATE_NEOC = 0x0040, /**< the decoding process must not expect a EOC marker because the codestream is truncated */ 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 J2K_STATE_ERR = 0x0080 /**< the decoding process has encountered an error */ 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 } 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 public enum J2K_T2_MODE 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 { 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 THRESH_CALC = 0, /** Function called in Rate allocation process*/ 26 */
27 FINAL_PASS = 1 /** Function called in Tier 2 process*/ 27
28 } 28using System;
29 29using System.Collections.Generic;
30 public struct opj_stepsize 30using System.Text;
31 { 31
32 public int expn; 32namespace OpenSim.Framework.OpenJpeg
33 public int mant; 33{
34 } 34 public static class j2k
35 35 {
36 public struct opj_tccp 36 }
37 { 37
38 public int csty; 38 public enum J2K_STATUS
39 public int numresolutions; 39 {
40 public int cblkw; 40 J2K_STATE_MHSOC = 0x0001, /**< a SOC marker is expected */
41 public int cblkh; 41 J2K_STATE_MHSIZ = 0x0002, /**< a SIZ marker is expected */
42 public int cblksty; 42 J2K_STATE_MH = 0x0004, /**< the decoding process is in the main header */
43 public int qmfbid; 43 J2K_STATE_TPHSOT = 0x0008, /**< the decoding process is in a tile part header and expects a SOT marker */
44 public int qntsty; 44 J2K_STATE_TPH = 0x0010, /**< the decoding process is in a tile part header */
45 /// <summary> 45 J2K_STATE_MT = 0x0020, /**< the EOC marker has just been read */
46 /// don't forget to initialize 97 elements 46 J2K_STATE_NEOC = 0x0040, /**< the decoding process must not expect a EOC marker because the codestream is truncated */
47 /// </summary> 47 J2K_STATE_ERR = 0x0080 /**< the decoding process has encountered an error */
48 public opj_stepsize[] stepsizes; 48 }
49 public int numgbits; 49
50 public int roishift; 50 public enum J2K_T2_MODE
51 /// <summary> 51 {
52 /// Don't forget to initialize 33 elements 52 THRESH_CALC = 0, /** Function called in Rate allocation process*/
53 /// </summary> 53 FINAL_PASS = 1 /** Function called in Tier 2 process*/
54 public int[] prcw; 54 }
55 55
56 } 56 public struct opj_stepsize
57 57 {
58 public struct opj_tcp 58 public int expn;
59 { 59 public int mant;
60 public int first; 60 }
61 public int csty; 61
62 public PROG_ORDER prg; 62 public struct opj_tccp
63 public int numlayers; 63 {
64 public int mct; 64 public int csty;
65 /// <summary> 65 public int numresolutions;
66 /// don't forget to initialize to 100 66 public int cblkw;
67 /// </summary> 67 public int cblkh;
68 public float[] rates; 68 public int cblksty;
69 public int numpocs; 69 public int qmfbid;
70 public int POC; 70 public int qntsty;
71 /// <summary> 71 /// <summary>
72 /// Don't forget to initialize to 32 72 /// don't forget to initialize 97 elements
73 /// </summary> 73 /// </summary>
74 public opj_poc[] pocs; 74 public opj_stepsize[] stepsizes;
75 public byte ppt_data; 75 public int numgbits;
76 public byte ppt_data_first; 76 public int roishift;
77 public int ppt; 77 /// <summary>
78 public int ppt_store; 78 /// Don't forget to initialize 33 elements
79 public int ppt_len; 79 /// </summary>
80 /// <summary> 80 public int[] prcw;
81 /// Don't forget to initialize 100 elements 81 }
82 /// </summary> 82
83 public float[] distoratio; 83 public struct opj_tcp
84 public opj_tccp tccps; 84 {
85 85 public int first;
86 } 86 public int csty;
87 87 public PROG_ORDER prg;
88 public struct opj_cp 88 public int numlayers;
89 { 89 public int mct;
90 public CINEMA_MODE cinema; 90 /// <summary>
91 public int max_comp_size; 91 /// don't forget to initialize to 100
92 public int img_size; 92 /// </summary>
93 public RSIZ_CAPABILITIES rsiz; 93 public float[] rates;
94 public sbyte tp_on; 94 public int numpocs;
95 public sbyte tp_flag; 95 public int POC;
96 public int tp_pos; 96 /// <summary>
97 public int distro_alloc; 97 /// Don't forget to initialize to 32
98 public int fixed_alloc; 98 /// </summary>
99 public int fixed_quality; 99 public opj_poc[] pocs;
100 public int reduce; 100 public byte ppt_data;
101 public int layer; 101 public byte ppt_data_first;
102 public LIMIT_DECODING limit_decoding; 102 public int ppt;
103 public int tx0; 103 public int ppt_store;
104 public int ty0; 104 public int ppt_len;
105 public int tdx; 105 /// <summary>
106 public int tdy; 106 /// Don't forget to initialize 100 elements
107 public sbyte? comment; 107 /// </summary>
108 public int tw; 108 public float[] distoratio;
109 public int th; 109 public opj_tccp tccps;
110 public int? tileno; 110 }
111 public byte ppm_data; 111
112 public byte ppm_data_first; 112 public struct opj_cp
113 public int ppm; 113 {
114 public int ppm_store; 114 public CINEMA_MODE cinema;
115 public int ppm_previous; 115 public int max_comp_size;
116 public int ppm_len; 116 public int img_size;
117 public opj_tcp tcps; 117 public RSIZ_CAPABILITIES rsiz;
118 public int matrice; 118 public sbyte tp_on;
119 } 119 public sbyte tp_flag;
120 120 public int tp_pos;
121 public static class j2kdefines 121 public int distro_alloc;
122 { 122 public int fixed_alloc;
123 public int fixed_quality;
124 public int reduce;
125 public int layer;
126 public LIMIT_DECODING limit_decoding;
127 public int tx0;
128 public int ty0;
129 public int tdx;
130 public int tdy;
131 public sbyte? comment;
132 public int tw;
133 public int th;
134 public int? tileno;
135 public byte ppm_data;
136 public byte ppm_data_first;
137 public int ppm;
138 public int ppm_store;
139 public int ppm_previous;
140 public int ppm_len;
141 public opj_tcp tcps;
142 public int matrice;
143 }
144
145 public static class j2kdefines
146 {
123 public const uint J2K_CP_CSTY_PRT = 0x01; 147 public const uint J2K_CP_CSTY_PRT = 0x01;
124 public const uint J2K_CP_CSTY_SOP = 0x02; 148 public const uint J2K_CP_CSTY_SOP = 0x02;
125 public const uint J2K_CP_CSTY_EPH = 0x04; 149 public const uint J2K_CP_CSTY_EPH = 0x04;
@@ -131,28 +155,28 @@ namespace OpenSim.Framework.OpenJpeg
131 public const uint J2K_CCP_CBLKSTY_PTERM =0x10; 155 public const uint J2K_CCP_CBLKSTY_PTERM =0x10;
132 public const uint J2K_CCP_CBLKSTY_SEGSYM = 0x20; 156 public const uint J2K_CCP_CBLKSTY_SEGSYM = 0x20;
133 public const uint J2K_CCP_QNTSTY_NOQNT = 0; 157 public const uint J2K_CCP_QNTSTY_NOQNT = 0;
134 public const uint J2K_CCP_QNTSTY_SIQNT = 1; 158 public const uint J2K_CCP_QNTSTY_SIQNT = 1;
135 public const uint J2K_CCP_QNTSTY_SEQNT = 2; 159 public const uint J2K_CCP_QNTSTY_SEQNT = 2;
136 160
137 public const uint J2K_MS_SOC = 0xff4f; /**< SOC marker value */ 161 public const uint J2K_MS_SOC = 0xff4f; /**< SOC marker value */
138 public const uint J2K_MS_SOT = 0xff90; /**< SOT marker value */ 162 public const uint J2K_MS_SOT = 0xff90; /**< SOT marker value */
139 public const uint J2K_MS_SOD = 0xff93; /**< SOD marker value */ 163 public const uint J2K_MS_SOD = 0xff93; /**< SOD marker value */
140 public const uint J2K_MS_EOC = 0xffd9; /**< EOC marker value */ 164 public const uint J2K_MS_EOC = 0xffd9; /**< EOC marker value */
141 public const uint J2K_MS_SIZ = 0xff51; /**< SIZ marker value */ 165 public const uint J2K_MS_SIZ = 0xff51; /**< SIZ marker value */
142 public const uint J2K_MS_COD = 0xff52; /**< COD marker value */ 166 public const uint J2K_MS_COD = 0xff52; /**< COD marker value */
143 public const uint J2K_MS_COC = 0xff53; /**< COC marker value */ 167 public const uint J2K_MS_COC = 0xff53; /**< COC marker value */
144 public const uint J2K_MS_RGN = 0xff5e; /**< RGN marker value */ 168 public const uint J2K_MS_RGN = 0xff5e; /**< RGN marker value */
145 public const uint J2K_MS_QCD = 0xff5c; /**< QCD marker value */ 169 public const uint J2K_MS_QCD = 0xff5c; /**< QCD marker value */
146 public const uint J2K_MS_QCC = 0xff5d; /**< QCC marker value */ 170 public const uint J2K_MS_QCC = 0xff5d; /**< QCC marker value */
147 public const uint J2K_MS_POC = 0xff5f; /**< POC marker value */ 171 public const uint J2K_MS_POC = 0xff5f; /**< POC marker value */
148 public const uint J2K_MS_TLM = 0xff55; /**< TLM marker value */ 172 public const uint J2K_MS_TLM = 0xff55; /**< TLM marker value */
149 public const uint J2K_MS_PLM = 0xff57; /**< PLM marker value */ 173 public const uint J2K_MS_PLM = 0xff57; /**< PLM marker value */
150 public const uint J2K_MS_PLT = 0xff58; /**< PLT marker value */ 174 public const uint J2K_MS_PLT = 0xff58; /**< PLT marker value */
151 public const uint J2K_MS_PPM = 0xff60; /**< PPM marker value */ 175 public const uint J2K_MS_PPM = 0xff60; /**< PPM marker value */
152 public const uint J2K_MS_PPT = 0xff61; /**< PPT marker value */ 176 public const uint J2K_MS_PPT = 0xff61; /**< PPT marker value */
153 public const uint J2K_MS_SOP = 0xff91; /**< SOP marker value */ 177 public const uint J2K_MS_SOP = 0xff91; /**< SOP marker value */
154 public const uint J2K_MS_EPH = 0xff92; /**< EPH marker value */ 178 public const uint J2K_MS_EPH = 0xff92; /**< EPH marker value */
155 public const uint J2K_MS_CRG = 0xff63; /**< CRG marker value */ 179 public const uint J2K_MS_CRG = 0xff63; /**< CRG marker value */
156 public const uint J2K_MS_COM = 0xff64; /**< COM marker value */ 180 public const uint J2K_MS_COM = 0xff64; /**< COM marker value */
157 } 181 }
158} 182}
diff --git a/OpenSim/Framework/OpenJpeg/openjpeg.cs b/OpenSim/Framework/OpenJpeg/openjpeg.cs
index 2d5e4b5..f0b2518 100644
--- a/OpenSim/Framework/OpenJpeg/openjpeg.cs
+++ b/OpenSim/Framework/OpenJpeg/openjpeg.cs
@@ -1,358 +1,375 @@
1using System; 1/*
2using System.Collections.Generic; 2 * Copyright (c) Contributors, http://opensimulator.org/
3using System.Text; 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 4 *
5namespace OpenSim.Framework.OpenJpeg 5 * Redistribution and use in source and binary forms, with or without
6{ 6 * modification, are permitted provided that the following conditions are met:
7 public class openjpeg 7 * * Redistributions of source code must retain the above copyright
8 { 8 * notice, this list of conditions and the following disclaimer.
9 public openjpeg() 9 * * Redistributions in binary form must reproduce the above copyright
10 { 10 * notice, this list of conditions and the following disclaimer in the
11 11 * documentation and/or other materials provided with the distribution.
12 12 * * Neither the name of the OpenSimulator Project nor the
13 } 13 * names of its contributors may be used to endorse or promote products
14 } 14 * derived from this software without specific prior written permission.
15 15 *
16 public enum PROG_ORDER 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 { 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 PROG_UNKNOWN = -1, 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 LRCP = 0, 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 RLCP = 1, 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 RPCL = 2, 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 PCRL = 3, 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 CPRL = 4 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 } 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 public enum RSIZ_CAPABILITIES 26 */
27 { 27
28 STD_RSIZ = 0, 28using System;
29 CINEMA2K = 3, 29using System.Collections.Generic;
30 CINEMA4K = 4 30using System.Text;
31 } 31
32 32namespace OpenSim.Framework.OpenJpeg
33 public enum CINEMA_MODE 33{
34 { 34 public class openjpeg
35 OFF = 0, 35 {
36 CINEMA2K_24 = 1, 36 public openjpeg()
37 CINEMA2K_48 = 2, 37 {
38 CINEMA4K_24 = 3 38 }
39 } 39 }
40 40
41 public enum COLOR_SPACE 41 public enum PROG_ORDER
42 { 42 {
43 CLRSPC_UNKNOWN = -1, 43 PROG_UNKNOWN = -1,
44 CLRSPC_SRGB = 1, 44 LRCP = 0,
45 CLRSPC_GRAY = 2, 45 RLCP = 1,
46 CLRSPC_SYCC = 3 46 RPCL = 2,
47 } 47 PCRL = 3,
48 48 CPRL = 4
49 public enum CODEC_FORMAT 49 }
50 { 50
51 CODEC_UNKNOWN = -1, 51 public enum RSIZ_CAPABILITIES
52 CODEC_J2K = 0, 52 {
53 CODEC_JPT = 1, 53 STD_RSIZ = 0,
54 CODEC_JP2 = 2 54 CINEMA2K = 3,
55 } 55 CINEMA4K = 4
56 56 }
57 public enum LIMIT_DECODING 57
58 { 58 public enum CINEMA_MODE
59 NO_LIMITATION = 0, 59 {
60 LIMIT_TO_MAIN_HEADER=1, 60 OFF = 0,
61 DECODE_ALL_BUT_PACKETS = 2 61 CINEMA2K_24 = 1,
62 } 62 CINEMA2K_48 = 2,
63 63 CINEMA4K_24 = 3
64 public struct opj_poc 64 }
65 { 65
66 public int resno0, compno0; 66 public enum COLOR_SPACE
67 public int layno1, resno1, compno1; 67 {
68 public int layno0, precno0, precno1; 68 CLRSPC_UNKNOWN = -1,
69 public PROG_ORDER prg1, prg; 69 CLRSPC_SRGB = 1,
70 /// <summary> 70 CLRSPC_GRAY = 2,
71 /// Don't forget to initialize with 5 elements 71 CLRSPC_SYCC = 3
72 /// </summary> 72 }
73 public sbyte[] progorder; 73
74 public int tile; 74 public enum CODEC_FORMAT
75 public int tx0, tx1, ty0, ty1; 75 {
76 public int layS, resS, copmS, prcS; 76 CODEC_UNKNOWN = -1,
77 public int layE, resE, compE, prcE; 77 CODEC_J2K = 0,
78 public int txS, txE, tyS, tyE, dx, dy; 78 CODEC_JPT = 1,
79 public int lay_t, res_t, comp_t, prc_t, tx0_t, ty0_t; 79 CODEC_JP2 = 2
80 } 80 }
81 81
82 public struct opj_cparameters 82 public enum LIMIT_DECODING
83 { 83 {
84 public bool tile_size_on; 84 NO_LIMITATION = 0,
85 public int cp_tx0; 85 LIMIT_TO_MAIN_HEADER=1,
86 public int cp_ty0; 86 DECODE_ALL_BUT_PACKETS = 2
87 public int cp_tdx; 87 }
88 public int cp_tdy; 88
89 public int cp_disto_alloc; 89 public struct opj_poc
90 public int cp_fixed_alloc; 90 {
91 public int cp_fixed_wuality; 91 public int resno0, compno0;
92 public int cp_matrice; 92 public int layno1, resno1, compno1;
93 public sbyte cp_comment; 93 public int layno0, precno0, precno1;
94 public int csty; 94 public PROG_ORDER prg1, prg;
95 public PROG_ORDER prog_order; 95 /// <summary>
96 96 /// Don't forget to initialize with 5 elements
97 /// <summary> 97 /// </summary>
98 /// Don't forget to initialize 32 elements 98 public sbyte[] progorder;
99 /// </summary> 99 public int tile;
100 public opj_poc[] POC; 100 public int tx0, tx1, ty0, ty1;
101 public int numpocs; 101 public int layS, resS, copmS, prcS;
102 public int tcp_numlayers; 102 public int layE, resE, compE, prcE;
103 /// <summary> 103 public int txS, txE, tyS, tyE, dx, dy;
104 /// Don't forget to intitialize 100 elements 104 public int lay_t, res_t, comp_t, prc_t, tx0_t, ty0_t;
105 /// </summary> 105 }
106 public float[] tcp_rates; 106
107 /// <summary> 107 public struct opj_cparameters
108 /// Don't forget to initialize 100 elements 108 {
109 /// </summary> 109 public bool tile_size_on;
110 public float[] tcp_distoratio; 110 public int cp_tx0;
111 public int numresolution; 111 public int cp_ty0;
112 public int cblockw_init; 112 public int cp_tdx;
113 public int cblockh_init; 113 public int cp_tdy;
114 public int mode; 114 public int cp_disto_alloc;
115 public int irreversible; 115 public int cp_fixed_alloc;
116 public int roi_compno; 116 public int cp_fixed_wuality;
117 public int roi_shift; 117 public int cp_matrice;
118 public int res_spec; 118 public sbyte cp_comment;
119 119 public int csty;
120 /// <summary> 120 public PROG_ORDER prog_order;
121 /// Don't forget to initialize 33 elements 121
122 /// </summary> 122 /// <summary>
123 public int[] prc_init; 123 /// Don't forget to initialize 32 elements
124 /// <summary> 124 /// </summary>
125 /// Don't forget to initialize 33 elements 125 public opj_poc[] POC;
126 /// </summary> 126 public int numpocs;
127 public int[] prch_init; 127 public int tcp_numlayers;
128 128 /// <summary>
129 public string infile; 129 /// Don't forget to intitialize 100 elements
130 public string outfile; 130 /// </summary>
131 public int index_on; 131 public float[] tcp_rates;
132 public string index; 132 /// <summary>
133 public int image_offset_x0; 133 /// Don't forget to initialize 100 elements
134 public int image_offset_y0; 134 /// </summary>
135 public int subsampling_dx; 135 public float[] tcp_distoratio;
136 public int subsampling_dy; 136 public int numresolution;
137 public int decod_format; 137 public int cblockw_init;
138 public int cod_format; 138 public int cblockh_init;
139 public bool jpwl_epc_on; 139 public int mode;
140 public int jpwl_hprot_MH; 140 public int irreversible;
141 /// <summary> 141 public int roi_compno;
142 /// Don't forget to initialize 16 elements 142 public int roi_shift;
143 /// </summary> 143 public int res_spec;
144 public int[] jpwl_hprot_TPH_tileno; 144
145 /// <summary> 145 /// <summary>
146 /// Don't forget to initialize 16 elements 146 /// Don't forget to initialize 33 elements
147 /// </summary> 147 /// </summary>
148 public int[] jpwl_hprot_TPH; 148 public int[] prc_init;
149 149 /// <summary>
150 /// <summary> 150 /// Don't forget to initialize 33 elements
151 /// Don't forget to initialize 16 elements 151 /// </summary>
152 /// </summary> 152 public int[] prch_init;
153 public int[] jpwl_pprot_tileno; 153
154 public int[] jpwl_pprot_packno; 154 public string infile;
155 public int[] jpwl_pprot; 155 public string outfile;
156 public int jpwl_sens_size; 156 public int index_on;
157 public int jpwl_sense_addr; 157 public string index;
158 public int jpwl_sens_range; 158 public int image_offset_x0;
159 public int jpwl_sens_MH; 159 public int image_offset_y0;
160 160 public int subsampling_dx;
161 /// <summary> 161 public int subsampling_dy;
162 /// Don't forget to initialize 16 elements 162 public int decod_format;
163 /// </summary> 163 public int cod_format;
164 public int[] jpwl_sens_TPH_tileno; 164 public bool jpwl_epc_on;
165 165 public int jpwl_hprot_MH;
166 /// <summary> 166 /// <summary>
167 /// Don't forget to initialize 16 elements 167 /// Don't forget to initialize 16 elements
168 /// </summary> 168 /// </summary>
169 public int[] jpwl_sens_TPH; 169 public int[] jpwl_hprot_TPH_tileno;
170 public CINEMA_MODE cp_cinema; 170 /// <summary>
171 public int max_comp_size; 171 /// Don't forget to initialize 16 elements
172 public sbyte tp_on; 172 /// </summary>
173 public sbyte tp_flag; 173 public int[] jpwl_hprot_TPH;
174 public sbyte tcp_mct; 174
175 } 175 /// <summary>
176 176 /// Don't forget to initialize 16 elements
177 public struct opj_dparameters 177 /// </summary>
178 { 178 public int[] jpwl_pprot_tileno;
179 public int cp_reduce; 179 public int[] jpwl_pprot_packno;
180 public int cp_layer; 180 public int[] jpwl_pprot;
181 public string infile; 181 public int jpwl_sens_size;
182 public string outfile; 182 public int jpwl_sense_addr;
183 public int decod_format; 183 public int jpwl_sens_range;
184 public int cod_format; 184 public int jpwl_sens_MH;
185 public bool jpwl_correct; 185
186 public int jpwl_exp_comps; 186 /// <summary>
187 public int jpwl_max_tiles; 187 /// Don't forget to initialize 16 elements
188 public LIMIT_DECODING cp_limit_decoding; 188 /// </summary>
189 189 public int[] jpwl_sens_TPH_tileno;
190 } 190
191 191 /// <summary>
192 public struct opj_common_fields 192 /// Don't forget to initialize 16 elements
193 { 193 /// </summary>
194 public bool is_decompressor; 194 public int[] jpwl_sens_TPH;
195 public CODEC_FORMAT codec_format; 195 public CINEMA_MODE cp_cinema;
196 } 196 public int max_comp_size;
197 197 public sbyte tp_on;
198 public struct opj_common_struct 198 public sbyte tp_flag;
199 { 199 public sbyte tcp_mct;
200 public opj_common_fields flds; 200 }
201 } 201
202 202 public struct opj_dparameters
203 public struct opj_cinfo 203 {
204 { 204 public int cp_reduce;
205 public opj_common_fields flds; 205 public int cp_layer;
206 } 206 public string infile;
207 public struct opj_dinfo 207 public string outfile;
208 { 208 public int decod_format;
209 public opj_common_fields flds; 209 public int cod_format;
210 } 210 public bool jpwl_correct;
211 211 public int jpwl_exp_comps;
212 public struct opj_cio 212 public int jpwl_max_tiles;
213 { 213 public LIMIT_DECODING cp_limit_decoding;
214 public opj_common_struct cinfo; 214 }
215 public int openmode; 215
216 public byte buffer; 216 public struct opj_common_fields
217 public int length; 217 {
218 public byte start; 218 public bool is_decompressor;
219 public byte end; 219 public CODEC_FORMAT codec_format;
220 public byte bp; 220 }
221 } 221
222 222 public struct opj_common_struct
223 public struct opj_image_comp 223 {
224 { 224 public opj_common_fields flds;
225 public int dx; 225 }
226 public int dy; 226
227 public int w; 227 public struct opj_cinfo
228 public int h; 228 {
229 public int x0; 229 public opj_common_fields flds;
230 public int y0; 230 }
231 public int prec; 231
232 public int bpp; 232 public struct opj_dinfo
233 public int sgnd; 233 {
234 public int resno_decoded; 234 public opj_common_fields flds;
235 public int factor; 235 }
236 public int data; 236
237 } 237 public struct opj_cio
238 238 {
239 public struct opj_image 239 public opj_common_struct cinfo;
240 { 240 public int openmode;
241 public int x0; 241 public byte buffer;
242 public int y0; 242 public int length;
243 public int x1; 243 public byte start;
244 public int y1; 244 public byte end;
245 public int numcomps; 245 public byte bp;
246 public COLOR_SPACE color_space; 246 }
247 public opj_image_comp comps; 247
248 } 248 public struct opj_image_comp
249 249 {
250 public struct opj_image_comptparm 250 public int dx;
251 { 251 public int dy;
252 public int dx; 252 public int w;
253 public int dy; 253 public int h;
254 public int w; 254 public int x0;
255 public int h; 255 public int y0;
256 public int x0; 256 public int prec;
257 public int y0; 257 public int bpp;
258 public int prec; 258 public int sgnd;
259 public int bpp; 259 public int resno_decoded;
260 public int sgnd; 260 public int factor;
261 } 261 public int data;
262 262 }
263 public struct opj_packet_info 263
264 { 264 public struct opj_image
265 public int start_pos; 265 {
266 public int end_ph_pos; 266 public int x0;
267 public int end_pos; 267 public int y0;
268 public double disto; 268 public int x1;
269 } 269 public int y1;
270 270 public int numcomps;
271 public struct opj_tp_info 271 public COLOR_SPACE color_space;
272 { 272 public opj_image_comp comps;
273 public int tp_start_pos; 273 }
274 public int tp_end_header; 274
275 public int tp_end_pos; 275 public struct opj_image_comptparm
276 public int tp_start_pack; 276 {
277 public int tp_numpacks; 277 public int dx;
278 } 278 public int dy;
279 279 public int w;
280 public struct opj_tile_info 280 public int h;
281 { 281 public int x0;
282 public double thresh; 282 public int y0;
283 public int tileno; 283 public int prec;
284 public int start_pos; 284 public int bpp;
285 public int end_header; 285 public int sgnd;
286 public int end_pos; 286 }
287 /// <summary> 287
288 /// Don't forget to initialize 33 elements 288 public struct opj_packet_info
289 /// </summary> 289 {
290 public int[] pw; 290 public int start_pos;
291 /// <summary> 291 public int end_ph_pos;
292 /// Don't forget to initialize 33 elements 292 public int end_pos;
293 /// </summary> 293 public double disto;
294 public int[] ph; 294 }
295 /// <summary> 295
296 /// Don't forget to initialize 33 elements 296 public struct opj_tp_info
297 /// </summary> 297 {
298 public int[] pdx; 298 public int tp_start_pos;
299 /// <summary> 299 public int tp_end_header;
300 /// Don't forget to initialize 33 elements 300 public int tp_end_pos;
301 /// </summary> 301 public int tp_start_pack;
302 public int[] pdy; 302 public int tp_numpacks;
303 303 }
304 public opj_packet_info packet; 304
305 public int numpix; 305 public struct opj_tile_info
306 public double distotile; 306 {
307 public int num_tps; 307 public double thresh;
308 public opj_tp_info tp; 308 public int tileno;
309 } 309 public int start_pos;
310 310 public int end_header;
311 public struct opj_marker_info_t 311 public int end_pos;
312 { 312 /// <summary>
313 public ushort type; 313 /// Don't forget to initialize 33 elements
314 public int pos; 314 /// </summary>
315 public int len; 315 public int[] pw;
316 } 316 /// <summary>
317 317 /// Don't forget to initialize 33 elements
318 public struct opj_codestream_info 318 /// </summary>
319 { 319 public int[] ph;
320 public double D_max; 320 /// <summary>
321 public int packno; 321 /// Don't forget to initialize 33 elements
322 public int index_write; 322 /// </summary>
323 public int image_w; 323 public int[] pdx;
324 public int image_h; 324 /// <summary>
325 325 /// Don't forget to initialize 33 elements
326 public PROG_ORDER prog; 326 /// </summary>
327 327 public int[] pdy;
328 public int tile_x; 328
329 public int tile_y; 329 public opj_packet_info packet;
330 public int tile_Ox; 330 public int numpix;
331 public int tile_Oy; 331 public double distotile;
332 public int tw; 332 public int num_tps;
333 public int numcomps; 333 public opj_tp_info tp;
334 public int numlayers; 334 }
335 public int numdecompos; 335
336 public int marknum; 336 public struct opj_marker_info_t
337 public opj_marker_info_t marker; 337 {
338 public int maxmarknum; 338 public ushort type;
339 public int main_head_start; 339 public int pos;
340 public int main_head_end; 340 public int len;
341 public int codestream_size; 341 }
342 public opj_tile_info tile; 342
343 343 public struct opj_codestream_info
344 } 344 {
345 345 public double D_max;
346 346 public int packno;
347 347 public int index_write;
348 348 public int image_w;
349 349 public int image_h;
350 350
351 public static class opj_defines 351 public PROG_ORDER prog;
352 { 352
353 public const int OPJ_STREAM_READ = 0x0001; 353 public int tile_x;
354 public const int OPJ_STREAM_WRITE = 0x0002; 354 public int tile_y;
355 355 public int tile_Ox;
356 } 356 public int tile_Oy;
357 357 public int tw;
358} 358 public int numcomps;
359 public int numlayers;
360 public int numdecompos;
361 public int marknum;
362 public opj_marker_info_t marker;
363 public int maxmarknum;
364 public int main_head_start;
365 public int main_head_end;
366 public int codestream_size;
367 public opj_tile_info tile;
368 }
369
370 public static class opj_defines
371 {
372 public const int OPJ_STREAM_READ = 0x0001;
373 public const int OPJ_STREAM_WRITE = 0x0002;
374 }
375}
diff --git a/OpenSim/Framework/OpenJpeg/pi.cs b/OpenSim/Framework/OpenJpeg/pi.cs
index f7e211f..7da7d71 100644
--- a/OpenSim/Framework/OpenJpeg/pi.cs
+++ b/OpenSim/Framework/OpenJpeg/pi.cs
@@ -1,48 +1,71 @@
1using System; 1/*
2using System.Collections.Generic; 2 * Copyright (c) Contributors, http://opensimulator.org/
3using System.Text; 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 4 *
5namespace OpenSim.Framework.OpenJpeg 5 * Redistribution and use in source and binary forms, with or without
6{ 6 * modification, are permitted provided that the following conditions are met:
7 public static class pi 7 * * Redistributions of source code must retain the above copyright
8 { 8 * notice, this list of conditions and the following disclaimer.
9 } 9 * * Redistributions in binary form must reproduce the above copyright
10 10 * notice, this list of conditions and the following disclaimer in the
11 public struct opj_pi_resolution 11 * documentation and/or other materials provided with the distribution.
12 { 12 * * Neither the name of the OpenSimulator Project nor the
13 public int pdx, pdy; 13 * names of its contributors may be used to endorse or promote products
14 public int pw, ph; 14 * derived from this software without specific prior written permission.
15 } 15 *
16 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 public struct opj_pi_comp 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 { 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 public int dx, dy; 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 public int numresolutions; 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 public opj_pi_resolution resolutions; 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 } 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 public struct obj_pi_iterator 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 { 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 public sbyte tp_on; 26 */
27 public short include; 27
28 public int step_l; 28using System;
29 public int step_r; 29using System.Collections.Generic;
30 public int step_c; 30using System.Text;
31 public int step_p; 31
32 public int compno; 32namespace OpenSim.Framework.OpenJpeg
33 public int resno; 33{
34 public int precno; 34 public static class pi
35 public int layno; 35 {
36 public int first; 36 }
37 public opj_poc poc; 37
38 public int numcomps; 38 public struct opj_pi_resolution
39 public opj_pi_comp comps; 39 {
40 40 public int pdx, pdy;
41 public int tx0, ty0, tx1, ty1; 41 public int pw, ph;
42 public int x, y, dx, dy; 42 }
43 } 43
44 44 public struct opj_pi_comp
45 45 {
46 46 public int dx, dy;
47 47 public int numresolutions;
48} 48 public opj_pi_resolution resolutions;
49 }
50
51 public struct obj_pi_iterator
52 {
53 public sbyte tp_on;
54 public short include;
55 public int step_l;
56 public int step_r;
57 public int step_c;
58 public int step_p;
59 public int compno;
60 public int resno;
61 public int precno;
62 public int layno;
63 public int first;
64 public opj_poc poc;
65 public int numcomps;
66 public opj_pi_comp comps;
67
68 public int tx0, ty0, tx1, ty1;
69 public int x, y, dx, dy;
70 }
71}