aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/native/libav
diff options
context:
space:
mode:
authorXerxes Rånby <[email protected]>2013-05-10 12:42:09 +0200
committerXerxes Rånby <[email protected]>2013-05-10 12:42:09 +0200
commitcc30fa7de95cffa961e9fd3aead2dd8f3bb55aeb (patch)
treef227ee582c659835f3760c970f04903b46dfa0ac /src/jogl/native/libav
parentc6081b03d1f47219aa789debf25aee55993e6dcb (diff)
FFMPEGMediaPlayer: blocking Java Sound output
Diffstat (limited to 'src/jogl/native/libav')
-rw-r--r--src/jogl/native/libav/jogamp_opengl_util_av_impl_FFMPEGMediaPlayer.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/jogl/native/libav/jogamp_opengl_util_av_impl_FFMPEGMediaPlayer.c b/src/jogl/native/libav/jogamp_opengl_util_av_impl_FFMPEGMediaPlayer.c
index 8e5f4124c..b8ff9a6ca 100644
--- a/src/jogl/native/libav/jogamp_opengl_util_av_impl_FFMPEGMediaPlayer.c
+++ b/src/jogl/native/libav/jogamp_opengl_util_av_impl_FFMPEGMediaPlayer.c
@@ -192,10 +192,12 @@ JNIEXPORT jboolean JNICALL Java_jogamp_opengl_util_av_impl_FFMPEGDynamicLibraryB
return JNI_TRUE;
}
-static void _updateSound(JNIEnv *env, jobject instance, char *data, int32_t data_size, int32_t sample_rate) {
+static void _updateSound(JNIEnv *env, jobject instance, char *data, int32_t data_size) {
if(NULL!=env) {
fprintf(stderr, "nA");
- (*env)->CallVoidMethod(env, instance, jni_mid_updateSound);
+ jbyteArray jbArray = (*env)->NewByteArray(env, data_size);
+ (*env)->SetByteArrayRegion(env, jbArray, 0, data_size, (jbyte*)data);
+ (*env)->CallVoidMethod(env, instance, jni_mid_updateSound, jbArray, data_size);
}
}
@@ -342,7 +344,7 @@ JNIEXPORT jboolean JNICALL Java_jogamp_opengl_util_av_impl_FFMPEGMediaPlayer_ini
JoglCommon_FatalError(env, "JOGL FFMPEG: can't use %s", ClazzNameFFMPEGMediaPlayer);
}
- jni_mid_updateSound = (*env)->GetMethodID(env, ffmpegMediaPlayerClazz, "updateSound", "()V");
+ jni_mid_updateSound = (*env)->GetMethodID(env, ffmpegMediaPlayerClazz, "updateSound", "([BI)V");
jni_mid_updateAttributes1 = (*env)->GetMethodID(env, ffmpegMediaPlayerClazz, "updateAttributes", "(IIIIIFIILjava/lang/String;Ljava/lang/String;)V");
jni_mid_updateAttributes2 = (*env)->GetMethodID(env, ffmpegMediaPlayerClazz, "updateAttributes2", "(IIIIIIIIII)V");
@@ -654,7 +656,7 @@ JNIEXPORT jint JNICALL Java_jogamp_opengl_util_av_impl_FFMPEGMediaPlayer_readNex
// TODO: Wrap audio buffer data in a com.jogamp.openal.sound3d.Buffer or similar
// and hand it over to the user using a suitable API.
// TODO: OR send the audio buffer data down to sound card directly using JOAL.
- _updateSound(env, instance, pAV->pAFrame->data[0], data_size, pAV->aSampleRate);
+ _updateSound(env, instance, pAV->pAFrame->data[0], data_size);
res = 1;
}