Òpus toevoeging via xiph library
This commit is contained in:
+32
-16
@@ -2,6 +2,7 @@
|
||||
|
||||
(require "flac-decoder.rkt"
|
||||
"mp3-decoder.rkt"
|
||||
"opusfile-decoder.rkt"
|
||||
"ffmpeg-decoder.rkt"
|
||||
"audio-sniffer.rkt"
|
||||
"private/utils.rkt"
|
||||
@@ -22,6 +23,8 @@
|
||||
make-audio-reader
|
||||
audio-handle?
|
||||
audio-supported-extensions
|
||||
current-opusfile-output-format
|
||||
opusfile-output-format?
|
||||
)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -56,7 +59,18 @@
|
||||
mp3-stop
|
||||
'ao))
|
||||
|
||||
;; FFmpeg decodere
|
||||
;; Opus, via Xiph libopusfile
|
||||
(hash-set! audio-readers
|
||||
'opusfile
|
||||
(make-audio-reader '("opus")
|
||||
opusfile-valid?
|
||||
opusfile-open
|
||||
opusfile-read
|
||||
opusfile-seek
|
||||
opusfile-stop
|
||||
'ao))
|
||||
|
||||
;; FFmpeg decoder
|
||||
(hash-set! audio-readers
|
||||
'ffmpeg
|
||||
(make-audio-reader '("ogg" "oga" "opus"
|
||||
@@ -229,21 +243,23 @@
|
||||
(not (null? (filter (λ (e) (string-ci=? ext e)) (audio-reader-exts reader)))))
|
||||
|
||||
(define reader-for-kind
|
||||
(make-hash '((mp3 . ffmpeg) ; ffmpeg does a better job on gapless playback...
|
||||
(flac . flac)
|
||||
(ogg . ffmpeg)
|
||||
(vorbis . ffmpeg)
|
||||
(opus . ffmpeg)
|
||||
(wav . ffmpeg)
|
||||
(aiff . ffmpeg)
|
||||
(mp4 . ffmpeg)
|
||||
(aac . ffmpeg)
|
||||
(alac . ffmpeg)
|
||||
(ac3 . ffmpeg)
|
||||
(ape . ffmpeg)
|
||||
(wavpack . ffmpeg)
|
||||
(wma . ffmpeg)
|
||||
(matroska . ffmpeg))))
|
||||
(make-hash
|
||||
(list (cons 'mp3 'ffmpeg) ; ffmpeg does a better job on gapless playback...
|
||||
(cons 'flac 'flac)
|
||||
(cons 'ogg 'ffmpeg)
|
||||
(cons 'vorbis 'ffmpeg)
|
||||
(cons 'opus (if (opusfile-available?) 'opusfile 'ffmpeg))
|
||||
(cons 'wav 'ffmpeg)
|
||||
(cons 'aiff 'ffmpeg)
|
||||
(cons 'mp4 'ffmpeg)
|
||||
(cons 'aac 'ffmpeg)
|
||||
(cons 'alac 'ffmpeg)
|
||||
(cons 'ac3 'ffmpeg)
|
||||
(cons 'ape 'ffmpeg)
|
||||
(cons 'wavpack 'ffmpeg)
|
||||
(cons 'wma 'ffmpeg)
|
||||
(cons 'matroska 'ffmpeg))))
|
||||
|
||||
|
||||
|
||||
(define (find-reader audio-file)
|
||||
|
||||
Reference in New Issue
Block a user