Commit 163e6d83 authored by Thomas Guillem's avatar Thomas Guillem Committed by Jean-Baptiste Kempf

audiotrack: check init state

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 20051e61
...@@ -138,6 +138,7 @@ static struct ...@@ -138,6 +138,7 @@ static struct
jclass clazz; jclass clazz;
jmethodID ctor; jmethodID ctor;
jmethodID release; jmethodID release;
jmethodID getState;
jmethodID play; jmethodID play;
jmethodID stop; jmethodID stop;
jmethodID flush; jmethodID flush;
...@@ -146,6 +147,7 @@ static struct ...@@ -146,6 +147,7 @@ static struct
jmethodID getPlaybackHeadPosition; jmethodID getPlaybackHeadPosition;
jmethodID getTimestamp; jmethodID getTimestamp;
jmethodID getMinBufferSize; jmethodID getMinBufferSize;
jint STATE_INITIALIZED;
jint MODE_STREAM; jint MODE_STREAM;
jint ERROR; jint ERROR;
jint ERROR_BAD_VALUE; jint ERROR_BAD_VALUE;
...@@ -238,6 +240,7 @@ InitJNIFields( audio_output_t *p_aout ) ...@@ -238,6 +240,7 @@ InitJNIFields( audio_output_t *p_aout )
GET_ID( GetMethodID, AudioTrack.ctor, "<init>", "(IIIIII)V", true ); GET_ID( GetMethodID, AudioTrack.ctor, "<init>", "(IIIIII)V", true );
GET_ID( GetMethodID, AudioTrack.release, "release", "()V", true ); GET_ID( GetMethodID, AudioTrack.release, "release", "()V", true );
GET_ID( GetMethodID, AudioTrack.getState, "getState", "()I", true );
GET_ID( GetMethodID, AudioTrack.play, "play", "()V", true ); GET_ID( GetMethodID, AudioTrack.play, "play", "()V", true );
GET_ID( GetMethodID, AudioTrack.stop, "stop", "()V", true ); GET_ID( GetMethodID, AudioTrack.stop, "stop", "()V", true );
GET_ID( GetMethodID, AudioTrack.flush, "flush", "()V", true ); GET_ID( GetMethodID, AudioTrack.flush, "flush", "()V", true );
...@@ -251,6 +254,7 @@ InitJNIFields( audio_output_t *p_aout ) ...@@ -251,6 +254,7 @@ InitJNIFields( audio_output_t *p_aout )
GET_ID( GetStaticMethodID, AudioTrack.getMinBufferSize, "getMinBufferSize", GET_ID( GetStaticMethodID, AudioTrack.getMinBufferSize, "getMinBufferSize",
"(III)I", true ); "(III)I", true );
GET_CONST_INT( AudioTrack.STATE_INITIALIZED, "STATE_INITIALIZED", true );
GET_CONST_INT( AudioTrack.MODE_STREAM, "MODE_STREAM", true ); GET_CONST_INT( AudioTrack.MODE_STREAM, "MODE_STREAM", true );
GET_CONST_INT( AudioTrack.ERROR, "ERROR", true ); GET_CONST_INT( AudioTrack.ERROR, "ERROR", true );
GET_CONST_INT( AudioTrack.ERROR_BAD_VALUE , "ERROR_BAD_VALUE", true ); GET_CONST_INT( AudioTrack.ERROR_BAD_VALUE , "ERROR_BAD_VALUE", true );
...@@ -570,6 +574,11 @@ JNIThread_Start( JNIEnv *env, audio_output_t *p_aout ) ...@@ -570,6 +574,11 @@ JNIThread_Start( JNIEnv *env, audio_output_t *p_aout )
(*env)->DeleteLocalRef( env, p_audiotrack ); (*env)->DeleteLocalRef( env, p_audiotrack );
if( !p_sys->p_audiotrack ) if( !p_sys->p_audiotrack )
return VLC_EGENERIC; return VLC_EGENERIC;
if( JNI_AT_CALL_INT( getState ) != jfields.AudioTrack.STATE_INITIALIZED )
{
msg_Err( p_aout, "AudioTrack init failed" );
goto error;
}
if( jfields.AudioTimestamp.clazz ) if( jfields.AudioTimestamp.clazz )
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment