vlc | branch: master | Thomas Guillem <[email protected]> | Mon Nov 23 16:44:17 2020 +0100| [61aca1f24076d3480f5023a5746b61be6e244755] | committer: Thomas Guillem
audiotrack: use an up to date buffer size The size returned by this new method should not be different than the one when used to configure audiotrack. Theoretically, it can be bigger. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=61aca1f24076d3480f5023a5746b61be6e244755 --- modules/audio_output/audiotrack.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/audio_output/audiotrack.c b/modules/audio_output/audiotrack.c index b146ecdb36..0c09f35d4e 100644 --- a/modules/audio_output/audiotrack.c +++ b/modules/audio_output/audiotrack.c @@ -210,6 +210,7 @@ static struct jmethodID writeShortV23; jmethodID writeBufferV21; jmethodID writeFloat; + jmethodID getBufferSizeInFrames; jmethodID getLatency; jmethodID getPlaybackHeadPosition; jmethodID getTimestamp; @@ -360,6 +361,9 @@ InitJNIFields( audio_output_t *p_aout, JNIEnv* env ) } else GET_ID( GetMethodID, AudioTrack.write, "write", "([BII)I", true ); + GET_ID( GetMethodID, AudioTrack.getBufferSizeInFrames, + "getBufferSizeInFrames", "()I", false ); + #ifdef AUDIOTRACK_HW_LATENCY GET_ID( GetMethodID, AudioTrack.getLatency, "getLatency", "()I", false ); #endif @@ -1335,7 +1339,10 @@ Start( audio_output_t *p_aout, audio_sample_format_t *restrict p_fmt ) if( i_ret != 0 ) return VLC_EGENERIC; - p_sys->i_max_audiotrack_samples = BYTES_TO_FRAMES( p_sys->audiotrack_args.i_size ); + if( jfields.AudioTrack.getBufferSizeInFrames ) + p_sys->i_max_audiotrack_samples = JNI_AT_CALL_INT( getBufferSizeInFrames ); + else + p_sys->i_max_audiotrack_samples = BYTES_TO_FRAMES( p_sys->audiotrack_args.i_size ); #ifdef AUDIOTRACK_HW_LATENCY if( jfields.AudioTimestamp.clazz ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
