Originariamente inviato da
UnixMan
Vediamo di schiarirci un po' le idee... :-)
codice:
$ apt-cache show sox
Package: sox
Version: 14.4.1-5
Installed-Size: 172
Maintainer: Pascal Giard <pascal@debian.org>
Architecture: i386
Depends: libsox-fmt-alsa (= 14.4.1-5) | libsox-fmt-ao (= 14.4.1-5) | libsox-fmt-oss (= 14.4.1-5) | libsox-fmt-pulse (= 14.4.1-5), libsox-fmt-base (= 14.4.1-5), libsox2 (= 14.4.1-5), libc6 (>= 2.15), libgomp1 (>= 4.2.1)
Suggests: libsox-fmt-all
Description-en: Swiss army knife of sound processing
[...]
come è evidente, sox NON dipende da libsoxr0 ma da libsox2.
Ora, vediamo le dipendenze di libsox per vedere se per caso questa a sua volta usa libsoxr0:
codice:
# apt-cache show libsox2
Package: libsox2
Source: sox
Version: 14.4.1-5
Installed-Size: 643
Maintainer: Pascal Giard <pascal@debian.org>
Architecture: i386
Replaces: libsox1b
Depends: libc6 (>= 2.7), libgomp1 (>= 4.9), libgsm1 (>= 1.0.13), libltdl7 (>= 2.4.2), libmagic1 (>= 5.12), libpng12-0 (>= 1.2.13-4), zlib1g (>= 1:1.1.4)
Pre-Depends: multiarch-support
Recommends: libsox-fmt-alsa | libsox-fmt-ao | libsox-fmt-oss | libsox-fmt-pulse, libsox-fmt-base
Suggests: libsox-fmt-all
Conflicts: libsox0, libsox0a, libsox1, libsox1a
Description-en: SoX library of audio effects and processing
SoX is the swiss army knife of sound processing.
.
This package contains the SoX library which enables to convert various formats
of computer audio files in to other formats. It also allows you to apply
various effects to sound files.
.
Any format support requires at least libsox-fmt-base.
Sound card I/O requires libsox-fmt-alsa, libsox-fmt-ao, libsox-fmt-oss or
libsox-fmt-pulse.
[...]
Homepage: http://sox.sourceforge.net
quindi libsox2 (la libreria utilizzata da sox) NON dipende da libsoxr0.
Tanto per conferma, andiamo a verificare:
codice:
$ ldd /usr/lib/libsox.so.2.0.0
linux-gate.so.1 (0xb7793000)
libltdl.so.7 => /usr/lib/i386-linux-gnu/libltdl.so.7 (0xb76d1000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xb76cc000)
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb76a1000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7688000)
libmagic.so.1 => /usr/lib/i386-linux-gnu/libmagic.so.1 (0xb766a000)
libgomp.so.1 => /usr/lib/i386-linux-gnu/libgomp.so.1 (0xb765a000)
libgsm.so.1 => /usr/lib/i386-linux-gnu/libgsm.so.1 (0xb764a000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb7603000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb7458000)
/lib/ld-linux.so.2 (0xb7795000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xb744f000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb7433000)
non c'è traccia di libsoxr0, né di altre librerie che a loro volta potrebbero utilizzarla. Ergo, libsox NON usa libsoxr.
Ora, tanto per scrupolo andiamo a guardare libsoxr:
codice:
# apt-cache show libsoxr0
Package: libsoxr0
Source: libsoxr
Version: 0.1.1-1
Installed-Size: 232
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Architecture: i386
Depends: libc6 (>= 2.3.6-6~), libgomp1 (>= 4.4)
Pre-Depends: multiarch-support
Description-en: High quality 1D sample-rate conversion library
The SoX Resampler library `libsoxr' performs one-dimensional sample-rate
conversion - it may be used, for example, to resample PCM-encoded audio.
.
It aims to give fast and high quality results for any constant (rational or
irrational) resampling ratio. Phase-response, preserved bandwidth, aliasing,
and rejection level parameters are all configurable; alternatively, simple
`preset' configurations may be selected.
.
A simple API is provided that allows interfacing using commonly-used sample
formats and buffering schemes.
Multi-Arch: same
Homepage: http://sourceforge.net/projects/soxr/
per maggiore sicurezza:
codice:
# ldd /usr/lib/i386-linux-gnu/libsoxr.so.0.1.0
linux-gate.so.1 (0xb7729000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb7679000)
libgomp.so.1 => /usr/lib/i386-linux-gnu/libgomp.so.1 (0xb7669000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb764c000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb74a1000)
/lib/ld-linux.so.2 (0xb772b000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xb7498000)
evidentemente non è vero neanche il contrario: libsoxr non usa libsox.
Per quanto riguarda libsoxr-lsr0, questa non è che una sorta di "wrapper" intorno a libsoxr0 che "imita" (e può sostituire) libsamplerate (utilizzando libsoxr0 come "motore"). Ovviamente:
codice:
apt-cache show libsoxr-lsr0
Package: libsoxr-lsr0
Source: libsoxr
Version: 0.1.1-1
Installed-Size: 48
Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org>
Architecture: i386
Depends: libc6 (>= 2.3.6-6~), libgomp1 (>= 4.2.1), libsoxr0 (>= 0.1.0)
Pre-Depends: multiarch-support
Description-en: High quality 1D sample-rate conversion library (libsamplerate bindings)
The SoX Resampler library `libsoxr' performs one-dimensional sample-rate
conversion - it may be used, for example, to resample PCM-encoded audio.
[...]
This package contains bindings compatible with the resampling library
`libsamplerate' (constant rate).
Multi-Arch: same
Homepage: http://sourceforge.net/projects/soxr/
solita verifica:
codice:
$ ldd /usr/lib/i386-linux-gnu/libsoxr-lsr.so.0
linux-gate.so.1 (0xb77a7000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xb7733000)
libsoxr.so.0 => /usr/lib/i386-linux-gnu/libsoxr.so.0 (0xb76f3000)
libgomp.so.1 => /usr/lib/i386-linux-gnu/libgomp.so.1 (0xb76e2000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xb76c6000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xb751b000)
/lib/ld-linux.so.2 (0xb77a9000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xb7512000)
com'era ovvio libsoxr-lsr0 viene "linkata" dinamicamente con libsoxr0 (e non ha nulla a che fare con libsox).
Risulta perciò evidente che (almeno a livello di binari) si tratta senza dubbio di due librerie diverse e completamente indipendenti l'una dall'altra.
Da notare che anche le home pages dei rispettivi progetti (entrambi su SourceForge) indicate nei relativi pacchetti Debian sono DIVERSE. Di conseguenza diversi sono anche i rispettivi repository git (e quindi i relativi alberi dei sorgenti).
Per sox e libsox la home page è questa: "
SoX - Sound eXchange | HomePage", mentre per libsoxr e libsoxr-lsr la home page è: "
The SoX Resampler library | SourceForge.net".
Da lì però si arriva (o forse dovrei dire "si torna") qui:
The SoX Resampler library / Wiki / Home, dove si legge (nel "
README"):
In conclusione si tratta di due progetti strettamente "collegati" tra loro, ma al tempo stesso distinti. Il codice sorgente del "motore" di resampling viene in qualche modo condiviso tra i due, come per altro è ovvio che sia (però non è affatto detto che i due progetti siano sempre "allineati" l'uno con l'altro in occasione di tutte le rispettive "release").