1 /* ----------------------------------------------------------------------------
2 * This file was automatically generated by SWIG (http://www.swig.org).
3 * Version 2.0.4
4 *
5 * This file is not intended to be easily readable and contains a number of
6 * coding conventions designed to improve portability and efficiency. Do not make
7 * changes to this file unless you know what you are doing--modify the SWIG
8 * interface file instead.
9 * ----------------------------------------------------------------------------- */
10
11 #define SWIGJAVA
12
13 /* -----------------------------------------------------------------------------
14 * This section contains generic SWIG labels for method/variable
15 * declarations/attributes, and other compiler dependent labels.
16 * ----------------------------------------------------------------------------- */
17
18 /* template workaround for compilers that cannot correctly implement the C++ standard */
19 #ifndef SWIGTEMPLATEDISAMBIGUATOR
20 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
21 # define SWIGTEMPLATEDISAMBIGUATOR template
22 # elif defined(__HP_aCC)
23 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
24 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
25 # define SWIGTEMPLATEDISAMBIGUATOR template
26 # else
27 # define SWIGTEMPLATEDISAMBIGUATOR
28 # endif
29 #endif
30
31 /* inline attribute */
32 #ifndef SWIGINLINE
33 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
34 # define SWIGINLINE inline
35 # else
36 # define SWIGINLINE
37 # endif
38 #endif
39
40 /* attribute recognised by some compilers to avoid 'unused' warnings */
41 #ifndef SWIGUNUSED
42 # if defined(__GNUC__)
43 # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
44 # define SWIGUNUSED __attribute__ ((__unused__))
45 # else
46 # define SWIGUNUSED
47 # endif
48 # elif defined(__ICC)
49 # define SWIGUNUSED __attribute__ ((__unused__))
50 # else
51 # define SWIGUNUSED
52 # endif
53 #endif
54
55 #ifndef SWIG_MSC_UNSUPPRESS_4505
56 # if defined(_MSC_VER)
57 # pragma warning(disable : 4505) /* unreferenced local function has been removed */
58 # endif
59 #endif
60
61 #ifndef SWIGUNUSEDPARM
62 # ifdef __cplusplus
63 # define SWIGUNUSEDPARM(p)
64 # else
65 # define SWIGUNUSEDPARM(p) p SWIGUNUSED
66 # endif
67 #endif
68
69 /* internal SWIG method */
70 #ifndef SWIGINTERN
71 # define SWIGINTERN static SWIGUNUSED
72 #endif
73
74 /* internal inline SWIG method */
75 #ifndef SWIGINTERNINLINE
76 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
77 #endif
78
79 /* exporting methods */
80 #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
81 # ifndef GCC_HASCLASSVISIBILITY
82 # define GCC_HASCLASSVISIBILITY
83 # endif
84 #endif
85
86 #ifndef SWIGEXPORT
87 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
88 # if defined(STATIC_LINKED)
89 # define SWIGEXPORT
90 # else
91 # define SWIGEXPORT __declspec(dllexport)
92 # endif
93 # else
94 # if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
95 # define SWIGEXPORT __attribute__ ((visibility("default")))
96 # else
97 # define SWIGEXPORT
98 # endif
99 # endif
100 #endif
101
102 /* calling conventions for Windows */
103 #ifndef SWIGSTDCALL
104 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
105 # define SWIGSTDCALL __stdcall
106 # else
107 # define SWIGSTDCALL
108 # endif
109 #endif
110
111 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
112 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
113 # define _CRT_SECURE_NO_DEPRECATE
114 #endif
115
116 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
117 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
118 # define _SCL_SECURE_NO_DEPRECATE
119 #endif
120
121
122
123 /* Fix for jlong on some versions of gcc on Windows */
124 #if defined(__GNUC__) && !defined(__INTEL_COMPILER)
125 typedef long long __int64;
126 #endif
127
128 /* Fix for jlong on 64-bit x86 Solaris */
129 #if defined(__x86_64)
130 # ifdef _LP64
131 # undef _LP64
132 # endif
133 #endif
134
135 #include <jni.h>
136 #include <stdlib.h>
137 #include <string.h>
138
139
140 /* Support for throwing Java exceptions */
141 typedef enum {
142 SWIG_JavaOutOfMemoryError = 1,
143 SWIG_JavaIOException,
144 SWIG_JavaRuntimeException,
145 SWIG_JavaIndexOutOfBoundsException,
146 SWIG_JavaArithmeticException,
147 SWIG_JavaIllegalArgumentException,
148 SWIG_JavaNullPointerException,
149 SWIG_JavaDirectorPureVirtual,
150 SWIG_JavaUnknownError
151 } SWIG_JavaExceptionCodes;
152
153 typedef struct {
154 SWIG_JavaExceptionCodes code;
155 const char *java_exception;
156 } SWIG_JavaExceptions_t;
157
158
SWIG_JavaThrowException(JNIEnv * jenv,SWIG_JavaExceptionCodes code,const char * msg)159 static void SWIGUNUSED SWIG_JavaThrowException(JNIEnv *jenv, SWIG_JavaExceptionCodes code, const char *msg) {
160 jclass excep;
161 static const SWIG_JavaExceptions_t java_exceptions[] = {
162 { SWIG_JavaOutOfMemoryError, "java/lang/OutOfMemoryError" },
163 { SWIG_JavaIOException, "java/io/IOException" },
164 { SWIG_JavaRuntimeException, "java/lang/RuntimeException" },
165 { SWIG_JavaIndexOutOfBoundsException, "java/lang/IndexOutOfBoundsException" },
166 { SWIG_JavaArithmeticException, "java/lang/ArithmeticException" },
167 { SWIG_JavaIllegalArgumentException, "java/lang/IllegalArgumentException" },
168 { SWIG_JavaNullPointerException, "java/lang/NullPointerException" },
169 { SWIG_JavaDirectorPureVirtual, "java/lang/RuntimeException" },
170 { SWIG_JavaUnknownError, "java/lang/UnknownError" },
171 { (SWIG_JavaExceptionCodes)0, "java/lang/UnknownError" }
172 };
173 const SWIG_JavaExceptions_t *except_ptr = java_exceptions;
174
175 while (except_ptr->code != code && except_ptr->code)
176 except_ptr++;
177
178 (*jenv)->ExceptionClear(jenv);
179 excep = (*jenv)->FindClass(jenv, except_ptr->java_exception);
180 if (excep)
181 (*jenv)->ThrowNew(jenv, excep, msg);
182 }
183
184
185 /* Contract support */
186
187 #define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_JavaThrowException(jenv, SWIG_JavaIllegalArgumentException, msg); return nullreturn; } else
188
189 /* Errors in SWIG */
190 #define SWIG_UnknownError -1
191 #define SWIG_IOError -2
192 #define SWIG_RuntimeError -3
193 #define SWIG_IndexError -4
194 #define SWIG_TypeError -5
195 #define SWIG_DivisionByZero -6
196 #define SWIG_OverflowError -7
197 #define SWIG_SyntaxError -8
198 #define SWIG_ValueError -9
199 #define SWIG_SystemError -10
200 #define SWIG_AttributeError -11
201 #define SWIG_MemoryError -12
202 #define SWIG_NullReferenceError -13
203
204
205
206
SWIG_JavaException(JNIEnv * jenv,int code,const char * msg)207 SWIGINTERN void SWIG_JavaException(JNIEnv *jenv, int code, const char *msg) {
208 SWIG_JavaExceptionCodes exception_code = SWIG_JavaUnknownError;
209 switch(code) {
210 case SWIG_MemoryError:
211 exception_code = SWIG_JavaOutOfMemoryError;
212 break;
213 case SWIG_IOError:
214 exception_code = SWIG_JavaIOException;
215 break;
216 case SWIG_SystemError:
217 case SWIG_RuntimeError:
218 exception_code = SWIG_JavaRuntimeException;
219 break;
220 case SWIG_OverflowError:
221 case SWIG_IndexError:
222 exception_code = SWIG_JavaIndexOutOfBoundsException;
223 break;
224 case SWIG_DivisionByZero:
225 exception_code = SWIG_JavaArithmeticException;
226 break;
227 case SWIG_SyntaxError:
228 case SWIG_ValueError:
229 case SWIG_TypeError:
230 exception_code = SWIG_JavaIllegalArgumentException;
231 break;
232 case SWIG_UnknownError:
233 default:
234 exception_code = SWIG_JavaUnknownError;
235 break;
236 }
237 SWIG_JavaThrowException(jenv, exception_code, msg);
238 }
239
240
241 #if defined(SWIG_NOINCLUDE) || defined(SWIG_NOARRAYS)
242
243
244 int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input);
245 void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input);
246 jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz);
247
248
249 int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input);
250 void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input);
251 jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz);
252
253
254 int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input);
255 void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input);
256 jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz);
257
258
259 int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input);
260 void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input);
261 jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz);
262
263
264 int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input);
265 void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input);
266 jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz);
267
268
269 int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input);
270 void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input);
271 jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz);
272
273
274 int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input);
275 void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input);
276 jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz);
277
278
279 int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input);
280 void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input);
281 jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz);
282
283
284 int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input);
285 void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input);
286 jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz);
287
288
289 int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input);
290 void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input);
291 jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz);
292
293
294 int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input);
295 void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input);
296 jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz);
297
298
299 #else
300
301
302 /* signed char[] support */
SWIG_JavaArrayInSchar(JNIEnv * jenv,jbyte ** jarr,signed char ** carr,jbyteArray input)303 int SWIG_JavaArrayInSchar (JNIEnv *jenv, jbyte **jarr, signed char **carr, jbyteArray input) {
304 int i;
305 jsize sz;
306 if (!input) {
307 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
308 return 0;
309 }
310 sz = (*jenv)->GetArrayLength(jenv, input);
311 *jarr = (*jenv)->GetByteArrayElements(jenv, input, 0);
312 if (!*jarr)
313 return 0;
314 *carr = (signed char*) calloc(sz, sizeof(signed char));
315 if (!*carr) {
316 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
317 return 0;
318 }
319 for (i=0; i<sz; i++)
320 (*carr)[i] = (signed char)(*jarr)[i];
321 return 1;
322 }
323
SWIG_JavaArrayArgoutSchar(JNIEnv * jenv,jbyte * jarr,signed char * carr,jbyteArray input)324 void SWIG_JavaArrayArgoutSchar (JNIEnv *jenv, jbyte *jarr, signed char *carr, jbyteArray input) {
325 int i;
326 jsize sz = (*jenv)->GetArrayLength(jenv, input);
327 for (i=0; i<sz; i++)
328 jarr[i] = (jbyte)carr[i];
329 (*jenv)->ReleaseByteArrayElements(jenv, input, jarr, 0);
330 }
331
SWIG_JavaArrayOutSchar(JNIEnv * jenv,signed char * result,jsize sz)332 jbyteArray SWIG_JavaArrayOutSchar (JNIEnv *jenv, signed char *result, jsize sz) {
333 jbyte *arr;
334 int i;
335 jbyteArray jresult = (*jenv)->NewByteArray(jenv, sz);
336 if (!jresult)
337 return NULL;
338 arr = (*jenv)->GetByteArrayElements(jenv, jresult, 0);
339 if (!arr)
340 return NULL;
341 for (i=0; i<sz; i++)
342 arr[i] = (jbyte)result[i];
343 (*jenv)->ReleaseByteArrayElements(jenv, jresult, arr, 0);
344 return jresult;
345 }
346
347
348 /* unsigned char[] support */
SWIG_JavaArrayInUchar(JNIEnv * jenv,jshort ** jarr,unsigned char ** carr,jshortArray input)349 int SWIG_JavaArrayInUchar (JNIEnv *jenv, jshort **jarr, unsigned char **carr, jshortArray input) {
350 int i;
351 jsize sz;
352 if (!input) {
353 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
354 return 0;
355 }
356 sz = (*jenv)->GetArrayLength(jenv, input);
357 *jarr = (*jenv)->GetShortArrayElements(jenv, input, 0);
358 if (!*jarr)
359 return 0;
360 *carr = (unsigned char*) calloc(sz, sizeof(unsigned char));
361 if (!*carr) {
362 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
363 return 0;
364 }
365 for (i=0; i<sz; i++)
366 (*carr)[i] = (unsigned char)(*jarr)[i];
367 return 1;
368 }
369
SWIG_JavaArrayArgoutUchar(JNIEnv * jenv,jshort * jarr,unsigned char * carr,jshortArray input)370 void SWIG_JavaArrayArgoutUchar (JNIEnv *jenv, jshort *jarr, unsigned char *carr, jshortArray input) {
371 int i;
372 jsize sz = (*jenv)->GetArrayLength(jenv, input);
373 for (i=0; i<sz; i++)
374 jarr[i] = (jshort)carr[i];
375 (*jenv)->ReleaseShortArrayElements(jenv, input, jarr, 0);
376 }
377
SWIG_JavaArrayOutUchar(JNIEnv * jenv,unsigned char * result,jsize sz)378 jshortArray SWIG_JavaArrayOutUchar (JNIEnv *jenv, unsigned char *result, jsize sz) {
379 jshort *arr;
380 int i;
381 jshortArray jresult = (*jenv)->NewShortArray(jenv, sz);
382 if (!jresult)
383 return NULL;
384 arr = (*jenv)->GetShortArrayElements(jenv, jresult, 0);
385 if (!arr)
386 return NULL;
387 for (i=0; i<sz; i++)
388 arr[i] = (jshort)result[i];
389 (*jenv)->ReleaseShortArrayElements(jenv, jresult, arr, 0);
390 return jresult;
391 }
392
393
394 /* short[] support */
SWIG_JavaArrayInShort(JNIEnv * jenv,jshort ** jarr,short ** carr,jshortArray input)395 int SWIG_JavaArrayInShort (JNIEnv *jenv, jshort **jarr, short **carr, jshortArray input) {
396 int i;
397 jsize sz;
398 if (!input) {
399 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
400 return 0;
401 }
402 sz = (*jenv)->GetArrayLength(jenv, input);
403 *jarr = (*jenv)->GetShortArrayElements(jenv, input, 0);
404 if (!*jarr)
405 return 0;
406 *carr = (short*) calloc(sz, sizeof(short));
407 if (!*carr) {
408 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
409 return 0;
410 }
411 for (i=0; i<sz; i++)
412 (*carr)[i] = (short)(*jarr)[i];
413 return 1;
414 }
415
SWIG_JavaArrayArgoutShort(JNIEnv * jenv,jshort * jarr,short * carr,jshortArray input)416 void SWIG_JavaArrayArgoutShort (JNIEnv *jenv, jshort *jarr, short *carr, jshortArray input) {
417 int i;
418 jsize sz = (*jenv)->GetArrayLength(jenv, input);
419 for (i=0; i<sz; i++)
420 jarr[i] = (jshort)carr[i];
421 (*jenv)->ReleaseShortArrayElements(jenv, input, jarr, 0);
422 }
423
SWIG_JavaArrayOutShort(JNIEnv * jenv,short * result,jsize sz)424 jshortArray SWIG_JavaArrayOutShort (JNIEnv *jenv, short *result, jsize sz) {
425 jshort *arr;
426 int i;
427 jshortArray jresult = (*jenv)->NewShortArray(jenv, sz);
428 if (!jresult)
429 return NULL;
430 arr = (*jenv)->GetShortArrayElements(jenv, jresult, 0);
431 if (!arr)
432 return NULL;
433 for (i=0; i<sz; i++)
434 arr[i] = (jshort)result[i];
435 (*jenv)->ReleaseShortArrayElements(jenv, jresult, arr, 0);
436 return jresult;
437 }
438
439
440 /* unsigned short[] support */
SWIG_JavaArrayInUshort(JNIEnv * jenv,jint ** jarr,unsigned short ** carr,jintArray input)441 int SWIG_JavaArrayInUshort (JNIEnv *jenv, jint **jarr, unsigned short **carr, jintArray input) {
442 int i;
443 jsize sz;
444 if (!input) {
445 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
446 return 0;
447 }
448 sz = (*jenv)->GetArrayLength(jenv, input);
449 *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0);
450 if (!*jarr)
451 return 0;
452 *carr = (unsigned short*) calloc(sz, sizeof(unsigned short));
453 if (!*carr) {
454 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
455 return 0;
456 }
457 for (i=0; i<sz; i++)
458 (*carr)[i] = (unsigned short)(*jarr)[i];
459 return 1;
460 }
461
SWIG_JavaArrayArgoutUshort(JNIEnv * jenv,jint * jarr,unsigned short * carr,jintArray input)462 void SWIG_JavaArrayArgoutUshort (JNIEnv *jenv, jint *jarr, unsigned short *carr, jintArray input) {
463 int i;
464 jsize sz = (*jenv)->GetArrayLength(jenv, input);
465 for (i=0; i<sz; i++)
466 jarr[i] = (jint)carr[i];
467 (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0);
468 }
469
SWIG_JavaArrayOutUshort(JNIEnv * jenv,unsigned short * result,jsize sz)470 jintArray SWIG_JavaArrayOutUshort (JNIEnv *jenv, unsigned short *result, jsize sz) {
471 jint *arr;
472 int i;
473 jintArray jresult = (*jenv)->NewIntArray(jenv, sz);
474 if (!jresult)
475 return NULL;
476 arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0);
477 if (!arr)
478 return NULL;
479 for (i=0; i<sz; i++)
480 arr[i] = (jint)result[i];
481 (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0);
482 return jresult;
483 }
484
485
486 /* int[] support */
SWIG_JavaArrayInInt(JNIEnv * jenv,jint ** jarr,int ** carr,jintArray input)487 int SWIG_JavaArrayInInt (JNIEnv *jenv, jint **jarr, int **carr, jintArray input) {
488 int i;
489 jsize sz;
490 if (!input) {
491 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
492 return 0;
493 }
494 sz = (*jenv)->GetArrayLength(jenv, input);
495 *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0);
496 if (!*jarr)
497 return 0;
498 *carr = (int*) calloc(sz, sizeof(int));
499 if (!*carr) {
500 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
501 return 0;
502 }
503 for (i=0; i<sz; i++)
504 (*carr)[i] = (int)(*jarr)[i];
505 return 1;
506 }
507
SWIG_JavaArrayArgoutInt(JNIEnv * jenv,jint * jarr,int * carr,jintArray input)508 void SWIG_JavaArrayArgoutInt (JNIEnv *jenv, jint *jarr, int *carr, jintArray input) {
509 int i;
510 jsize sz = (*jenv)->GetArrayLength(jenv, input);
511 for (i=0; i<sz; i++)
512 jarr[i] = (jint)carr[i];
513 (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0);
514 }
515
SWIG_JavaArrayOutInt(JNIEnv * jenv,int * result,jsize sz)516 jintArray SWIG_JavaArrayOutInt (JNIEnv *jenv, int *result, jsize sz) {
517 jint *arr;
518 int i;
519 jintArray jresult = (*jenv)->NewIntArray(jenv, sz);
520 if (!jresult)
521 return NULL;
522 arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0);
523 if (!arr)
524 return NULL;
525 for (i=0; i<sz; i++)
526 arr[i] = (jint)result[i];
527 (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0);
528 return jresult;
529 }
530
531
532 /* unsigned int[] support */
SWIG_JavaArrayInUint(JNIEnv * jenv,jlong ** jarr,unsigned int ** carr,jlongArray input)533 int SWIG_JavaArrayInUint (JNIEnv *jenv, jlong **jarr, unsigned int **carr, jlongArray input) {
534 int i;
535 jsize sz;
536 if (!input) {
537 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
538 return 0;
539 }
540 sz = (*jenv)->GetArrayLength(jenv, input);
541 *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0);
542 if (!*jarr)
543 return 0;
544 *carr = (unsigned int*) calloc(sz, sizeof(unsigned int));
545 if (!*carr) {
546 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
547 return 0;
548 }
549 for (i=0; i<sz; i++)
550 (*carr)[i] = (unsigned int)(*jarr)[i];
551 return 1;
552 }
553
SWIG_JavaArrayArgoutUint(JNIEnv * jenv,jlong * jarr,unsigned int * carr,jlongArray input)554 void SWIG_JavaArrayArgoutUint (JNIEnv *jenv, jlong *jarr, unsigned int *carr, jlongArray input) {
555 int i;
556 jsize sz = (*jenv)->GetArrayLength(jenv, input);
557 for (i=0; i<sz; i++)
558 jarr[i] = (jlong)carr[i];
559 (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0);
560 }
561
SWIG_JavaArrayOutUint(JNIEnv * jenv,unsigned int * result,jsize sz)562 jlongArray SWIG_JavaArrayOutUint (JNIEnv *jenv, unsigned int *result, jsize sz) {
563 jlong *arr;
564 int i;
565 jlongArray jresult = (*jenv)->NewLongArray(jenv, sz);
566 if (!jresult)
567 return NULL;
568 arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0);
569 if (!arr)
570 return NULL;
571 for (i=0; i<sz; i++)
572 arr[i] = (jlong)result[i];
573 (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0);
574 return jresult;
575 }
576
577
578 /* long[] support */
SWIG_JavaArrayInLong(JNIEnv * jenv,jint ** jarr,long ** carr,jintArray input)579 int SWIG_JavaArrayInLong (JNIEnv *jenv, jint **jarr, long **carr, jintArray input) {
580 int i;
581 jsize sz;
582 if (!input) {
583 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
584 return 0;
585 }
586 sz = (*jenv)->GetArrayLength(jenv, input);
587 *jarr = (*jenv)->GetIntArrayElements(jenv, input, 0);
588 if (!*jarr)
589 return 0;
590 *carr = (long*) calloc(sz, sizeof(long));
591 if (!*carr) {
592 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
593 return 0;
594 }
595 for (i=0; i<sz; i++)
596 (*carr)[i] = (long)(*jarr)[i];
597 return 1;
598 }
599
SWIG_JavaArrayArgoutLong(JNIEnv * jenv,jint * jarr,long * carr,jintArray input)600 void SWIG_JavaArrayArgoutLong (JNIEnv *jenv, jint *jarr, long *carr, jintArray input) {
601 int i;
602 jsize sz = (*jenv)->GetArrayLength(jenv, input);
603 for (i=0; i<sz; i++)
604 jarr[i] = (jint)carr[i];
605 (*jenv)->ReleaseIntArrayElements(jenv, input, jarr, 0);
606 }
607
SWIG_JavaArrayOutLong(JNIEnv * jenv,long * result,jsize sz)608 jintArray SWIG_JavaArrayOutLong (JNIEnv *jenv, long *result, jsize sz) {
609 jint *arr;
610 int i;
611 jintArray jresult = (*jenv)->NewIntArray(jenv, sz);
612 if (!jresult)
613 return NULL;
614 arr = (*jenv)->GetIntArrayElements(jenv, jresult, 0);
615 if (!arr)
616 return NULL;
617 for (i=0; i<sz; i++)
618 arr[i] = (jint)result[i];
619 (*jenv)->ReleaseIntArrayElements(jenv, jresult, arr, 0);
620 return jresult;
621 }
622
623
624 /* unsigned long[] support */
SWIG_JavaArrayInUlong(JNIEnv * jenv,jlong ** jarr,unsigned long ** carr,jlongArray input)625 int SWIG_JavaArrayInUlong (JNIEnv *jenv, jlong **jarr, unsigned long **carr, jlongArray input) {
626 int i;
627 jsize sz;
628 if (!input) {
629 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
630 return 0;
631 }
632 sz = (*jenv)->GetArrayLength(jenv, input);
633 *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0);
634 if (!*jarr)
635 return 0;
636 *carr = (unsigned long*) calloc(sz, sizeof(unsigned long));
637 if (!*carr) {
638 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
639 return 0;
640 }
641 for (i=0; i<sz; i++)
642 (*carr)[i] = (unsigned long)(*jarr)[i];
643 return 1;
644 }
645
SWIG_JavaArrayArgoutUlong(JNIEnv * jenv,jlong * jarr,unsigned long * carr,jlongArray input)646 void SWIG_JavaArrayArgoutUlong (JNIEnv *jenv, jlong *jarr, unsigned long *carr, jlongArray input) {
647 int i;
648 jsize sz = (*jenv)->GetArrayLength(jenv, input);
649 for (i=0; i<sz; i++)
650 jarr[i] = (jlong)carr[i];
651 (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0);
652 }
653
SWIG_JavaArrayOutUlong(JNIEnv * jenv,unsigned long * result,jsize sz)654 jlongArray SWIG_JavaArrayOutUlong (JNIEnv *jenv, unsigned long *result, jsize sz) {
655 jlong *arr;
656 int i;
657 jlongArray jresult = (*jenv)->NewLongArray(jenv, sz);
658 if (!jresult)
659 return NULL;
660 arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0);
661 if (!arr)
662 return NULL;
663 for (i=0; i<sz; i++)
664 arr[i] = (jlong)result[i];
665 (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0);
666 return jresult;
667 }
668
669
670 /* jlong[] support */
SWIG_JavaArrayInLonglong(JNIEnv * jenv,jlong ** jarr,jlong ** carr,jlongArray input)671 int SWIG_JavaArrayInLonglong (JNIEnv *jenv, jlong **jarr, jlong **carr, jlongArray input) {
672 int i;
673 jsize sz;
674 if (!input) {
675 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
676 return 0;
677 }
678 sz = (*jenv)->GetArrayLength(jenv, input);
679 *jarr = (*jenv)->GetLongArrayElements(jenv, input, 0);
680 if (!*jarr)
681 return 0;
682 *carr = (jlong*) calloc(sz, sizeof(jlong));
683 if (!*carr) {
684 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
685 return 0;
686 }
687 for (i=0; i<sz; i++)
688 (*carr)[i] = (jlong)(*jarr)[i];
689 return 1;
690 }
691
SWIG_JavaArrayArgoutLonglong(JNIEnv * jenv,jlong * jarr,jlong * carr,jlongArray input)692 void SWIG_JavaArrayArgoutLonglong (JNIEnv *jenv, jlong *jarr, jlong *carr, jlongArray input) {
693 int i;
694 jsize sz = (*jenv)->GetArrayLength(jenv, input);
695 for (i=0; i<sz; i++)
696 jarr[i] = (jlong)carr[i];
697 (*jenv)->ReleaseLongArrayElements(jenv, input, jarr, 0);
698 }
699
SWIG_JavaArrayOutLonglong(JNIEnv * jenv,jlong * result,jsize sz)700 jlongArray SWIG_JavaArrayOutLonglong (JNIEnv *jenv, jlong *result, jsize sz) {
701 jlong *arr;
702 int i;
703 jlongArray jresult = (*jenv)->NewLongArray(jenv, sz);
704 if (!jresult)
705 return NULL;
706 arr = (*jenv)->GetLongArrayElements(jenv, jresult, 0);
707 if (!arr)
708 return NULL;
709 for (i=0; i<sz; i++)
710 arr[i] = (jlong)result[i];
711 (*jenv)->ReleaseLongArrayElements(jenv, jresult, arr, 0);
712 return jresult;
713 }
714
715
716 /* float[] support */
SWIG_JavaArrayInFloat(JNIEnv * jenv,jfloat ** jarr,float ** carr,jfloatArray input)717 int SWIG_JavaArrayInFloat (JNIEnv *jenv, jfloat **jarr, float **carr, jfloatArray input) {
718 int i;
719 jsize sz;
720 if (!input) {
721 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
722 return 0;
723 }
724 sz = (*jenv)->GetArrayLength(jenv, input);
725 *jarr = (*jenv)->GetFloatArrayElements(jenv, input, 0);
726 if (!*jarr)
727 return 0;
728 *carr = (float*) calloc(sz, sizeof(float));
729 if (!*carr) {
730 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
731 return 0;
732 }
733 for (i=0; i<sz; i++)
734 (*carr)[i] = (float)(*jarr)[i];
735 return 1;
736 }
737
SWIG_JavaArrayArgoutFloat(JNIEnv * jenv,jfloat * jarr,float * carr,jfloatArray input)738 void SWIG_JavaArrayArgoutFloat (JNIEnv *jenv, jfloat *jarr, float *carr, jfloatArray input) {
739 int i;
740 jsize sz = (*jenv)->GetArrayLength(jenv, input);
741 for (i=0; i<sz; i++)
742 jarr[i] = (jfloat)carr[i];
743 (*jenv)->ReleaseFloatArrayElements(jenv, input, jarr, 0);
744 }
745
SWIG_JavaArrayOutFloat(JNIEnv * jenv,float * result,jsize sz)746 jfloatArray SWIG_JavaArrayOutFloat (JNIEnv *jenv, float *result, jsize sz) {
747 jfloat *arr;
748 int i;
749 jfloatArray jresult = (*jenv)->NewFloatArray(jenv, sz);
750 if (!jresult)
751 return NULL;
752 arr = (*jenv)->GetFloatArrayElements(jenv, jresult, 0);
753 if (!arr)
754 return NULL;
755 for (i=0; i<sz; i++)
756 arr[i] = (jfloat)result[i];
757 (*jenv)->ReleaseFloatArrayElements(jenv, jresult, arr, 0);
758 return jresult;
759 }
760
761
762 /* double[] support */
SWIG_JavaArrayInDouble(JNIEnv * jenv,jdouble ** jarr,double ** carr,jdoubleArray input)763 int SWIG_JavaArrayInDouble (JNIEnv *jenv, jdouble **jarr, double **carr, jdoubleArray input) {
764 int i;
765 jsize sz;
766 if (!input) {
767 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
768 return 0;
769 }
770 sz = (*jenv)->GetArrayLength(jenv, input);
771 *jarr = (*jenv)->GetDoubleArrayElements(jenv, input, 0);
772 if (!*jarr)
773 return 0;
774 *carr = (double*) calloc(sz, sizeof(double));
775 if (!*carr) {
776 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
777 return 0;
778 }
779 for (i=0; i<sz; i++)
780 (*carr)[i] = (double)(*jarr)[i];
781 return 1;
782 }
783
SWIG_JavaArrayArgoutDouble(JNIEnv * jenv,jdouble * jarr,double * carr,jdoubleArray input)784 void SWIG_JavaArrayArgoutDouble (JNIEnv *jenv, jdouble *jarr, double *carr, jdoubleArray input) {
785 int i;
786 jsize sz = (*jenv)->GetArrayLength(jenv, input);
787 for (i=0; i<sz; i++)
788 jarr[i] = (jdouble)carr[i];
789 (*jenv)->ReleaseDoubleArrayElements(jenv, input, jarr, 0);
790 }
791
SWIG_JavaArrayOutDouble(JNIEnv * jenv,double * result,jsize sz)792 jdoubleArray SWIG_JavaArrayOutDouble (JNIEnv *jenv, double *result, jsize sz) {
793 jdouble *arr;
794 int i;
795 jdoubleArray jresult = (*jenv)->NewDoubleArray(jenv, sz);
796 if (!jresult)
797 return NULL;
798 arr = (*jenv)->GetDoubleArrayElements(jenv, jresult, 0);
799 if (!arr)
800 return NULL;
801 for (i=0; i<sz; i++)
802 arr[i] = (jdouble)result[i];
803 (*jenv)->ReleaseDoubleArrayElements(jenv, jresult, arr, 0);
804 return jresult;
805 }
806
807
808 #endif
809
810
811 #include "webp/types.h"
812
813
814 int SWIG_JavaArrayInUint8 (JNIEnv *jenv, jbyte **jarr, uint8_t **carr, jbyteArray input);
815 void SWIG_JavaArrayArgoutUint8 (JNIEnv *jenv, jbyte *jarr, uint8_t *carr, jbyteArray input);
816 jbyteArray SWIG_JavaArrayOutUint8 (JNIEnv *jenv, uint8_t *result, jsize sz);
817
818
819 /* uint8_t[] support */
SWIG_JavaArrayInUint8(JNIEnv * jenv,jbyte ** jarr,uint8_t ** carr,jbyteArray input)820 int SWIG_JavaArrayInUint8 (JNIEnv *jenv, jbyte **jarr, uint8_t **carr, jbyteArray input) {
821 int i;
822 jsize sz;
823 if (!input) {
824 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null array");
825 return 0;
826 }
827 sz = (*jenv)->GetArrayLength(jenv, input);
828 *jarr = (*jenv)->GetByteArrayElements(jenv, input, 0);
829 if (!*jarr)
830 return 0;
831 *carr = (uint8_t*) calloc(sz, sizeof(uint8_t));
832 if (!*carr) {
833 SWIG_JavaThrowException(jenv, SWIG_JavaOutOfMemoryError, "array memory allocation failed");
834 return 0;
835 }
836 for (i=0; i<sz; i++)
837 (*carr)[i] = (uint8_t)(*jarr)[i];
838 return 1;
839 }
840
SWIG_JavaArrayArgoutUint8(JNIEnv * jenv,jbyte * jarr,uint8_t * carr,jbyteArray input)841 void SWIG_JavaArrayArgoutUint8 (JNIEnv *jenv, jbyte *jarr, uint8_t *carr, jbyteArray input) {
842 int i;
843 jsize sz = (*jenv)->GetArrayLength(jenv, input);
844 for (i=0; i<sz; i++)
845 jarr[i] = (jbyte)carr[i];
846 (*jenv)->ReleaseByteArrayElements(jenv, input, jarr, 0);
847 }
848
SWIG_JavaArrayOutUint8(JNIEnv * jenv,uint8_t * result,jsize sz)849 jbyteArray SWIG_JavaArrayOutUint8 (JNIEnv *jenv, uint8_t *result, jsize sz) {
850 jbyte *arr;
851 int i;
852 jbyteArray jresult = (*jenv)->NewByteArray(jenv, sz);
853 if (!jresult)
854 return NULL;
855 arr = (*jenv)->GetByteArrayElements(jenv, jresult, 0);
856 if (!arr)
857 return NULL;
858 for (i=0; i<sz; i++)
859 arr[i] = (jbyte)result[i];
860 (*jenv)->ReleaseByteArrayElements(jenv, jresult, arr, 0);
861 return jresult;
862 }
863
864
865 #include "webp/decode.h"
866 #include "webp/encode.h"
867
868
869 #define FillMeInAsSizeCannotBeDeterminedAutomatically \
870 (result ? (jint)ReturnedBufferSize(__FUNCTION__, arg3, arg4) : 0)
871
872
ReturnedBufferSize(const char * function,int * width,int * height)873 static size_t ReturnedBufferSize(
874 const char* function, int* width, int* height) {
875 static const struct sizemap {
876 const char* function;
877 int size_multiplier;
878 } size_map[] = {
879 #ifdef SWIGJAVA
880 { "Java_com_google_webp_libwebpJNI_WebPDecodeRGB", 3 },
881 { "Java_com_google_webp_libwebpJNI_WebPDecodeRGBA", 4 },
882 { "Java_com_google_webp_libwebpJNI_WebPDecodeARGB", 4 },
883 { "Java_com_google_webp_libwebpJNI_WebPDecodeBGR", 3 },
884 { "Java_com_google_webp_libwebpJNI_WebPDecodeBGRA", 4 },
885 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB", 1 },
886 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR", 1 },
887 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA", 1 },
888 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA", 1 },
889 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB", 1 },
890 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR", 1 },
891 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA", 1 },
892 { "Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA", 1 },
893 #endif
894 #ifdef SWIGPYTHON
895 { "WebPDecodeRGB", 3 },
896 { "WebPDecodeRGBA", 4 },
897 { "WebPDecodeARGB", 4 },
898 { "WebPDecodeBGR", 3 },
899 { "WebPDecodeBGRA", 4 },
900 { "wrap_WebPEncodeRGB", 1 },
901 { "wrap_WebPEncodeBGR", 1 },
902 { "wrap_WebPEncodeRGBA", 1 },
903 { "wrap_WebPEncodeBGRA", 1 },
904 { "wrap_WebPEncodeLosslessRGB", 1 },
905 { "wrap_WebPEncodeLosslessBGR", 1 },
906 { "wrap_WebPEncodeLosslessRGBA", 1 },
907 { "wrap_WebPEncodeLosslessBGRA", 1 },
908 #endif
909 { NULL, 0 }
910 };
911 const struct sizemap* p;
912 size_t size = 0;
913
914 for (p = size_map; p->function; ++p) {
915 if (!strcmp(function, p->function)) {
916 size = *width * *height * p->size_multiplier;
917 break;
918 }
919 }
920
921 return size;
922 }
923
924
925 typedef size_t (*WebPEncodeFunction)(const uint8_t* rgb,
926 int width, int height, int stride,
927 float quality_factor, uint8_t** output);
928 typedef size_t (*WebPEncodeLosslessFunction)(const uint8_t* rgb,
929 int width, int height, int stride,
930 uint8_t** output);
931
EncodeLossy(const uint8_t * rgb,int width,int height,int stride,float quality_factor,WebPEncodeFunction encfn,int * output_size,int * unused)932 static uint8_t* EncodeLossy(const uint8_t* rgb,
933 int width, int height, int stride,
934 float quality_factor,
935 WebPEncodeFunction encfn,
936 int* output_size, int* unused) {
937 uint8_t* output = NULL;
938 const size_t image_size =
939 encfn(rgb, width, height, stride, quality_factor, &output);
940 // the values of following two will be interpreted by ReturnedBufferSize()
941 // as 'width' and 'height' in the size calculation.
942 *output_size = image_size;
943 *unused = 1;
944 return image_size ? output : NULL;
945 }
946
EncodeLossless(const uint8_t * rgb,int width,int height,int stride,WebPEncodeLosslessFunction encfn,int * output_size,int * unused)947 static uint8_t* EncodeLossless(const uint8_t* rgb,
948 int width, int height, int stride,
949 WebPEncodeLosslessFunction encfn,
950 int* output_size, int* unused) {
951 uint8_t* output = NULL;
952 const size_t image_size = encfn(rgb, width, height, stride, &output);
953 // the values of the following two will be interpreted by
954 // ReturnedBufferSize() as 'width' and 'height' in the size calculation.
955 *output_size = image_size;
956 *unused = 1;
957 return image_size ? output : NULL;
958 }
959
960
961 // Changes the return type of WebPEncode* to more closely match Decode*.
962 // This also makes it easier to wrap the output buffer in a native type rather
963 // than dealing with the return pointer.
964 // The additional parameters are to allow reuse of ReturnedBufferSize(),
965 // unused2 and output_size will be used in this case.
966 #define LOSSY_WRAPPER(FUNC) \
967 static uint8_t* wrap_##FUNC( \
968 const uint8_t* rgb, int* unused1, int* unused2, int* output_size, \
969 int width, int height, int stride, float quality_factor) { \
970 return EncodeLossy(rgb, width, height, stride, quality_factor, \
971 FUNC, output_size, unused2); \
972 } \
973
974 LOSSY_WRAPPER(WebPEncodeRGB)
LOSSY_WRAPPER(WebPEncodeBGR)975 LOSSY_WRAPPER(WebPEncodeBGR)
976 LOSSY_WRAPPER(WebPEncodeRGBA)
977 LOSSY_WRAPPER(WebPEncodeBGRA)
978
979 #undef LOSSY_WRAPPER
980
981 #define LOSSLESS_WRAPPER(FUNC) \
982 static uint8_t* wrap_##FUNC( \
983 const uint8_t* rgb, int* unused1, int* unused2, int* output_size, \
984 int width, int height, int stride) { \
985 return EncodeLossless(rgb, width, height, stride, \
986 FUNC, output_size, unused2); \
987 } \
988
989 LOSSLESS_WRAPPER(WebPEncodeLosslessRGB)
990 LOSSLESS_WRAPPER(WebPEncodeLosslessBGR)
991 LOSSLESS_WRAPPER(WebPEncodeLosslessRGBA)
992 LOSSLESS_WRAPPER(WebPEncodeLosslessBGRA)
993
994 #undef LOSSLESS_WRAPPER
995
996
997
998 /* Work around broken gcj jni.h */
999 #ifdef __GCJ_JNI_H__
1000 # undef JNIEXPORT
1001 # define JNIEXPORT
1002 # undef JNICALL
1003 # define JNICALL
1004 #endif
1005
1006
1007 #ifdef __cplusplus
1008 extern "C" {
1009 #endif
1010
1011 SWIGEXPORT jint JNICALL Java_com_google_webp_libwebpJNI_WebPGetDecoderVersion(JNIEnv *jenv, jclass jcls) {
1012 jint jresult = 0 ;
1013 int result;
1014
1015 (void)jenv;
1016 (void)jcls;
1017 result = (int)WebPGetDecoderVersion();
1018 jresult = (jint)result;
1019 return jresult;
1020 }
1021
1022
1023 SWIGEXPORT jint JNICALL Java_com_google_webp_libwebpJNI_WebPGetInfo(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1024 jint jresult = 0 ;
1025 uint8_t *arg1 = (uint8_t *) 0 ;
1026 size_t arg2 ;
1027 int *arg3 = (int *) 0 ;
1028 int *arg4 = (int *) 0 ;
1029 jbyte *jarr1 ;
1030 int temp3 ;
1031 int temp4 ;
1032 int result;
1033
1034 (void)jenv;
1035 (void)jcls;
1036 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1037 arg2 = (size_t)jarg2;
1038 {
1039 if (!jarg3) {
1040 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1041 return 0;
1042 }
1043 if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1044 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1045 return 0;
1046 }
1047 arg3 = &temp3;
1048 }
1049 {
1050 if (!jarg4) {
1051 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1052 return 0;
1053 }
1054 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1055 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1056 return 0;
1057 }
1058 arg4 = &temp4;
1059 }
1060 result = (int)WebPGetInfo((uint8_t const *)arg1,arg2,arg3,arg4);
1061 jresult = (jint)result;
1062 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1063 {
1064 jint jvalue = (jint)temp3;
1065 (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1066 }
1067 {
1068 jint jvalue = (jint)temp4;
1069 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1070 }
1071 free(arg1);
1072
1073
1074 return jresult;
1075 }
1076
1077
1078 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeRGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1079 jbyteArray jresult = 0 ;
1080 uint8_t *arg1 = (uint8_t *) 0 ;
1081 size_t arg2 ;
1082 int *arg3 = (int *) 0 ;
1083 int *arg4 = (int *) 0 ;
1084 jbyte *jarr1 ;
1085 int temp3 ;
1086 int temp4 ;
1087 uint8_t *result = 0 ;
1088
1089 (void)jenv;
1090 (void)jcls;
1091 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1092 arg2 = (size_t)jarg2;
1093 {
1094 if (!jarg3) {
1095 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1096 return 0;
1097 }
1098 if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1099 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1100 return 0;
1101 }
1102 arg3 = &temp3;
1103 }
1104 {
1105 if (!jarg4) {
1106 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1107 return 0;
1108 }
1109 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1110 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1111 return 0;
1112 }
1113 arg4 = &temp4;
1114 }
1115 result = (uint8_t *)WebPDecodeRGB((uint8_t const *)arg1,arg2,arg3,arg4);
1116 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1117 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1118 {
1119 jint jvalue = (jint)temp3;
1120 (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1121 }
1122 {
1123 jint jvalue = (jint)temp4;
1124 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1125 }
1126 free(arg1);
1127
1128
1129 free(result);
1130 return jresult;
1131 }
1132
1133
1134 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeRGBA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1135 jbyteArray jresult = 0 ;
1136 uint8_t *arg1 = (uint8_t *) 0 ;
1137 size_t arg2 ;
1138 int *arg3 = (int *) 0 ;
1139 int *arg4 = (int *) 0 ;
1140 jbyte *jarr1 ;
1141 int temp3 ;
1142 int temp4 ;
1143 uint8_t *result = 0 ;
1144
1145 (void)jenv;
1146 (void)jcls;
1147 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1148 arg2 = (size_t)jarg2;
1149 {
1150 if (!jarg3) {
1151 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1152 return 0;
1153 }
1154 if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1155 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1156 return 0;
1157 }
1158 arg3 = &temp3;
1159 }
1160 {
1161 if (!jarg4) {
1162 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1163 return 0;
1164 }
1165 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1166 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1167 return 0;
1168 }
1169 arg4 = &temp4;
1170 }
1171 result = (uint8_t *)WebPDecodeRGBA((uint8_t const *)arg1,arg2,arg3,arg4);
1172 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1173 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1174 {
1175 jint jvalue = (jint)temp3;
1176 (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1177 }
1178 {
1179 jint jvalue = (jint)temp4;
1180 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1181 }
1182 free(arg1);
1183
1184
1185 free(result);
1186 return jresult;
1187 }
1188
1189
1190 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeARGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1191 jbyteArray jresult = 0 ;
1192 uint8_t *arg1 = (uint8_t *) 0 ;
1193 size_t arg2 ;
1194 int *arg3 = (int *) 0 ;
1195 int *arg4 = (int *) 0 ;
1196 jbyte *jarr1 ;
1197 int temp3 ;
1198 int temp4 ;
1199 uint8_t *result = 0 ;
1200
1201 (void)jenv;
1202 (void)jcls;
1203 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1204 arg2 = (size_t)jarg2;
1205 {
1206 if (!jarg3) {
1207 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1208 return 0;
1209 }
1210 if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1211 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1212 return 0;
1213 }
1214 arg3 = &temp3;
1215 }
1216 {
1217 if (!jarg4) {
1218 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1219 return 0;
1220 }
1221 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1222 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1223 return 0;
1224 }
1225 arg4 = &temp4;
1226 }
1227 result = (uint8_t *)WebPDecodeARGB((uint8_t const *)arg1,arg2,arg3,arg4);
1228 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1229 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1230 {
1231 jint jvalue = (jint)temp3;
1232 (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1233 }
1234 {
1235 jint jvalue = (jint)temp4;
1236 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1237 }
1238 free(arg1);
1239
1240
1241 free(result);
1242 return jresult;
1243 }
1244
1245
1246 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeBGR(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1247 jbyteArray jresult = 0 ;
1248 uint8_t *arg1 = (uint8_t *) 0 ;
1249 size_t arg2 ;
1250 int *arg3 = (int *) 0 ;
1251 int *arg4 = (int *) 0 ;
1252 jbyte *jarr1 ;
1253 int temp3 ;
1254 int temp4 ;
1255 uint8_t *result = 0 ;
1256
1257 (void)jenv;
1258 (void)jcls;
1259 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1260 arg2 = (size_t)jarg2;
1261 {
1262 if (!jarg3) {
1263 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1264 return 0;
1265 }
1266 if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1267 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1268 return 0;
1269 }
1270 arg3 = &temp3;
1271 }
1272 {
1273 if (!jarg4) {
1274 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1275 return 0;
1276 }
1277 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1278 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1279 return 0;
1280 }
1281 arg4 = &temp4;
1282 }
1283 result = (uint8_t *)WebPDecodeBGR((uint8_t const *)arg1,arg2,arg3,arg4);
1284 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1285 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1286 {
1287 jint jvalue = (jint)temp3;
1288 (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1289 }
1290 {
1291 jint jvalue = (jint)temp4;
1292 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1293 }
1294 free(arg1);
1295
1296
1297 free(result);
1298 return jresult;
1299 }
1300
1301
1302 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_WebPDecodeBGRA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jlong jarg2, jintArray jarg3, jintArray jarg4) {
1303 jbyteArray jresult = 0 ;
1304 uint8_t *arg1 = (uint8_t *) 0 ;
1305 size_t arg2 ;
1306 int *arg3 = (int *) 0 ;
1307 int *arg4 = (int *) 0 ;
1308 jbyte *jarr1 ;
1309 int temp3 ;
1310 int temp4 ;
1311 uint8_t *result = 0 ;
1312
1313 (void)jenv;
1314 (void)jcls;
1315 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1316 arg2 = (size_t)jarg2;
1317 {
1318 if (!jarg3) {
1319 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1320 return 0;
1321 }
1322 if ((*jenv)->GetArrayLength(jenv, jarg3) == 0) {
1323 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1324 return 0;
1325 }
1326 arg3 = &temp3;
1327 }
1328 {
1329 if (!jarg4) {
1330 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1331 return 0;
1332 }
1333 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1334 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1335 return 0;
1336 }
1337 arg4 = &temp4;
1338 }
1339 result = (uint8_t *)WebPDecodeBGRA((uint8_t const *)arg1,arg2,arg3,arg4);
1340 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1341 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1342 {
1343 jint jvalue = (jint)temp3;
1344 (*jenv)->SetIntArrayRegion(jenv, jarg3, 0, 1, &jvalue);
1345 }
1346 {
1347 jint jvalue = (jint)temp4;
1348 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1349 }
1350 free(arg1);
1351
1352
1353 free(result);
1354 return jresult;
1355 }
1356
1357
1358 SWIGEXPORT jint JNICALL Java_com_google_webp_libwebpJNI_WebPGetEncoderVersion(JNIEnv *jenv, jclass jcls) {
1359 jint jresult = 0 ;
1360 int result;
1361
1362 (void)jenv;
1363 (void)jcls;
1364 result = (int)WebPGetEncoderVersion();
1365 jresult = (jint)result;
1366 return jresult;
1367 }
1368
1369
1370 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1371 jbyteArray jresult = 0 ;
1372 uint8_t *arg1 = (uint8_t *) 0 ;
1373 int *arg2 = (int *) 0 ;
1374 int *arg3 = (int *) 0 ;
1375 int *arg4 = (int *) 0 ;
1376 int arg5 ;
1377 int arg6 ;
1378 int arg7 ;
1379 float arg8 ;
1380 jbyte *jarr1 ;
1381 int temp4 ;
1382 uint8_t *result = 0 ;
1383
1384 (void)jenv;
1385 (void)jcls;
1386 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1387 arg2 = (int *)&jarg2;
1388 arg3 = (int *)&jarg3;
1389 {
1390 if (!jarg4) {
1391 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1392 return 0;
1393 }
1394 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1395 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1396 return 0;
1397 }
1398 arg4 = &temp4;
1399 }
1400 arg5 = (int)jarg5;
1401 arg6 = (int)jarg6;
1402 arg7 = (int)jarg7;
1403 arg8 = (float)jarg8;
1404 result = (uint8_t *)wrap_WebPEncodeRGB((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1405 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1406 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1407 {
1408 jint jvalue = (jint)temp4;
1409 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1410 }
1411 free(arg1);
1412
1413
1414
1415 free(result);
1416 return jresult;
1417 }
1418
1419
1420 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGR(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1421 jbyteArray jresult = 0 ;
1422 uint8_t *arg1 = (uint8_t *) 0 ;
1423 int *arg2 = (int *) 0 ;
1424 int *arg3 = (int *) 0 ;
1425 int *arg4 = (int *) 0 ;
1426 int arg5 ;
1427 int arg6 ;
1428 int arg7 ;
1429 float arg8 ;
1430 jbyte *jarr1 ;
1431 int temp4 ;
1432 uint8_t *result = 0 ;
1433
1434 (void)jenv;
1435 (void)jcls;
1436 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1437 arg2 = (int *)&jarg2;
1438 arg3 = (int *)&jarg3;
1439 {
1440 if (!jarg4) {
1441 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1442 return 0;
1443 }
1444 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1445 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1446 return 0;
1447 }
1448 arg4 = &temp4;
1449 }
1450 arg5 = (int)jarg5;
1451 arg6 = (int)jarg6;
1452 arg7 = (int)jarg7;
1453 arg8 = (float)jarg8;
1454 result = (uint8_t *)wrap_WebPEncodeBGR((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1455 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1456 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1457 {
1458 jint jvalue = (jint)temp4;
1459 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1460 }
1461 free(arg1);
1462
1463
1464
1465 free(result);
1466 return jresult;
1467 }
1468
1469
1470 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeRGBA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1471 jbyteArray jresult = 0 ;
1472 uint8_t *arg1 = (uint8_t *) 0 ;
1473 int *arg2 = (int *) 0 ;
1474 int *arg3 = (int *) 0 ;
1475 int *arg4 = (int *) 0 ;
1476 int arg5 ;
1477 int arg6 ;
1478 int arg7 ;
1479 float arg8 ;
1480 jbyte *jarr1 ;
1481 int temp4 ;
1482 uint8_t *result = 0 ;
1483
1484 (void)jenv;
1485 (void)jcls;
1486 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1487 arg2 = (int *)&jarg2;
1488 arg3 = (int *)&jarg3;
1489 {
1490 if (!jarg4) {
1491 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1492 return 0;
1493 }
1494 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1495 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1496 return 0;
1497 }
1498 arg4 = &temp4;
1499 }
1500 arg5 = (int)jarg5;
1501 arg6 = (int)jarg6;
1502 arg7 = (int)jarg7;
1503 arg8 = (float)jarg8;
1504 result = (uint8_t *)wrap_WebPEncodeRGBA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1505 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1506 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1507 {
1508 jint jvalue = (jint)temp4;
1509 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1510 }
1511 free(arg1);
1512
1513
1514
1515 free(result);
1516 return jresult;
1517 }
1518
1519
1520 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeBGRA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7, jfloat jarg8) {
1521 jbyteArray jresult = 0 ;
1522 uint8_t *arg1 = (uint8_t *) 0 ;
1523 int *arg2 = (int *) 0 ;
1524 int *arg3 = (int *) 0 ;
1525 int *arg4 = (int *) 0 ;
1526 int arg5 ;
1527 int arg6 ;
1528 int arg7 ;
1529 float arg8 ;
1530 jbyte *jarr1 ;
1531 int temp4 ;
1532 uint8_t *result = 0 ;
1533
1534 (void)jenv;
1535 (void)jcls;
1536 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1537 arg2 = (int *)&jarg2;
1538 arg3 = (int *)&jarg3;
1539 {
1540 if (!jarg4) {
1541 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1542 return 0;
1543 }
1544 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1545 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1546 return 0;
1547 }
1548 arg4 = &temp4;
1549 }
1550 arg5 = (int)jarg5;
1551 arg6 = (int)jarg6;
1552 arg7 = (int)jarg7;
1553 arg8 = (float)jarg8;
1554 result = (uint8_t *)wrap_WebPEncodeBGRA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
1555 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1556 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1557 {
1558 jint jvalue = (jint)temp4;
1559 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1560 }
1561 free(arg1);
1562
1563
1564
1565 free(result);
1566 return jresult;
1567 }
1568
1569
1570 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGB(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1571 jbyteArray jresult = 0 ;
1572 uint8_t *arg1 = (uint8_t *) 0 ;
1573 int *arg2 = (int *) 0 ;
1574 int *arg3 = (int *) 0 ;
1575 int *arg4 = (int *) 0 ;
1576 int arg5 ;
1577 int arg6 ;
1578 int arg7 ;
1579 jbyte *jarr1 ;
1580 int temp4 ;
1581 uint8_t *result = 0 ;
1582
1583 (void)jenv;
1584 (void)jcls;
1585 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1586 arg2 = (int *)&jarg2;
1587 arg3 = (int *)&jarg3;
1588 {
1589 if (!jarg4) {
1590 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1591 return 0;
1592 }
1593 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1594 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1595 return 0;
1596 }
1597 arg4 = &temp4;
1598 }
1599 arg5 = (int)jarg5;
1600 arg6 = (int)jarg6;
1601 arg7 = (int)jarg7;
1602 result = (uint8_t *)wrap_WebPEncodeLosslessRGB((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1603 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1604 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1605 {
1606 jint jvalue = (jint)temp4;
1607 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1608 }
1609 free(arg1);
1610
1611
1612
1613 free(result);
1614 return jresult;
1615 }
1616
1617
1618 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGR(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1619 jbyteArray jresult = 0 ;
1620 uint8_t *arg1 = (uint8_t *) 0 ;
1621 int *arg2 = (int *) 0 ;
1622 int *arg3 = (int *) 0 ;
1623 int *arg4 = (int *) 0 ;
1624 int arg5 ;
1625 int arg6 ;
1626 int arg7 ;
1627 jbyte *jarr1 ;
1628 int temp4 ;
1629 uint8_t *result = 0 ;
1630
1631 (void)jenv;
1632 (void)jcls;
1633 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1634 arg2 = (int *)&jarg2;
1635 arg3 = (int *)&jarg3;
1636 {
1637 if (!jarg4) {
1638 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1639 return 0;
1640 }
1641 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1642 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1643 return 0;
1644 }
1645 arg4 = &temp4;
1646 }
1647 arg5 = (int)jarg5;
1648 arg6 = (int)jarg6;
1649 arg7 = (int)jarg7;
1650 result = (uint8_t *)wrap_WebPEncodeLosslessBGR((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1651 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1652 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1653 {
1654 jint jvalue = (jint)temp4;
1655 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1656 }
1657 free(arg1);
1658
1659
1660
1661 free(result);
1662 return jresult;
1663 }
1664
1665
1666 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessRGBA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1667 jbyteArray jresult = 0 ;
1668 uint8_t *arg1 = (uint8_t *) 0 ;
1669 int *arg2 = (int *) 0 ;
1670 int *arg3 = (int *) 0 ;
1671 int *arg4 = (int *) 0 ;
1672 int arg5 ;
1673 int arg6 ;
1674 int arg7 ;
1675 jbyte *jarr1 ;
1676 int temp4 ;
1677 uint8_t *result = 0 ;
1678
1679 (void)jenv;
1680 (void)jcls;
1681 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1682 arg2 = (int *)&jarg2;
1683 arg3 = (int *)&jarg3;
1684 {
1685 if (!jarg4) {
1686 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1687 return 0;
1688 }
1689 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1690 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1691 return 0;
1692 }
1693 arg4 = &temp4;
1694 }
1695 arg5 = (int)jarg5;
1696 arg6 = (int)jarg6;
1697 arg7 = (int)jarg7;
1698 result = (uint8_t *)wrap_WebPEncodeLosslessRGBA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1699 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1700 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1701 {
1702 jint jvalue = (jint)temp4;
1703 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1704 }
1705 free(arg1);
1706
1707
1708
1709 free(result);
1710 return jresult;
1711 }
1712
1713
1714 SWIGEXPORT jbyteArray JNICALL Java_com_google_webp_libwebpJNI_wrap_1WebPEncodeLosslessBGRA(JNIEnv *jenv, jclass jcls, jbyteArray jarg1, jint jarg2, jint jarg3, jintArray jarg4, jint jarg5, jint jarg6, jint jarg7) {
1715 jbyteArray jresult = 0 ;
1716 uint8_t *arg1 = (uint8_t *) 0 ;
1717 int *arg2 = (int *) 0 ;
1718 int *arg3 = (int *) 0 ;
1719 int *arg4 = (int *) 0 ;
1720 int arg5 ;
1721 int arg6 ;
1722 int arg7 ;
1723 jbyte *jarr1 ;
1724 int temp4 ;
1725 uint8_t *result = 0 ;
1726
1727 (void)jenv;
1728 (void)jcls;
1729 if (!SWIG_JavaArrayInUint8(jenv, &jarr1, &arg1, jarg1)) return 0;
1730 arg2 = (int *)&jarg2;
1731 arg3 = (int *)&jarg3;
1732 {
1733 if (!jarg4) {
1734 SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
1735 return 0;
1736 }
1737 if ((*jenv)->GetArrayLength(jenv, jarg4) == 0) {
1738 SWIG_JavaThrowException(jenv, SWIG_JavaIndexOutOfBoundsException, "Array must contain at least 1 element");
1739 return 0;
1740 }
1741 arg4 = &temp4;
1742 }
1743 arg5 = (int)jarg5;
1744 arg6 = (int)jarg6;
1745 arg7 = (int)jarg7;
1746 result = (uint8_t *)wrap_WebPEncodeLosslessBGRA((uint8_t const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7);
1747 jresult = SWIG_JavaArrayOutUint8(jenv, result, FillMeInAsSizeCannotBeDeterminedAutomatically);
1748 SWIG_JavaArrayArgoutUint8(jenv, jarr1, arg1, jarg1);
1749 {
1750 jint jvalue = (jint)temp4;
1751 (*jenv)->SetIntArrayRegion(jenv, jarg4, 0, 1, &jvalue);
1752 }
1753 free(arg1);
1754
1755
1756
1757 free(result);
1758 return jresult;
1759 }
1760
1761
1762 #ifdef __cplusplus
1763 }
1764 #endif
1765
1766