generic audio decoder framework implemented

This commit is contained in:
2026-04-21 18:01:33 +02:00
parent fd124f594a
commit 630a0423a0
3 changed files with 182 additions and 14 deletions
+9 -2
View File
@@ -48,6 +48,8 @@
(channels (hash-ref h 'channels))
(block-size (hash-ref h 'blocksize)))
(hash-set! h 'duration (flac-duration handle))
(let ((sample (hash-ref h 'number)))
(hash-set! h 'sample sample))
(set! last-buffer buffer)
(set! last-buf-len block-size)
(hash-set! kinds type #t)
@@ -70,12 +72,17 @@
(hash-ref mh 'channels)
(hash-ref mh 'bits-per-sample)
(hash-ref mh 'total-samples))))
(let ((duration (exact->inexact
(/ (hash-ref mh 'total-samples)
(hash-ref mh 'sample-rate)))))
(hash-set! mh 'duration duration))
(set-flac-handle-stream-info! handle si)
(let ((cb (flac-handle-cb-stream-info handle)))
(when (procedure? cb)
(cb si))))))
(cb mh))))))
)
))
)
)
(define (flac-read handle)
(let* ((ffi-handler (flac-handle-ffi-decoder-handler handle))