[vlc-commits] audiotrack: use an up to date buffer size
Thomas Guillem
git at videolan.org
Tue Dec 1 12:16:13 CET 2020
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | 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 )
More information about the vlc-commits
mailing list