aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/common/av/AudioFormat.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-05-21 13:05:29 +0200
committerSven Gothel <[email protected]>2023-05-21 13:05:29 +0200
commit5c33470aea6b30c81681992567d7c92e100bdab3 (patch)
tree1025a24ff9a786b2128fcc976d5d9a0257ffb181 /src/java/com/jogamp/common/av/AudioFormat.java
parent325e5ed234a5e15f8f94eaa72dba6dbb619d490a (diff)
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).
Diffstat (limited to 'src/java/com/jogamp/common/av/AudioFormat.java')
-rw-r--r--src/java/com/jogamp/common/av/AudioFormat.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/java/com/jogamp/common/av/AudioFormat.java b/src/java/com/jogamp/common/av/AudioFormat.java
index 8102034..870ccd2 100644
--- a/src/java/com/jogamp/common/av/AudioFormat.java
+++ b/src/java/com/jogamp/common/av/AudioFormat.java
@@ -124,13 +124,15 @@ public class AudioFormat {
* </pre>
* <p>
* Note: <code>frameDuration</code> can be derived by <i>sample count per frame and channel</i>
- * via {@link #getSamplesDuration(int)}.
+ * via {@link #getSamplesDuration(int)} or by <i>byte count</i> via {@link #getBytesDuration(int)}.
* </p>
* <p>
* Frame Time -> Frame Count
* </p>
* @param millisecs time in milliseconds
* @param frameDuration duration per frame in milliseconds.
+ * @see #getSamplesDuration(int)
+ * @see #getBytesDuration(int)
*/
public final int getFrameCount(final int millisecs, final int frameDuration) {
return Math.max(1, (int) ( (float)millisecs / (float)frameDuration + 0.5f ));