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