Add configurable incoming audio jitter buffer
This commit is contained in:
1 parent
d338925da6
commit
c0ef036934
8 files changed
+94
-16
No files matched your search
@@ -4,8 +4,10 @@ import (
|
||||
"errors"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.stormux.org/storm/barnard/gumble/go-openal/openal"
|
||||
"git.stormux.org/storm/barnard/gumble/gumble"
|
||||
)
|
||||
|
||||
// Regression: audio cleanup could send a final render command after Destroy
|
||||
@@ -49,17 +51,24 @@ func TestStopSourceWaitsForWorker(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestJitterPlaybackDelayAppliesOnlyAtStartup(t *testing.T) {
|
||||
if jitterPlaybackReady(false, jitterMinPackets-1) {
|
||||
if jitterPlaybackReady(false, 20*time.Millisecond, 40*time.Millisecond) {
|
||||
t.Fatal("jitter playback started before initial buffer filled")
|
||||
}
|
||||
if !jitterPlaybackReady(false, jitterMinPackets) {
|
||||
if !jitterPlaybackReady(false, 40*time.Millisecond, 40*time.Millisecond) {
|
||||
t.Fatal("jitter playback did not start after initial buffer filled")
|
||||
}
|
||||
if !jitterPlaybackReady(true, 1) {
|
||||
if !jitterPlaybackReady(true, 0, 40*time.Millisecond) {
|
||||
t.Fatal("jitter playback paused while refilling after startup")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAudioPacketDurationUsesStereoFrameCount(t *testing.T) {
|
||||
packet := &gumble.AudioPacket{AudioBuffer: make(gumble.AudioBuffer, 2*gumble.AudioDefaultFrameSize)}
|
||||
if got := audioPacketDuration(packet); got != 10*time.Millisecond {
|
||||
t.Fatalf("audioPacketDuration = %v, want 10ms", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderRejectsWorkAfterShutdown(t *testing.T) {
|
||||
s := &Stream{renderClosed: true}
|
||||
called := false
|
||||
|
||||
Reference in new issue
Block a user