/* * Class: com_biophysics_radioplayer_ArrayDecoder * Method: nativeDecode * Signature: (I[SI)I */ JNIEXPORT jint JNICALL Java_com_biophysics_radioplayer_ArrayDecoder_nativeDecode (JNIEnv *env, jobject thiz, jint jinfo, jshortArray outBuf, jint outLen) { AACDArrayInfo *ainfo = (AACDArrayInfo*) jinfo; ainfo->env = env; // prepare internal output buffer : jshort *jsamples = aacda_prepare_samples( ainfo, outLen ); aacda_decode( ainfo, jsamples, outLen ); // copy samples back to Java heap: (*env)->SetShortArrayRegion( env, outBuf, 0, ainfo->cinfo.round_samples, jsamples ); aacd_decode_info2java( env, &ainfo->cinfo, ainfo->aacInfo ); ainfo->env = NULL; return (jint) ainfo->cinfo.round_samples; }
/* * Class: com_spoledge_aacdecoder_Decoder * Method: nativeDecode * Signature: (I[SI)I */ JNIEXPORT jlong JNICALL Java_com_spoledge_aacdecoder_Decoder_nativeDecode (JNIEnv *env, jobject thiz, jlong jinfo, jshortArray outBuf, jint outLen) { AACDInfo *info = (AACDInfo*) jinfo; info->env = env; // prepare internal output buffer : jshort *jsamples = aacd_prepare_samples( info, outLen ); aacd_decode( info, jsamples, outLen ); // copy samples back to Java heap: (*env)->SetShortArrayRegion( env, outBuf, 0, info->round_samples, jsamples ); aacd_decode_info2java( info ); info->env = NULL; return (jlong) info->round_samples; }