コード例 #1
0
/*
 * 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;
}
コード例 #2
0
/*
 * 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;
}