libwebp_java_wrap.c (53665B)
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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 */ 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 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 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 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 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 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) 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