diff --git a/ffmpeg-definitions.rkt b/ffmpeg-definitions.rkt new file mode 100644 index 0000000..e76e0ba --- /dev/null +++ b/ffmpeg-definitions.rkt @@ -0,0 +1,7 @@ +#lang racket/base +(require ffi/unsafe + "private/utils.rkt" + ) + + + diff --git a/libao-async-ffi-racket.rkt b/libao-async-ffi-racket.rkt index 942b8fa..833ae98 100644 --- a/libao-async-ffi-racket.rkt +++ b/libao-async-ffi-racket.rkt @@ -166,9 +166,11 @@ (let ((el (if (<= ms-wait 0) (sync/timeout 0 (ao-handle-queue h)) (sync/timeout (/ ms-wait 1000.0) (ao-handle-queue h) )))) - (unless (eq? el #f) - (set-ao-handle-buf-size! h (- (ao-handle-buf-size h) (queue-elem-buflen el)))) - el)) + (if (eq? el #f) + (set-ao-handle-buf-size! h 0) ; no elements in queue => empty => no buffer with music samples + (set-ao-handle-buf-size! h (- (ao-handle-buf-size h) (queue-elem-buflen el)))) + el) + ) (define (needed-bytes h)