ao buffer timing

This commit is contained in:
2026-05-18 16:36:19 +02:00
parent 5cff13f55a
commit 73e778e4a5
3 changed files with 25 additions and 1 deletions
+14
View File
@@ -351,6 +351,14 @@
(define (volume percentage) (define (volume percentage)
(set! req-volume percentage)) (set! req-volume percentage))
(define (ao-buf-ms)
(ao-playback-buf-ms))
(define (ao-buf-ms! ms)
(let ((the-ms (if (< ms 50) 50 (if (> ms 1000) 1000 ms))))
(ao-set-playback-buf-ms! the-ms)
(ao-buf-ms)))
(define (state msg cb . force) (define (state msg cb . force)
(let ((h (make-hash))) (let ((h (make-hash)))
(with-mutex ao-mutex (with-mutex ao-mutex
@@ -474,6 +482,12 @@
(let ((st #f)) (let ((st #f))
(state "'state command" (λ (s) (set! st s)) 'force) (state "'state command" (λ (s) (set! st s)) 'force)
st))) st)))
((eq? cmd 'ao-buf-ms)
(do-rpc
(if (null? (cdr data))
(list (ao-buf-ms))
(list (ao-buf-ms! (cadr data))))
))
(else (else
(do-rpc (do-rpc
(list 'error (format "Unknown command ~a" cmd)))) (list 'error (format "Unknown command ~a" cmd))))
+10
View File
@@ -30,6 +30,8 @@
audio-file audio-file
audio-play? audio-play?
audio-buf-seconds! audio-buf-seconds!
audio-ao-buf-ms!
audio-ao-buf-ms
audio-known-exts? audio-known-exts?
) )
@@ -270,6 +272,14 @@
(until (if (< max min) (+ min 1) (if (> max 30) 30 max)))) (until (if (< max min) (+ min 1) (if (> max 30) 30 max))))
((audio-play-rpc handle) 'buf-seconds from until))) ((audio-play-rpc handle) 'buf-seconds from until)))
(define/contract (audio-ao-buf-ms! handle ms)
(-> audio-play? integer? (or/c integer? boolean?))
((audio-play-rpc handle) 'ao-buf-ms ms))
(define/contract (audio-ao-buf-ms handle)
(-> audio-play? (or/c integer? boolean?))
((audio-play-rpc handle) 'ao-buf-ms))
+1 -1
View File
@@ -197,7 +197,7 @@
;; Playback buffer to send to libao in milliseconds ;; Playback buffer to send to libao in milliseconds
;; ------------------------------------------------------------------------- ;; -------------------------------------------------------------------------
(define ao-buf-ms 150) ;; Playback buffer of 0.15s (define ao-buf-ms 350) ;; Playback buffer of 0.35s
(define (ao-playback-buf-ms) (define (ao-playback-buf-ms)
ao-buf-ms) ao-buf-ms)