From 5c33470aea6b30c81681992567d7c92e100bdab3 Mon Sep 17 00:00:00 2001 From: Sven Gothel <sgothel@jausoft.com> Date: Sun, 21 May 2023 13:05:29 +0200 Subject: AudioSink: Add getAvgFrameDuration(); API-Doc: Default*: 'frame' -> AudioFrame; init(): Use getAvgFrameDuration() for queue growth and limit. This change renders buffer dequeueing, growth and limit sticking w/ [ms] values while getAvgFrameDuration() assists frame count determination. getAvgFrameDuration() is calculated when buffer is fully filled (queuedBytes / queuedFrames), i.e. a proper representation to be used to dequeue in duration range as well as for growth. This further decouples the frameDuration{->Hint} parameter in init(), as it is now only used for the initial buffer count (and latency adjustment). --- src/java/jogamp/common/av/JavaSoundAudioSink.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/java/jogamp/common/av/JavaSoundAudioSink.java') diff --git a/src/java/jogamp/common/av/JavaSoundAudioSink.java b/src/java/jogamp/common/av/JavaSoundAudioSink.java index 1617b10..bdf4e22 100644 --- a/src/java/jogamp/common/av/JavaSoundAudioSink.java +++ b/src/java/jogamp/common/av/JavaSoundAudioSink.java @@ -284,6 +284,11 @@ public class JavaSoundAudioSink implements AudioSink { return byteCount / ( chosenFormat.channelCount * bytesPerSample * ( chosenFormat.sampleRate / 1000 ) ); } + @Override + public int getAvgFrameDuration() { + return 0; + } + @Override public final int getPTS() { return 0; } // FIXME -- cgit v1.2.3