Load versions of libraries.

This commit is contained in:
2026-06-10 00:40:14 +02:00
parent f8214b8f1b
commit 4f95e57a96
8 changed files with 45 additions and 22 deletions
+8 -4
View File
@@ -79,20 +79,24 @@
(define libavutil (get-lib (case (system-type 'os)
[(windows) '("avutil-60")]
[else '("avutil" "libavutil")]) '(#f)))
[else '("avutil" "libavutil")])
(ffmpeg-lib-versions 'avutil)))
(define libswresample (get-lib (case (system-type 'os)
[(windows) '("swresample-6")]
[else '("swresample" "libswresample")]) '(#f)))
[else '("swresample" "libswresample")])
(ffmpeg-lib-versions 'swresample)))
(define libavcodec (get-lib (case (system-type 'os)
[(windows) '("avcodec-62")]
[else '("avcodec" "libavcodec")]) '(#f)))
[else '("avcodec" "libavcodec")])
(ffmpeg-lib-versions 'avcodec)))
(define libavformat (get-lib (case (system-type 'os)
[(windows) '("avformat-62")]
[else '("avformat" "libavformat")]) '(#f)))
[else '("avformat" "libavformat")])
(ffmpeg-lib-versions 'avformat)))
(define-ffi-definer def-avutil libavutil #:default-make-fail make-not-available)
+3 -2
View File
@@ -64,8 +64,9 @@
(define libao
(get-lib (list (case (system-type 'os)
[(windows) "libao-1.2.2"]
[else "libao"])) '(#f)))
[(windows) "libao-1.2.2"]
[else "libao"]))
(linux-lib-versions '("4" #f))))
(define-ffi-definer define-ao libao)
+1 -1
View File
@@ -16,7 +16,7 @@
)
(define lib (get-lib '("libFLAC") '(#f)))
(define lib (get-lib '("FLAC" "libFLAC") (linux-lib-versions '("14" "12" "8" #f))))
(define-ffi-definer define-libflac lib
#:default-make-fail make-not-available)
+1 -1
View File
@@ -10,7 +10,7 @@
;(define lib (ffi-lib "/home/hans/tmp/lib/libmpg123.so")) ;(get-lib '("libmpg123") '("0" #f)))
(define lib (get-lib '("libmpg123") '("0" #f)))
(define lib (get-lib '("mpg123" "libmpg123") (linux-lib-versions '("0" #f) '("0" #f))))
(define-ffi-definer define-libmpg123 lib
#:default-make-fail make-not-available)
+3 -3
View File
@@ -24,19 +24,19 @@
(get-lib (case (system-type 'os)
[(windows) '("ogg")]
[else '("ogg" "libogg")])
'(#f)))
(linux-lib-versions '("0" #f))))
(define libopus
(get-lib (case (system-type 'os)
[(windows) '("opus")]
[else '("opus" "libopus")])
'(#f)))
(linux-lib-versions '("0" #f))))
(define libopusenc
(get-lib (case (system-type 'os)
[(windows) '("libopusenc")]
[else '("opusenc" "libopusenc")])
'(#f)))
(linux-lib-versions '("0" #f))))
(define _OggOpusComments (_cpointer/null 'ogg-opus-comments))
(define _OggOpusEnc (_cpointer/null 'ogg-opus-enc))
+3 -3
View File
@@ -28,17 +28,17 @@
(define libogg (get-lib (case (system-type 'os)
[(windows) '("ogg")]
[else '("ogg" "libogg")])
'(#f)))
(linux-lib-versions '("0" #f))))
(define libopus (get-lib (case (system-type 'os)
[(windows) '("opus")]
[else '("opus" "libopus")])
'(#f)))
(linux-lib-versions '("0" #f))))
(define libopusfile (get-lib (case (system-type 'os)
[(windows) '("opusfile")]
[else '("opusfile" "libopusfile")])
'(#f)))
(linux-lib-versions '("0" #f))))
(define _OggOpusFile _pointer)
+23 -5
View File
@@ -14,6 +14,8 @@
until
build-lib-path
get-lib
linux-lib-versions
ffmpeg-lib-versions
do-for
dbg-sound
info-sound
@@ -165,11 +167,27 @@
(define valid-ffmpeg-versions
(make-hash (list (list 'avutil 58 60 "libavutil")
(list 'avcodec 60 62 "libavcodec")
(list 'avformat 60 62 "libavformat")
(list 'swresample 4 6 "libswresample")
))
)
(list 'avcodec 60 62 "libavcodec")
(list 'avformat 60 62 "libavformat")
(list 'swresample 4 6 "libswresample"))))
(define (versions-high-to-low from until)
(let loop ((n from) (acc '(#f)))
(if (> n until)
acc
(loop (+ n 1) (cons (number->string n) acc)))))
(define (ffmpeg-lib-versions kind)
(case (system-type 'os)
[(linux)
(let ((v (hash-ref valid-ffmpeg-versions kind)))
(versions-high-to-low (car v) (cadr v)))]
[else '(#f)]))
(define (linux-lib-versions versions [default '(#f)])
(case (system-type 'os)
[(linux) versions]
[else default]))
(define (version-str kind)
(let ((v (hash-ref valid-ffmpeg-versions kind)))
+3 -3
View File
@@ -58,9 +58,9 @@
taglib-append-picture
taglib-clear-picture)
(define zlib (get-lib '("zlib" "libz") '(#f)))
(define libtag (get-lib '("tag" "libtag") '("2" #f)))
(define libtag_c (get-lib '("tag_c" "libtag_c") '("#2" #f)))
(define zlib (get-lib '("zlib" "libz") (linux-lib-versions '("1" #f))))
(define libtag (get-lib '("tag" "libtag") (linux-lib-versions '("2" #f) '("2" #f))))
(define libtag_c (get-lib '("tag_c" "libtag_c") (linux-lib-versions '("2" #f) '("#2" #f))))
(define-ffi-definer define-tag-c-lib libtag_c
#:default-make-fail make-not-available)