42. Multimedia Libraries and Drivers
Many multimedia programs require libraries and/or drivers in order to function properly. The packages in this section fall into this category. Generally you only need to install these if you are installing a program which has the library listed as either a requirement, or as an option to enable it to support certain functionality.
42.1 ALSA-1.2.7
The Linux kernel now provides ALSA support by default. However, applications need to interface to that capability. The following six sections of the book deal with the separate components of ALSA: the libraries, the plugins, the utilities, the tools, the firmware and the OSS compatibility libraries.
42.2 alsa-lib-1.2.8
Introduction to ALSA Library
The ALSA Library package contains the ALSA library used by programs (including ALSA Utilities) requiring access to the ALSA sound interface.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.8.tar.bz2
-
Download (FTP): ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.8.tar.bz2
-
Download MD5 sum: ab32de4b6054d7ab23723f8d85e50a27
-
Download size: 1.0 MB
-
Estimated disk space required: 45 MB (with tests and docs)
-
Estimated build time: 0.3 SBU (with tests and docs)
ALSA Library Dependencies
Optional
Doxygen-1.9.6, Python-2.7.18, and alsa-ucm-conf
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-lib
Kernel Configuration
If needed, enable the following options in the kernel configuration and recompile the kernel:
Device Drivers --->
<*/M> Sound card support ---> [CONFIG_SOUND]
<*/M> Advanced Linux Sound Architecture ---> [CONFIG_SND]
Select settings and drivers appropriate for your hardware.
In the Device Drivers ⇒ Sound card support ⇒ Advanced Linux Sound Architecture section of the kernel configuration, select the settings and drivers appropriate for your hardware. If necessary, recompile and install your new kernel.
Installation of ALSA Library
Install ALSA Library by running the following commands:
./configure &&
make
If you have Doxygen installed and you wish to build the library API documentation, run the following commands from the top-level directory of the source tree:
make doc
To test the results, issue: make check.
Now, as the root user:
make install
To install the API documentation, run the following command as the root user:
install -v -d -m755 /usr/share/doc/alsa-lib-1.2.8/html/search &&
install -v -m644 doc/doxygen/html/*.* \
/usr/share/doc/alsa-lib-1.2.8/html &&
install -v -m644 doc/doxygen/html/search/* \
/usr/share/doc/alsa-lib-1.2.8/html/search
Configuring ALSA Library
Config Files
~/.asoundrc and /etc/asound.conf
Configuration Information
The default alsa.conf is adequate for most installations. For extra functionality and/or advanced control of your sound device, you may need to create additional configuration files. For information on the available configuration parameters, visit https://www.alsa-project.org/main/index.php/Asoundrc.
Contents
Installed Program: aserver
Installed Library: libasound.so and libatopology.so
Installed Directories: /usr/include/alsa, /usr/share/alsa and /usr/share/doc/alsa-lib-1.2.8
Short Descriptions
aserver is the ALSA server
libasound.so contains the ALSA API functions
libatopology.so contains API functions for the ALSA topologies.
42.3 alsa-plugins-1.2.7.1
Introduction to ALSA Plugins
The ALSA Plugins package contains plugins for various audio libraries and sound servers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.alsa-project.org/files/pub/plugins/alsa-plugins-1.2.7.1.tar.bz2
-
Download (FTP): ftp://ftp.alsa-project.org/pub/plugins/alsa-plugins-1.2.7.1.tar.bz2
-
Download MD5 sum: 8fb7e05b84c87f30655a8997a9a983d1
-
Download size: 400 KB
-
Estimated disk space required: 5.5 MB
-
Estimated build time: less than 0.1 SBU
ALSA Plugins Dependencies
Required
Optional
FFmpeg-5.1.2, libsamplerate-0.2.2, PulseAudio-16.1, Speex-1.2.1, JACK, libavtp, and maemo
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-plugins
Installation of ALSA Plugins
Install ALSA Plugins by running the following commands:
./configure --sysconfdir=/etc &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: Numerous libasound_module_<module>.so modules including conf_pulse, ctl_arcam_av, ctl_oss, ctl_pulse, pcm_a52, pcm_jack, pcm_oss, pcm_pulse, pcm_speex, pcm_upmix, pcm_usb_stream, pcm_vdownmix, rate_lavrate, rate_samplerate, and rate_speexrate*
Installed Directories: /usr/lib/alsa-lib
Short Descriptions
libasound_module_pcm_oss.so Allows native ALSA applications to run on OSS.
libasound_module_pcm_upmix.so Allows upmixing sound to 4 or 6 channels.
libasound_module_pcm_vdownmix.so Allows downmixing sound from 4-6 channels to 2 channel stereo output.
libasound_module_pcm_jack.so Allows native ALSA applications to work with jackd.
libasound_module_pcm_pulse.so Allows native ALSA applications to access a PulseAudio sound daemon.
libasound_module_pcm_a52.so Converts S16 linear sound format to A52 compressed format and sends it to an SPDIF output.
libasound_module_rate_samplerate.so Provides an external rate converter through libsamplerate.
42.4 alsa-utils-1.2.8
Introduction to ALSA Utilities
The ALSA Utilities package contains various utilities which are useful for controlling your sound card.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.alsa-project.org/files/pub/utils/alsa-utils-1.2.8.tar.bz2
-
Download (FTP): ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.2.8.tar.bz2
-
Download MD5 sum: 51175f5cd413daf7009a80684c65113d
-
Download size: 1.5 MB
-
Estimated disk space required: 15 MB
-
Estimated build time: 0.2 SBU
ALSA Utilities Dependencies
Required
Optional
docutils-0.19, fftw-3.3.10, libsamplerate-0.2.2, xmlto-0.0.28, and Dialog
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-utils
Installation of ALSA Utilities
Install ALSA Utilities by running the following commands:
./configure --disable-alsaconf \
--disable-bat \
--disable-xmlto \
--with-curses=ncursesw &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-alsaconf: This switch disables building the alsaconf configuration tool which is incompatible with Udev.
--disable-xmlto: Omit this switch if you have installed xmlto-0.0.28 and wish to regenerate the man pages.
--disable-bat: Omit this switch if you have installed fftw-3.3.10 and wish to install the Basic Audio Tester (BAT).
--with-curses=ncursesw: This switch forces the use of wide-character ncurses libraries.
Configuring ALSA Utilities
Config Files
/var/lib/alsa/asound.state
Configuration Information
Note that all channels of your sound card are muted by default. You can use the alsamixer program to change this. Use speaker-test to check that your settings have been applied correctly. You should hear “pink noise” on your speakers.
The alsactl program is normally run from a standard udev rule. The first time it is run, it will complain that there is no state in /var/lib/alsa/asound.state. You can prevent this by running the following command as the root user:
alsactl -L store
The volume settings should be restored from the saved state by Udev when the device is detected (during boot or when plugged in for USB devices).
All sound devices are not accessible for any user except root and members of the audio group. Add any users that might use the sound devices to that group:
usermod -a -G audio <username>
Note
You may need to log out and back in again to refresh your group memberships. ‘su <username>’ should work as well.
On systems which have multiple sound cards, you may need to adjust the default audio device so that you can get output from your speakers. To set the default device, first check the /proc/asound/cards file to determine which number you need to set. After you know this information, set the default card with the following command as the root user:
cat > /etc/asound.conf << "EOF"
# Begin /etc/asound.conf
defaults.pcm.card 1
defaults.ctl.card 1
# End /etc/asound.conf
EOF
Contents
Installed Programs: aconnect, alsactl, alsaloop, alsamixer, alsatplg, alsaucm, alsa-info.sh, amidi, amixer, aplay, aplaymidi, arecord (symlink), arecordmidi, aseqdump, aseqnet, axfer, iecset, and speaker-test
Installed Libraries: None
Installed Directories: /usr/share/sounds/alsa and /var/lib/alsa
Short Descriptions
aconnect is a utility for connecting and disconnecting two existing ports in the ALSA sequencer system.
alsactl is used to control advanced settings for ALSA sound card drivers. Use this if alsamixer cannot utilize all of your sound card’s features.
alsaloop allows creation of a PCM loopback between a PCM capture device and a PCM playback device.
alsamixer is an Ncurses based mixer program for use with the ALSA sound card drivers.
alsatplg is a utility used to compile topology configuration files into binary files for kernel drivers.
alsaucm allows applications to access the hardware in an abstracted manner.
amidi is used to read from and write to ALSA RawMIDI ports.
amixer allows command-line control of the mixers for the ALSA sound card drivers.
aplay is a command-line soundfile player for the ALSA sound card drivers.
aplaymidi is a command-line utility that plays the specified MIDI file(s) to one or more ALSA sequencer ports.
arecord is a command-line soundfile recorder for the ALSA sound card drivers.
arecordmidi is a command-line utility that records a standard MIDI file from one or more ALSA sequencer ports.
aseqdump is a command-line utility that prints the sequencer events it receives as text.
aseqnet is an ALSA sequencer client which sends and receives event packets over a network.
axfer is a command-line recorder and player used to transfer audio frames between sound devices and files.
iecset is a small utility to set or dump the IEC958 (or so-called “S/PDIF”) status bits of the specified sound card via the ALSA control API.
speaker-test is a command-line speaker test tone generator for ALSA.
42.5 alsa-tools-1.2.5
Introduction to ALSA Tools
The ALSA Tools package contains advanced tools for certain sound cards.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.alsa-project.org/files/pub/tools/alsa-tools-1.2.5.tar.bz2
-
Download (FTP): ftp://ftp.alsa-project.org/pub/tools/alsa-tools-1.2.5.tar.bz2
-
Download MD5 sum: ce632a6c89ed47ee74ba415276a6a3cc
-
Download size: 1.8 MB
-
Estimated disk space required: 26 MB
-
Estimated build time: 0.4 SBU
ALSA Tools Dependencies
Required
Optional
GTK+-2.24.33 (to build echomixer, envy24control and rmedigicontrol), GTK+-3.24.36 (to build hdajackretask) and FLTK-1.3.8 (to build hdspconf and hdspmixer)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-tools
Installation of ALSA Tools
Note
When installing multiple packages in a script, the installation needs to be done as the root user. There are three general options that can be used to do this:
-
Run the entire script as the root user (not recommended).
-
Use the sudo command from the Sudo-1.9.13p1 package.
-
Use su -c “command arguments” (quotes required) which will ask for the root password for every iteration of the loop.
One way to handle this situation is to create a short bash function that automatically selects the appropriate method. Once the command is set in the environment, it does not need to be set again.
as_root()
{
if [ $EUID = 0 ]; then $*
elif [ -x /usr/bin/sudo ]; then sudo $*
else su -c \\"$*\\"
fi
}
export -f as_root
First, start a subshell that will exit on error:
bash -e
Now, remove a tool that needs Qt2 or 3 and two unneeded files (for the BLFS instructions below):
rm -rf qlo10k1 Makefile gitcompile
The ALSA Tools package is only needed by those with advanced requirements for their sound card. The tools can be built all together at once, but if only a subset is needed, you need to cd into the directory of each tool you wish to compile and run the commands. Here, we present instructions to build all tools.
Install all ALSA Tools by running the following commands:
for tool in *
do
case $tool in
seq )
tool_dir=seq/sbiload
;;
* )
tool_dir=$tool
;;
esac
pushd $tool_dir
./configure --prefix=/usr
make
as_root make install
as_root /sbin/ldconfig
popd
done
unset tool tool_dir
Finally, exit the shell that was started earlier:
exit
Contents
Installed Programs: as10k1, cspctl, dl10k1, echomixer, envy24control, hda-verb, hdajackretask, hdajacksensetest, hdspconf, hdsploader, hdspmixer, hwmixvolume, init_audigy, init_audigy_eq10, init_live, lo10k1, ld10k1, ld10k1d, mixartloader, pcxhrloader, rmedigicontrol, sbiload, sscape_ctl, us428control, usx2yloader, and vxloader
Installed Library: liblo10k1.so
Installed Directories: /etc/hotplug, /usr/include/lo10k1, /usr/share/ld10k1, and /usr/share/sounds
Short Descriptions
as10k1 is an assembler for the emu10k1 DSP chip present in the Creative SB Live, PCI 512, and emu APS sound cards. It is used to make audio effects such as a flanger, chorus or reverb.
cspctl is an SB16/AWE32 Creative Signal Processor (ASP/CSP) control program.
echomixer is the Linux equivalent of the Echoaudio console application from Echoaudio. It is a tool to control all the features of any Echoaudio soundcard. This includes clock sources, input and output gains, mixers, etc.
envy24control is a control tool for Envy24 (ice1712) based sound cards.
hdajackretask is a GUI to make it easy to retask your jacks - e g, turn your Mic jack into an extra Headphone, or why not make them both line outs and connect them to your surround receiver.
hda-verb is a small program to send HD-audio commands to the given ALSA hwdep device on the hd-audio interface.
hdspconf is a GUI to control the Hammerfall HDSP Alsa Settings. Up to four hdsp cards are supported.
hdsploader is used to load the firmware required by the Hammerfall HDSP sound cards.
hdspmixer is the Linux equivalent of the Totalmix application from RME. It is a tool to control the advanced routing features of the RME Hammerfall DSP soundcard series.
hwmixvolume allows you to control the volume of individual streams on sound cards that use hardware mixing.
init_audigy* are tools used to initialize Creative Sound Blaster Audigy-series cards.
init_live is a tool used to initialize Creative Sound Blaster Live cards.
ld10k1 is the server of a EMU10K{1,2} patch loader for ALSA.
lo10k1 is the client of a EMU10K{1,2} patch loader for ALSA.
dl10k1 loads config dumps generated by lo10k1 and ld10k1.
ld10k1d is an init script for the ld10k1 patch loader.
mixartloader is a helper program to load the firmware binaries onto the Digigram’s miXart board sound drivers. The following modules require this program: snd-mixart. These drivers don’t work properly at all until the certain firmwares are loaded, i.e. no PCM nor mixer devices will appear.
pcxhrloader is a helper program to load the firmware binaries onto Digigram’s pcxhr compatible board sound drivers. The following modules require this program: snd-pcxhr. These drivers don’t work properly at all until certain firmwares are loaded, i.e. no PCM nor mixer devices will appear.
rmedigicontrol is a control tool for RME Digi32 and RME Digi96 sound cards. It provides a graphical frontend for all the sound card controls and switches.
sbiload is an OPL2/3 FM instrument loader for the ALSA sequencer.
sscape_ctl is an ALSA SoundScape control utility.
us428control is a Tascam US-428 control program.
usx2yloader is a helper program to load the 2nd Phase firmware binaries onto the Tascam USX2Y USB sound cards. It has proven to work so far for the US122, US224 and US428. The snd-usb-usx2y module requires this program.
vxloader is a helper program to load the firmware binaries onto the Digigram’s VX-board sound drivers. The following modules require this program: snd-vx222, snd-vxpocket, snd-vxp440. These drivers don’t work properly at all until the certain firmwares are loaded, i.e. no PCM nor mixer devices will appear.
42.6 alsa-firmware-1.2.4
Introduction to ALSA Firmware
The ALSA Firmware package contains firmware for certain sound cards.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.alsa-project.org/files/pub/firmware/alsa-firmware-1.2.4.tar.bz2
-
Download (FTP): ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.2.4.tar.bz2
-
Download MD5 sum: ee6c1d24a1a4ac1d86992b408ed710a2
-
Download size: 4.9 MB
-
Estimated disk space required: 39 MB
-
Estimated build time: less than 0.1 SBU
ALSA Firmware Dependencies
Required
Optional
AS31 (for rebuilding the firmware from source)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-firmware
Installation of ALSA Firmware
The ALSA Firmware package is only needed by those with advanced requirements for their sound card. See the README for configure options.
Install ALSA Firmware by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: Several directories in /lib/firmware and /usr/share/alsa/firmware
42.7 alsa-oss-1.1.8
Introduction to alsa-oss
The alsa-oss package contains the alsa-oss compatibility library. This is used by programs which wish to use the alsa-oss sound interface.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.alsa-project.org/files/pub/oss-lib/alsa-oss-1.1.8.tar.bz2
-
Download (FTP): ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-1.1.8.tar.bz2
-
Download MD5 sum: 9ec4bb783fdce19032aace086d65d874
-
Download size: 288 KB
-
Estimated disk space required: 3.0 MB
-
Estimated build time: less than 0.1 SBU
ALSA OSS Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/alsa-oss
Installation of ALSA OSS
Install ALSA OSS by running the following commands:
./configure --disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Program: aoss
Installed Libraries: libalsatoss.so, libaoss.so, and libossredir.a
Installed Directories: None
Short Descriptions
aoss is a simple wrapper script which facilitates the use of the ALSA oss compatibility library. It just sets the appropriate LD_PRELOAD path and then runs the command.
42.8 AudioFile-0.3.6
Introduction to AudioFile
The AudioFile package contains the audio file libraries and two sound file support programs useful to support basic sound file formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://download.gnome.org/sources/audiofile/0.3/audiofile-0.3.6.tar.xz
-
Download (FTP): ftp://ftp.acc.umu.se/pub/gnome/sources/audiofile/0.3/audiofile-0.3.6.tar.xz
-
Download MD5 sum: 235dde14742317328f0109e9866a8008
-
Download size: 520 KB
-
Estimated disk space required: 18 MB
-
Estimated build time: 0.6 SBU
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/audiofile-0.3.6-consolidated_patches-1.patch
AudioFile Dependencies
Required
Recommended
Optional
asciidoc-10.2.0 and Valgrind-3.20.0
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/audiofile
Installation of AudioFile
Install AudioFile by running the following commands:
patch -Np1 -i ../audiofile-0.3.6-consolidated_patches-1.patch &&
autoreconf -fiv &&
./configure --prefix=/usr --disable-static &&
make
Now, as the root user:
make install
To test the results, issue: make check. Note that the tests will fail if the –disable-static option is used and tests are executed before make install. You have three options:
(a) configure without –disable-static, run the tests, but do not install, then start a fresh build using –disable-static just for installing the package.
(b) configure with –disable-static, but only run the tests after the package is installed.
(c) configure with –disable-static, but only run the tests after a DESTDIR install.
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: sfconvert and sfinfo
Installed Libraries: libaudiofile.so
Installed Directories: None
Short Descriptions
sfinfo displays the sound file format, audio encoding, sampling rate and duration for audio formats supported by this library.
sfconvert converts sound file formats where the original format and destination format are supported by this library.
libaudiofile.so contains functions used by programs to support AIFF, AIFF-compressed, Sun/NeXT, WAV and BIC audio formats.
42.9 FAAC-1_30
Introduction to FAAC
FAAC is an encoder for a lossy sound compression scheme specified in MPEG-2 Part 7 and MPEG-4 Part 3 standards and known as Advanced Audio Coding (AAC). This encoder is useful for producing files that can be played back on iPod. Moreover, iPod does not understand other sound compression schemes in video files.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/knik0/faac/archive/1_30/faac-1_30.tar.gz
-
Download MD5 sum: 8d61e6d55088e599aa91532d5e6995b0
-
Download size: 240 KB
-
Estimated disk space required: 4.7 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/faac
Installation of FAAC
Install FAAC by running the following commands:
./bootstrap &&
./configure --prefix=/usr --disable-static &&
make
This package does not come with a test suite. However, basic functionality can be tested by encoding a sample WAV file (the sample file is installed by the alsa-utils-1.2.8 package:
./frontend/faac -o Front_Left.mp4 /usr/share/sounds/alsa/Front_Left.wav
Then, decode the result using the faad program from the FAAD2-2.10.1 package and play back the decoded file (requires the aplay program from the alsa-utils-1.2.8 package:
faad Front_Left.mp4
aplay Front_Left.wav
aplay should identify the file as “Signed 16 bit Little Endian, Rate 48000 Hz, Stereo”, and you should hear the words “front left”.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Other AAC encoders
The quality of FAAC is not up to par with the best AAC encoders currently available. Also, it only supports AAC and not High Efficiency AAC (also known as aacPlus), which provides better quality at low bitrates by means of using the “spectral band replication” technology. There are the following alternative programs for producing AAC and HE-AAC streams:
-
Nero AAC Codec: available only in the binary form, the command-line AAC and HE-AAC encoders for Linux are in the same archive as the Windows application.
-
3GPP Enhanced aacPlus general audio codec: available in the source form, can encode only HE-AAC up to 48 kbps out of the box, but the maximum bitrate can be changed by editing the tuning table in the
FloatFR_sbrenclib/src/sbr_main.cfile.
Note, however, that iPod supports only Low Complexity AAC profile, which is the default in FAAC, but may not be the default in Nero AAC Encoder and is completely unavailable in the 3GPP encoder.
Contents
Installed Program: faac
Installed Libraries: libfaac.so and libmp4v2.so
Installed Directories: None
Short Descriptions
faac is a command-line AAC encoder.
libfaac.so contains functions for encoding AAC streams.
libmp4v2.so contains functions for creating and manipulating MP4 files.
42.10 FAAD2-2.10.1
Introduction to FAAD2
FAAD2 is a decoder for a lossy sound compression scheme specified in MPEG-2 Part 7 and MPEG-4 Part 3 standards and known as Advanced Audio Coding (AAC).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/knik0/faad2/archive/2.10.1/faad2-2.10.1.tar.gz
-
Download MD5 sum: 62a0427c6ff3a273aa720e27da166758
-
Download size: 788 KB
-
Estimated disk space required: 14 MB
-
Estimated build time: 0.1 SBU
Additional Downloads
- Sample AAC file: https://www.nch.com.au/acm/sample.aac (7 KB)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/faad2
Installation of FAAD2
Install FAAD2 by running the following commands:
./bootstrap &&
./configure --prefix=/usr --disable-static &&
make
This package does not come with a test suite. However, basic functionality can be tested by decoding the sample AAC file:
./frontend/faad -o sample.wav ../sample.aac
This should display a copyright message and the following information about the sample file:
sample.aac file info:
ADTS, 4.608 sec, 13 kbps, 16000 Hz
---------------------
| Config: 2 Ch |
---------------------
| Ch | Position |
---------------------
| 00 | Left front |
| 01 | Right front |
---------------------
Now play the result (requires the aplay program from the alsa-utils-1.2.8 package):
aplay sample.wav
aplay should identify the file as “Signed 16 bit Little Endian, Rate 16000 Hz, Stereo”, and you should hear some piano notes.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Program: faad
Installed Library: libfaad.so and libfaad_drm.so
Installed Directories: None
Short Descriptions
faad is a command-line utility for decoding AAC and MP4 files.
libfaad.so contains functions for decoding AAC streams.
42.11 fdk-aac-2.0.2
Introduction to fdk-aac
fdk-aac package provides the Fraunhofer FDK AAC library, which is purported to be a high quality Advanced Audio Coding implementation.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/opencore-amr/fdk-aac-2.0.2.tar.gz
-
Download MD5 sum: b41222194b31f570b3132bd622a9aef6
-
Download size: 2.8 MB
-
Estimated disk space required: 38 MB
-
Estimated build time: 0.6 SBU (Using parallelism=4)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/fdk-aac
Installation of fdk-aac
Install fdk-aac by running the following commands:
./configure --prefix=/usr --disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libfdk-aac.so
Installed Directory: /usr/include/fdk-aac
Short Descriptions
libfdk-aac.so provides the functions used to encode audio in AAC format.
42.12 FLAC-1.4.2
Introduction to FLAC
FLAC is an audio CODEC similar to MP3, but lossless, meaning that audio is compressed without losing any information.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.xiph.org/releases/flac/flac-1.4.2.tar.xz
-
Download MD5 sum: ca9140f37b286d2571e37d66aae50f92
-
Download size: 1.0 MB
-
Estimated disk space required: 21 MB (additional 165 MB to run the test suite)
-
Estimated build time: 0.2 SBU (additional 0.6 SBU to run the test suite)
FLAC Dependencies
Optional
libogg-1.3.5, DocBook-utils-0.6.14, Doxygen-1.9.6, and Valgrind-3.20.0
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/flac
Installation of FLAC
Install FLAC by running the following commands:
./configure --prefix=/usr \
--disable-thorough-tests \
--docdir=/usr/share/doc/flac-1.4.2 &&
make
To test the results, issue: make check. Note that if you passed the --enable-exhaustive-tests and --enable-valgrind-testing parameters to configure and then run the test suite, it will take a very long time (up to 300 SBUs) and use about 375 MB of disk space.
Now, as the root user:
make install
Command Explanations
--disable-thorough-tests: This parameter is used so that the test suite will complete in a reasonable amount of time. Remove it if you desire more extensive tests.
Contents
Installed Programs: flac and metaflac
Installed Libraries: libFLAC.so and libFLAC++.so
Installed Directories: /usr/include/FLAC, /usr/include/FLAC++ and /usr/share/doc/flac-1.4.2
Short Descriptions
flac is a command-line utility for encoding, decoding and converting FLAC files.
metaflac is a program for listing, adding, removing, or editing metadata in one or more FLAC files.
libFLAC{,++}.so these libraries provide native FLAC and Ogg FLAC C/C++ APIs for programs utilizing FLAC.
42.13 frei0r-plugins-1.8.0
Introduction to Frei0r-plugins
Frei0r is a minimalistic plugin API for video effects. Note that the 0 in the name is a zero, not a capital letter o.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://files.dyne.org/frei0r/releases/frei0r-plugins-1.8.0.tar.gz
-
Download MD5 sum: 45ffe53925ce0a90ce1d838c05e0a3c0
-
Download size: 804 KB
-
Estimated disk space required: 40 MB
-
Estimated build time: 0.5 SBU
Frei0r-plugins Dependencies
Recommended
Optional
Doxygen-1.9.6 and opencv-4.7.0
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/frei0r
Installation of Frei0r-plugins
Install Frei0r by running the following commands:
mkdir -vp build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-Wno-dev .. &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
-DWITHOUT_OPENCV=TRUE: This option instructs the make procedure to disable building plugins dependent upon opencv.
-DWITHOUT_GAVL=TRUE: This option instructs the make procedure to disable building plugins dependent upon gavl.
Contents
Installed Program: None
Installed Libraries: Over 130 video effects plugins
Installed Directories: /usr/lib/frei0r-1
42.14 gavl-1.4.0
Introduction to Gavl
Gavl is short for Gmerlin Audio Video Library. It is a low level library that handles the details of audio and video formats like colorspaces, samplerates, multichannel configurations etc. It provides standardized definitions for those formats as well as container structures for carrying audio samples or video images inside an application.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/gmerlin/gavl-1.4.0.tar.gz
-
Download MD5 sum: 2752013a817fbc43ddf13552215ec2c0
-
Download size: 4.4 MB
-
Estimated disk space required: 50 MB
-
Estimated build time: 0.8 SBU
Gavl Dependencies
Required
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gavl
Installation of Gavl
Install Gavl by running the following commands:
LIBS=-lm \
./configure --prefix=/usr \
--without-doxygen \
--docdir=/usr/share/doc/gavl-1.4.0 &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
LIBS=-lm: This variable ensures the math library is searched when linking.
--without-doxygen: This switch disables use of Doxygen. Omit if Doxygen is installed and you wish to build the API documentation.
Contents
Installed Program: None
Installed Libraries: libgavl.so
Installed Directories: /usr/include/gavl and /usr/share/doc/gavl-1.4.0
Short Descriptions
libgavl.so is the Gmerlin Audio Video Library.
42.15 gstreamer-1.22.0
Introduction to gstreamer
gstreamer is a streaming media framework that enables applications to share a common set of plugins for tasks such as video encoding and decoding, audio encoding and decoding, audio and video filters, audio visualisation, web streaming and anything else that streams in real-time or otherwise. This package only provides base functionality and libraries. You may need at least gst-plugins-base-1.22.0 and one of Good, Bad, Ugly or Libav plugins.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.22.0.tar.xz
-
Download MD5 sum: fb69587308e03e15c1b9a026a7b591d6
-
Download size: 1.7 MB
-
Estimated disk space required: 46 MB (with tests)
-
Estimated build time: 0.3 SBU (Using parallelism=4; with tests)
gstreamer Dependencies
Required
Recommended
Optional
GTK+-3.24.36 (for examples), Gsl-2.7.1 (used by one test if installed), libunwind-1.6.2, Valgrind-3.20.0, bash-completion, hotdoc, and libdw
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gstreamer10
Installation of gstreamer
Install gstreamer by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dgst_debug=false \
-Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
-Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja
To test the results, issue: ninja test.
Caution
If you are reinstalling gstreamer from a previous version, it is best if you remove the prior version, including plugins, before installing the new version. If there is a mixture of versions installed, using processes may hang or not work properly. As the root user:
rm -rf /usr/bin/gst-* /usr/{lib,libexec}/gstreamer-1.0
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: gst-inspect-1.0, gst-launch-1.0, gst-stats-1.0, gst-tester-1.0, and gst-typefind-1.0
Installed Libraries: libgstbase-1.0.so, libgstcheck-1.0.so, libgstcontroller-1.0.so, libgstnet-1.0.so, and libgstreamer-1.0.so
Installed Directories: /usr/{include,lib,libexec,share}/gstreamer-1.0
Short Descriptions
gst-inspect-1.0 is a tool that prints out information on available gstreamer plugins, information about a particular plugin, or information about a particular element.
gst-launch-1.0 is a tool that builds and runs basic gstreamer pipelines.
gst-stats-1.0 is a tool used to gather statistics about gstreamer operations.
gst-tester-1.0 runs a test plan in TAP compatible format while integrating with the meson test harness.
gst-typefind-1.0 uses the gstreamer type finding system to determine the relevant gstreamer plugin to parse or decode files, and the corresponding MIME type.
libgstbase-1.0.so provides some base classes to be extended by elements and utility classes that are most useful for plugin developers.
libgstcheck-1.0.so provides functionality for writing unit tests that use the check framework.
libgstcontroller-1.0.so provides functionality to animate element properties over time.
libgstnet-1.0.so provides network elements and objects.
libgstreamer-1.0.so provides all of the core gstreamer services, including initialization, plugin management and types, as well as the object hierarchy that defines elements and bins, along with some more specialized elements.
42.16 gst-plugins-base-1.22.0
Introduction to GStreamer Base Plug-ins
The GStreamer Base Plug-ins is a well-groomed and well-maintained collection of GStreamer plug-ins and elements, spanning the range of possible types of elements one would want to write for GStreamer. You will need at least one of Good, Bad, Ugly or Libav plugins for GStreamer applications to function properly.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.22.0.tar.xz
-
Download MD5 sum: c559f23bb746bda732e85ba7b76c2074
-
Download size: 2.0 MB
-
Estimated disk space required: 86 MB (with tests)
-
Estimated build time: 0.8 SBU (Using parallelism=4; with tests)
GStreamer Base Plug-ins Dependencies
Required
Recommended
alsa-lib-1.2.8, CDParanoia-III-10.2 (for building the CDDA plugin), gobject-introspection-1.74.0, ISO Codes-4.12.0, libgudev-237, libjpeg-turbo-2.1.5.1, libogg-1.3.5, libpng-1.6.39, libtheora-1.1.1, libvorbis-1.3.7, Mesa-22.3.5, Pango-1.50.12, wayland-protocols-1.31, and Xorg Libraries
Optional
graphene-1.10.8, GTK+-3.24.36 (for examples), Opus-1.3.1, Qt-5.15.8 (for examples), SDL-1.2.15, SDL2-2.26.3, Valgrind-3.20.0, hotdoc, libvisual, Orc, and Tremor
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-base
Installation of GStreamer Base Plug-ins
Note
If you need a plugin for a given dependency, that dependency needs to be installed before this package.
Install GStreamer Base Plug-ins by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
-Dpackage-name="GStreamer 1.22.0 BLFS" \
--wrap-mode=nodownload &&
ninja
To test the results, issue: ninja test. The tests require an X terminal running, or all of the GL tests will fail. Five tests may produce timeouts on some systems depending on their graphics hardware and speed.
Note
When installing, the build process does some additional linking. If you do not have Xorg in /usr, the LIBRARY_PATH variable needs to be defined for the root user. If using sudo to assume root, use the -E option to pass your current environment variables for the install process.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
--wrap-mode=nodownload: This switch prevents meson from downloading any optional dependency which is not installed on the system.
Contents
Installed Programs: gst-device-monitor-1.0, gst-discoverer-1.0, and gst-play-1.0
Installed Libraries: libgstallocators-1.0.so, libgstapp-1.0.so, libgstaudio-1.0.so, libgstfft-1.0.so, libgstgl-1.0.so, libgstpbutils-1.0.so, libgstriff-1.0.so, libgstrtp-1.0.so, libgstrtsp-1.0.so, libgstsdp-1.0.so, libgsttag-1.0.so, libgstvideo-1.0.so, and several plugins under /usr/lib/gstreamer-1.0
Installed Directories: /usr/include/gstreamer-1.0/gst/{allocators,app,audio,fft,gl,pbutils}, /usr/include/gstreamer-1.0/gst/{riff,rtp,rtsp,sdp,tag,video}, and /usr/share/gst-plugins-base
Short Descriptions
gst-device-monitor-1.0 is a command line tool that can be used to test GStreamer’s device monitoring functionality.
gst-discoverer-1.0 is a tool that can be used to print basic metadata and stream information about a media file.
gst-play-1.0 is a command line tool that can be used to test basic playback using the playbin element.
42.17 gst-plugins-good-1.22.0
Introduction to GStreamer Good Plug-ins
The GStreamer Good Plug-ins is a set of plug-ins considered by the GStreamer developers to have good quality code, correct functionality, and the preferred license (LGPL for the plug-in code, LGPL or LGPL-compatible for the supporting library). A wide range of video and audio decoders, encoders, and filters are included.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.0.tar.xz
-
Download MD5 sum: 4034320097501bccb2272a52874caaea
-
Download size: 2.7 MB
-
Estimated disk space required: 105 MB (with tests)
-
Estimated build time: 0.6 SBU (Using parallelism=4; with tests)
GStreamer Good Plug-ins Dependencies
Required
Recommended
Cairo-1.17.6, FLAC-1.4.2, gdk-pixbuf-2.42.10, LAME-3.100, libsoup-2.74.3, libsoup-3.2.2, libvpx-1.13.0, mpg123-1.31.2, NASM-2.16.01, and PulseAudio-16.1
Optional
AAlib-1.4rc5, ALSA OSS-1.1.8, GTK+-3.24.36 (for examples), libdv-1.0.0, Qt-5.15.8, Speex-1.2.1, taglib-1.13, Valgrind-3.20.0, v4l-utils-1.22.1, Wayland-1.21.0, hotdoc, JACK, libcaca, libavc1394, libiec61883, libraw1394, libshout, Orc, TwoLame, and WavPack
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-good
Installation of GStreamer Good Plug-ins
Note
If you need a plugin for a given dependency, that dependency needs to be installed before this package.
Install GStreamer Good Plug-ins by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
-Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja
To test the results, issue: ninja test. One test, elements_flvmux is known to fail on some systems.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: None
Installed Libraries: Several plugins under /usr/lib/gstreamer-1.0
Installed Directories: /usr/share/gstreamer-1.0/presets
42.18 gst-plugins-bad-1.22.0
Introduction to GStreamer Bad Plug-ins
The GStreamer Bad Plug-ins package contains a set of plug-ins that aren’t up to par compared to the rest. They might be close to being good quality, but they’re missing something - be it a good code review, some documentation, a set of tests, a real live maintainer, or some actual wide use.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.22.0.tar.xz
-
Download MD5 sum: 6c4df68e7d32e2ae6a682b7dbc22e35a
-
Download size: 5.2 MB
-
Estimated disk space required: 162 MB (with tests)
-
Estimated build time: 1.1 SBU (Using parallelism=4; with tests)
GStreamer Bad Plug-ins Dependencies
Required
Recommended
libdvdread-6.1.3, libdvdnav-6.1.1, and SoundTouch-2.3.2
Optional
BlueZ-5.66, cURL-7.88.1, FAAC-1_30, FAAD2-2.10.1, fdk-aac-2.0.2, GTK+-3.24.36 (for examples), gst-plugins-good-1.22.0 (for one test), Little CMS-2.14, libass-0.17.0, libexif-0.6.24 (for one test), librsvg-2.54.5, libsoup-2.74.3 (for one test), libsndfile-1.2.0, libssh2-1.10.0, libusb-1.0.26, libva-2.17.0, libwebp-1.3.0, libxkbcommon-1.5.0, neon-0.32.5, Nettle-3.8.1 or libgcrypt-1.10.1 (for SSL support in hls plugin, if both are not installed OpenSSL will be used instead), opencv-4.7.0 (with additional modules), OpenJPEG-2.5.0, Opus-1.3.1, SBC-2.0, SDL-1.2.15, Valgrind-3.20.0, Wayland-1.21.0 (GTK+-3.24.36 must have been compiled with wayland support), wpebackend-fdo-1.14.0, x265-20230215, aom, bs2b, Chromaprint, dssim, Flite, FluidSynth, Game Music Emu, GSM, hotdoc, LADSPA, libavtp, libdc1394-2, libdca, libde265, libkate, libmfx, libmms, libmodplug, libnice, libofa, libopenmpt, libopenni, libsrtp, lilv, LRDF, ltc-tools, microdns, MJPEG Tools, OpenAL, OpenEXR, OpenH264, Orc, rtmpdump, spandsp, Srt, svthevcenc, VO AAC, VO AMRWB, Vulkan, WildMidi, WPE-WebKit, ZBAR, ZVBI, and zxing
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-bad
Installation of GStreamer Bad Plug-ins
Note
If you need a plugin for a given dependency, that dependency needs to be installed before this package.
Install GStreamer Bad Plug-ins by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dgpl=enabled \
-Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
-Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja
To test the results, issue: ninja test. Several tests need a terminal emulator in a graphical session. two tests, elements_vapostproc and elements_vacompositor are known to fail. If gst-plugins-good-1.22.0 is not installed, two tests elements_rtpsrc and elements_rtpsink will fail.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dgpl=enabled: Without this switch, plugins with dependencies on (A)GPL licensed libraries are not built.
Contents
Installed Programs: gst-transcoder-1.0 and playout
Installed Libraries: libgstadaptivedemux-1.0.so, libgstbadaudio-1.0.so, libgstbasecamerabinsrc-1.0.so, libgstcodecparsers-1.0.so, libgstcodecs-1.0.so, libgstinsertbin-1.0.so, libgstisoff-1.0.so, libgstmpegts-1.0.so, libgstphotography-1.0.so, libgstplay-1.0.so, libgstplayer-1.0.so, libgstsctp-1.0.so, libgsttranscoder-1.0.so, libgsturidownloader-1.0.so, libgstva-1.0.so, libgstwayland-1.0.so, libgstwebrtc-1.0.so, and several plugins under /usr/lib/gstreamer-1.0
Installed Directories: /usr/include/gstreamer-1.0/gst/{audio,basecamerabinsrc,codecparsers}, /usr/include/gstreamer-1.0/gst/{insertbin,interfaces,isoff,mpegts}, /usr/include/gstreamer-1.0/gst/{play,player,sctp,transcoder}, and /usr/include/gstreamer-1.0/gst/{uridownloader,wayland,webrtc}
Short Descriptions
gst-transcoder-1.0 is used to transcode a stream into a different format.
playout is an example application used to sequentially play a list of audio-video files.
42.19 gst-plugins-ugly-1.22.0
Introduction to GStreamer Ugly Plug-ins
The GStreamer Ugly Plug-ins is a set of plug-ins considered by the GStreamer developers to have good quality and correct functionality, but distributing them might pose problems. The license on either the plug-ins or the supporting libraries might not be how the GStreamer developers would like. The code might be widely known to present patent problems.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.22.0.tar.xz
-
Download MD5 sum: ac97c1ca8d9c7a9878ca15796b70d809
-
Download size: 236 KB
-
Estimated disk space required: 8.4 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
GStreamer Ugly Plug-ins Dependencies
Required
Recommended
liba52-0.7.4 (needed to play DVD’s), libdvdread-6.1.3, and x264-20230215
Optional
libmpeg2-0.5.1, libcdio-2.1.0 (for CD-ROM drive access), Valgrind-3.20.0, hotdoc, libsidplay, OpenCore AMR, Orc, and TwoLame
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-plugins-ugly
Installation of GStreamer Ugly Plug-ins
Note
If you need a plugin for a given dependency, that dependency needs to be installed before this package.
Install GStreamer Ugly Plug-ins by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dgpl=enabled \
-Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
-Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja
To test the results, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dgpl=enabled: Without this switch, plugins with dependencies on (A)GPL licensed libraries are not built.
Contents
Installed Programs: None
Installed Libraries: Several plugins under /usr/lib/gstreamer-1.0
Installed Directories: None
42.20 gst-libav-1.22.0
Introduction to GStreamer Libav
The GStreamer Libav package contains GStreamer plugins for Libav (a fork of FFmpeg).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.22.0.tar.xz
-
Download MD5 sum: a2165c56301906c50dcc9245d535df45
-
Download size: 188 KB
-
Estimated disk space required: 8.9 MB
-
Estimated build time: less than 0.1 SBU
GStreamer Libav Dependencies
Required
FFmpeg-5.1.2 and gst-plugins-base-1.22.0
Recommended
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gst10-libav
Installation of GStreamer Libav
Install GStreamer Libav by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ \
-Dpackage-name="GStreamer 1.22.0 BLFS" &&
ninja
The tests are not recommended. Test 6 of 6 times out after 3 minutes. To run the tests anyway, issue: ninja test.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: None
Installed Library: libgstlibav.so in /usr/lib/gstreamer-1.0 directory
Installed Directory: None
42.21 gstreamer-vaapi-1.22.0
Introduction to gstreamer-vaapi
The gstreamer-vaapi package contains a gstreamer plugin for hardware accelerated video decode/encode for the prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).
Note
On systems without hardware acceleration (notably virtual machines under qemu-7.2.0), this package may cause the X server to crash. The BLFS team recommends not to install this package in this case.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.22.0.tar.xz
-
Download MD5 sum: 49857ccda7c14cbb64769a60058708f9
-
Download size: 516 KB
-
Estimated disk space required: 12 MB
-
Estimated build time: 0.2 SBU
gstreamer-vaapi Dependencies
Required
GTK+-3.24.36, gstreamer-1.22.0, gst-plugins-base-1.22.0, gst-plugins-bad-1.22.0, and libva-2.17.0
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/gstreamer10-vaapi
Installation of gstreamer-vaapi
Install gstreamer-vaapi by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dpackage-origin=https://www.linuxfromscratch.org/blfs/view/11.3-systemd/ &&
ninja
This package does not come with a vi working test suite.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
Contents
Installed Programs: None
Installed Library: libgstvaapi.so in /usr/lib/gstreamer-1.0
Installed Directory: None
42.22 id3lib-3.8.3
Introduction to id3lib
id3lib is a library for reading, writing and manipulating id3v1 and id3v2 multimedia data containers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/id3lib/id3lib-3.8.3.tar.gz
-
Download MD5 sum: 19f27ddd2dda4b2d26a559a4f0f402a7
-
Download size: 932 KB
-
Estimated disk space required: 16 MB
-
Estimated build time: 0.2 SBU
Additional Downloads
- Required patches: https://www.linuxfromscratch.org/patches/blfs/11.3/id3lib-3.8.3-consolidated_patches-1.patch
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/id3lib
Installation of Id3lib
Install id3lib by running the following commands:
patch -Np1 -i ../id3lib-3.8.3-consolidated_patches-1.patch &&
libtoolize -fc &&
aclocal &&
autoconf &&
automake --add-missing --copy &&
./configure --prefix=/usr --disable-static &&
make
This packages does not come with a working test suite.
Now, as the root user:
make install &&
cp doc/man/* /usr/share/man/man1 &&
install -v -m755 -d /usr/share/doc/id3lib-3.8.3 &&
install -v -m644 doc/*.{gif,jpg,png,ico,css,txt,php,html} \
/usr/share/doc/id3lib-3.8.3
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: id3convert, id3cp, id3info, and id3tag
Installed Library: libid3.so
Installed Directories: /usr/include/id3 and /usr/share/doc/id3lib-3.8.3
Short Descriptions
id3convert converts between id3v1/v2 tagging formats.
id3cp extracts id3v1/v2 tags from digital audio files.
id3info prints id3v1/v2 tag contents.
id3tag is a utility for editing id3v1/v2 tags.
libid3.so provides functions for the id3v1/v2 tag editing programs as well as other external programs and libraries.
42.23 Liba52-0.7.4
Introduction to Liba52
liba52 is a free library for decoding ATSC A/52 (also known as AC-3) streams. The A/52 standard is used in a variety of applications, including digital television and DVD.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz
-
Download MD5 sum: caa9f5bc44232dc8aeea773fea56be80
-
Download size: 236 KB
-
Estimated disk space required: 2.5 MB
-
Estimated build time: less than 0.1 SBU
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/liba52
Installation of Liba52
Install liba52 by running the following commands:
./configure --prefix=/usr \
--mandir=/usr/share/man \
--enable-shared \
--disable-static \
CFLAGS="${CFLAGS:--g -O2} $([ $(uname -m) = x86_64 ] && echo -fPIC)" &&
make
To test the results, issue: make check.
Now, as the root user:
make install &&
cp liba52/a52_internal.h /usr/include/a52dec &&
install -v -m644 -D doc/liba52.txt \
/usr/share/doc/liba52-0.7.4/liba52.txt
Command Explanations
CFLAGS="-g -O2 ...: This sets CFLAGS to -g -O2 (which is the default) but then on x86_64 adds -fPIC. This is needed to compile liba52 on x86_64.
--disable-static: This switch prevents installation of static versions of the libraries.
cp liba52/a52_internal.h …: Copying this header file into /usr/include/a52dec allows some other programs (such as xine-lib) to compile and link against a system installed liba52.
Contents
Installed Programs: a52dec and extract_a52
Installed Library: liba52.so
Installed Directories: /usr/include/a52dec and /usr/share/doc/liba52-0.7.4
Short Descriptions
a52dec plays ATSC A/52 audio streams.
extract_a52 extracts ATSC A/52 audio from an MPEG stream.
liba52.so provides functions for the programs dealing with ATSC A/52 streams.
42.24 Libao-1.2.0
Introduction to Libao
The libao package contains a cross-platform audio library. This is useful to output audio on a wide variety of platforms. It currently supports WAV files, OSS (Open Sound System), ESD (Enlighten Sound Daemon), ALSA (Advanced Linux Sound Architecture), NAS (Network Audio system), aRTS (analog Real-Time Synthesizer), and PulseAudio (next generation GNOME sound architecture).
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.xiph.org/releases/ao/libao-1.2.0.tar.gz
-
Download MD5 sum: 9f5dd20d7e95fd0dd72df5353829f097
-
Download size: 456 KB
-
Estimated disk space required: 3.9 MB
-
Estimated build time: less than 0.1 SBU
Libao Dependencies
Optional
a graphical environment, ALSA-1.2.7, and PulseAudio-16.1
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libao
Installation of Libao
Install libao by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m644 README /usr/share/doc/libao-1.2.0
Configuring Libao
Config Files
/etc/libao.conf and ~/.libao
Configuration Information
Currently, the only configuration option available is setting the default output device. Issue man libao.conf for details.
Contents
Installed Programs: None
Installed Libraries: libao.so and plugins under /usr/lib/ao/plugins-4
Installed Directories: /usr/include/ao, /usr/lib/ao and /usr/share/doc/libao-1.2.0
Short Descriptions
libao.so provides functions for programs wishing to output sound over supported platforms.
42.25 libass-0.17.0
Introduction to libass
libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format that allows for more advanced subtitles than the conventional SRT and similar formats.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/libass/libass/releases/download/0.17.0/libass-0.17.0.tar.xz
-
Download MD5 sum: 25f7435779aa28eb7dbd3f76f4d17d15
-
Download size: 396 KB
-
Estimated disk space required: 5.5 MB
-
Estimated build time: less than 0.1 SBU
libass Dependencies
Required
FreeType-2.13.0, FriBidi-1.0.12, and NASM-2.16.01
Recommended
Optional
HarfBuzz-7.0.0 and libunibreak
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libass
Installation of libass
Install libass by running the following commands:
./configure --prefix=/usr --disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--disable-fontconfig: Use this switch if you didn’t install Fontconfig.
Contents
Installed Programs: None
Installed Library: libass.so
Installed Directory: /usr/include/ass
Short Descriptions
libass.so provides the functions used to render ASS/SSA subtitle format.
42.26 libcanberra-0.30
Introduction to libcanberra
libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops, such as GNOME.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://0pointer.de/lennart/projects/libcanberra/libcanberra-0.30.tar.xz
-
Download MD5 sum: 34cb7e4430afaf6f447c4ebdb9b42072
-
Download size: 312 KB
-
Estimated disk space required: 7.5 MB
-
Estimated build time: 0.1 SBU
Additional Downloads
libcanberra Dependencies
Required
Recommended
alsa-lib-1.2.8, gstreamer-1.22.0, and GTK+-3.24.36
Optional
GTK+-2.24.33, PulseAudio-16.1, and tdb
Recommended Sound Theme (Run Time)
sound-theme-freedesktop-0.8, or another theme, for example from the gnome-look website
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libcanberra
Installation of libcanberra
At first, apply a patch to fix an issue causing some applications to crash in Wayland based desktop environment:
patch -Np1 -i ../libcanberra-0.30-wayland-1.patch
Install libcanberra by running the following commands:
./configure --prefix=/usr --disable-oss &&
make
This package does not come with a test suite.
Now, as the root user:
make docdir=/usr/share/doc/libcanberra-0.30 install
Command Explanations
--disable-oss: disable optional deprecated OSS support
--disable-gtk: disable optional GTK+ 2 support
--disable-gtk3: disable optional GTK+ 3 support
Contents
Installed Programs: canberra-boot and canberra-gtk-play
Installed Libraries: libcanberra-gtk.so, libcanberra-gtk3.so and libcanberra.so
Installed Directories: /usr/lib/libcanberra-0.30, /usr/share/doc/libcanberra-0.30 and /usr/share/gtk-doc/html/libcanberra
Short Descriptions
canberra-gtk-play is an application used for playing sound events.
libcanberra-gtk.so contains the libcanberra bindings for GTK+ 2.
libcanberra-gtk3.so contains the libcanberra bindings for GTK+ 3.
libcanberra.so contains the libcanberra API functions.
42.27 libcddb-1.3.2
Introduction to libcddb
The libcddb is a library that implements the different protocols (CDDBP, HTTP, SMTP) to access data on a CDDB server.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/libcddb/libcddb-1.3.2.tar.bz2
-
Download MD5 sum: 8bb4a6f542197e8e9648ae597cd6bc8a
-
Download size: 384 KB
-
Estimated disk space required: 3.9 MB (with tests)
-
Estimated build time: 0.2 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libcddb
Installation of libcddb
By default this package accesses freedb.org, which is already closed. Modify the default to use gnudb.gnudb.org instead, and fix two stale test data files:
sed -e '/DEFAULT_SERVER/s/freedb.org/gnudb.gnudb.org/' \
-e '/DEFAULT_PORT/s/888/&0/' \
-i include/cddb/cddb_ni.h &&
sed '/^Genre:/s/Trip-Hop/Electronic/' -i tests/testdata/920ef00b.txt &&
sed '/DISCID/i# Revision: 42' -i tests/testcache/misc/12340000
Install libcddb by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check -k. The test suite needs the Internet connection. One test fails due to missing test server.
Now, as the root user:
make install
Contents
Installed Programs: cddb_query
Installed Library: libcddb.so
Installed Directories: /usr/include/cddb
Short Descriptions
cddb_query provides a user interface to a CDDB server.
42.28 libcdio-2.1.0
Introduction to libcdio
The libcdio is a library for CD-ROM and CD image access. The associated libcdio-cdparanoia library reads audio from the CD-ROM directly as data, with no analog step between, and writes the data to a file or pipe as .wav, .aifc or as raw 16 bit linear PCM.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://ftp.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2
-
Download (FTP): ftp://ftp.gnu.org/gnu/libcdio/libcdio-2.1.0.tar.bz2
-
Download MD5 sum: aa7629e8f73662a762f64c444b901055
-
Download size: 1.7 MB
-
Estimated disk space required: 43 MB (both packages, including checks)
-
Estimated build time: 0.3 SBU (using parallelism=4; both packages, including checks)
Additional Downloads
libcdio Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libcdio
Installation of libcdio
Install libcdio by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check -k. One test named realpath is known to fail.
Now, as the root user:
make install
Now install libcdio-paranoia:
tar -xf ../libcdio-paranoia-10.2+2.0.1.tar.bz2 &&
cd libcdio-paranoia-10.2+2.0.1 &&
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Programs: cdda-player, cd-drive, cd-info, cd-paranoia, cd-read, iso-info, iso-read, and mmc-tool
Installed Library: libcdio.so, libcdio++.so, libcdio_cdda, libcdio_paranoia, libiso9660, libiso9660++, and libudf.so
Installed Directories: /usr/include/cdio and /usr/include/cdio++
Short Descriptions
cd-drive shows CD-ROM drive characteristics.
cd-info shows information about a CD or CD-image.
cd-paranoia is an audio CD reading utility which includes extra data verification features.
cd-read reads Information from a CD or CD-image.
cdda-player is a simple curses CD player.
iso-info shows Information about an ISO 9660 image.
iso-read reads portions of an ISO 9660 image.
mmc-tool issues libcdio multimedia commands.
libcdio.so contains the primary cdio API functions.
42.29 libdiscid-0.6.2
Introduction to libdiscid
The libdiscid package contains a library for creating MusicBrainz DiscIDs from audio CDs. It reads a CD’s table of contents (TOC) and generates an identifier which can be used to lookup the CD at MusicBrainz (https://musicbrainz.org). Additionally, it provides a submission URL for adding the DiscID to the database.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): http://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/libdiscid-0.6.2.tar.gz
-
Download (FTP): ftp://ftp.musicbrainz.org/pub/musicbrainz/libdiscid/libdiscid-0.6.2.tar.gz
-
Download MD5 sum: 2812bb678f5142efdfd0d0f7d6ea87d6
-
Download size: 396 KB
-
Estimated disk space required: 3.1 MB (with tests)
-
Estimated build time: 0.1 SBU (with tests)
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libdiscid
Installation of libdiscid
Install libdiscid by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libdiscid.so
Installed Directory: /usr/include/discid
Short Descriptions
libdiscid.so contains the DiscID API functions.
42.30 libdvdcss-1.4.3
Introduction to libdvdcss
libdvdcss is a simple library designed for accessing DVDs as a block device without having to bother about the decryption.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://get.videolan.org/libdvdcss/1.4.3/libdvdcss-1.4.3.tar.bz2
-
Download MD5 sum: e98239a88af9b2204f9b9d987c2bc71a
-
Download size: 380 KB
-
Estimated disk space required: 3.3 MB
-
Estimated build time: less than 0.1 SBU
libdvdcss Dependencies
Optional (to Create Documentation)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libdvdcss
Installation of libdvdcss
Install libdvdcss by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libdvdcss-1.4.3 &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libdvdcss.so
Installed Directories: /usr/include/dvdcss and /usr/share/doc/libdvdcss-1.4.3
Short Descriptions
libdvdcss.so provides the functionality that is required for transparent DVD access with CSS decryption.
42.31 Libdvdread-6.1.3
Introduction to Libdvdread
libdvdread is a library which provides a simple foundation for reading DVDs.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://get.videolan.org/libdvdread/6.1.3/libdvdread-6.1.3.tar.bz2
-
Download MD5 sum: 3c58d1624a71a16ff40f55dbaca82523
-
Download size: 388 KB
-
Estimated disk space required: 3.6 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libdvdread
Installation of Libdvdread
Install libdvdread by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libdvdread-6.1.3 &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libdvdread.so
Installed Directories: /usr/include/dvdread and /usr/share/doc/libdvdread-6.1.3
Short Descriptions
libdvdread.so provides functionality required to access DVDs.
42.32 Libdvdnav-6.1.1
Introduction to Libdvdnav
libdvdnav is a library that allows easy use of sophisticated DVD navigation features such as DVD menus, multiangle playback and even interactive DVD games.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://get.videolan.org/libdvdnav/6.1.1/libdvdnav-6.1.1.tar.bz2
-
Download MD5 sum: 46c46cb0294fbd1fcb8a0181818dad15
-
Download size: 360 KB
-
Estimated disk space required: 3.7 MB
-
Estimated build time: less than 0.1 SBU
Libdvdnav Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libdvdnav
Installation of Libdvdnav
Install libdvdnav by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libdvdnav-6.1.1 &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libdvdnav.so
Installed Directories: /usr/include/dvdnav and /usr/share/doc/libdvdnav-6.1.1
Short Descriptions
libdvdnav.so is the DVD navigation library.
42.33 Libdv-1.0.0
Introduction to Libdv
The Quasar DV Codec (libdv) is a software CODEC for DV video, the encoding format used by most digital camcorders. It can be used to copy videos from camcorders using a firewire (IEEE 1394) connection.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/libdv/libdv-1.0.0.tar.gz
-
Download MD5 sum: f895162161cfa4bb4a94c070a7caa6c7
-
Download size: 574 KB
-
Estimated disk space required: 6.0 MB
-
Estimated build time: 0.2 SBU
Libdv Dependencies
Optional
popt-1.19, SDL-1.2.15, and a graphical environment
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libdv
Installation of Libdv
Install libdv by running the following commands:
./configure --prefix=/usr \
--disable-xv \
--disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/libdv-1.0.0 &&
install -v -m644 README* /usr/share/doc/libdv-1.0.0
Command Explanations
--disable-xv: This parameter is required if an X Window System is not installed. It also prevents configure testing for libXv which is only used for an obsolete program playdv that will not be built with current linux headers and would also need other obsolete dependencies.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: dubdv, dvconnect, and encodedv
Installed Library: libdv.so
Installed Directories: /usr/include/libdv and /usr/share/doc/libdv-1.0.0
Short Descriptions
dubdv inserts audio into a digital video stream.
dvconnect is a small utility to send or capture raw data from and to the camcorder.
encodedv encodes a series of images to a digital video stream.
libdv.so provides functions for programs interacting with the Quasar DV CODEC.
42.34 libmad-0.15.1b
Introduction to libmad
libmad is a high-quality MPEG audio decoder capable of 24-bit output.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz
-
Download (FTP): ftp://ftp.mars.org/pub/mpeg/libmad-0.15.1b.tar.gz
-
Download MD5 sum: 1be543bc30c56fb6bea1d7bf6a64e66c
-
Download size: 491 KB
-
Estimated disk space required: 4.2 MB
-
Estimated build time: 0.1 SBU
Additional Downloads
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libmad
Installation of libmad
Install libmad by running the following commands:
patch -Np1 -i ../libmad-0.15.1b-fixes-1.patch &&
sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@g" -i configure.ac &&
touch NEWS AUTHORS ChangeLog &&
autoreconf -fi &&
./configure --prefix=/usr --disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Some packages check for the pkg-config file for libmad. This file is particularly needed so that Cdrdao can recognize the installed libmad.
As the root user:
cat > /usr/lib/pkgconfig/mad.pc << "EOF"
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: mad
Description: MPEG audio decoder
Requires:
Version: 0.15.1b
Libs: -L${libdir} -lmad
Cflags: -I${includedir}
EOF
Command Explanations
touch NEWS AUTHORS ChangeLog: Prevent autoreconf from returning an error.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libmad.so
Installed Directories: None
Short Descriptions
libmad.so is a MPEG audio decoder library.
42.35 libmpeg2-0.5.1
Introduction to libmpeg2
The libmpeg2 package contains a library for decoding MPEG-2 and MPEG-1 video streams. The library is able to decode all MPEG streams that conform to certain restrictions: “constrained parameters” for MPEG-1, and “main profile” for MPEG-2. This is useful for programs and applications needing to decode MPEG-2 and MPEG-1 video streams.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://libmpeg2.sourceforge.net/files/libmpeg2-0.5.1.tar.gz
-
Download (FTP): ftp://ftp.mirrorservice.org/sites/distfiles.gentoo.org/distfiles/libmpeg2-0.5.1.tar.gz
-
Download MD5 sum: 0f92c7454e58379b4a5a378485bbd8ef
-
Download size: 513 KB
-
Estimated disk space required: 6 MB
-
Estimated build time: 0.1 SBU
libmpeg2 Dependencies
Optional
a graphical environment and SDL-1.2.15
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libmpeg2
Installation of libmpeg2
Install libmpeg2 by running the following commands:
sed -i 's/static const/static/' libmpeg2/idct_mmx.c &&
./configure --prefix=/usr \
--enable-shared \
--disable-static &&
make
To test the results, issue: make check. To perform a more comprehensive regression test, see the file test/README in the source tree.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/libmpeg2-0.5.1 &&
install -v -m644 README doc/libmpeg2.txt \
/usr/share/doc/libmpeg2-0.5.1
Command Explanations
sed -i …: This sed fixes problems with recent GCC compilers.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: corrupt_mpeg2, extract_mpeg2 and mpeg2dec
Installed Libraries: libmpeg2.so and libmpeg2convert.so
Installed Directories: /usr/include/mpeg2dec and /usr/share/doc/libmpeg2-0.5.1
Short Descriptions
extract_mpeg2 extracts MPEG video streams from a multiplexed stream.
mpeg2dec decodes MPEG1 and MPEG2 video streams.
libmpeg2.so contains API functions used to decode MPEG video streams.
libmpeg2convert.so contains API functions used for color conversions of MPEG video streams.
42.36 libmusicbrainz-2.1.5
Introduction to libmusicbrainz
The libmusicbrainz package contains a library which allows you to access the data held on the MusicBrainz server. This is useful for adding MusicBrainz lookup capabilities to other applications.
MusicBrainz is a community music metadatabase that attempts to create a comprehensive music information site. You can use the MusicBrainz data either by browsing the web site, or you can access the data from a client program — for example, a CD player program can use MusicBrainz to identify CDs and provide information about the CD, about the artist or other related information.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): http://ftp.musicbrainz.org/pub/musicbrainz/historical/libmusicbrainz-2.1.5.tar.gz
-
Download (FTP): ftp://ftp.musicbrainz.org/pub/musicbrainz/historical/libmusicbrainz-2.1.5.tar.gz
-
Download MD5 sum: d5e19bb77edd6ea798ce206bd05ccc5f
-
Download size: 524 KB
-
Estimated disk space required: 12 MB
-
Estimated build time: 0.4 SBU
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/libmusicbrainz-2.1.5-missing-includes-1.patch
libmusicbrainz Dependencies
Optional to Build the Python Bindings
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz
Installation of libmusicbrainz
Install libmusicbrainz by running the following commands:
patch -Np1 -i ../libmusicbrainz-2.1.5-missing-includes-1.patch &&
CXXFLAGS="${CXXFLAGS:--O2 -g} -std=c++98" \
./configure --prefix=/usr --disable-static &&
make
If Python is installed, build the bindings with the following commands:
(cd python && python2 setup.py build)
This package does not come with a stand-alone test suite (to test you must have Python installed and perform the test after the package is installed).
Now, as the root user:
make install &&
install -v -m644 -D docs/mb_howto.txt \
/usr/share/doc/libmusicbrainz-2.1.5/mb_howto.txt
To test the Python bindings, issue the following: (cd python && python2 setup.py test).
If you built the Python bindings, issue the following commands as the root user to install them:
(cd python && python2 setup.py install)
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libmusicbrainz.so
Installed Directories: /usr/include/musicbrainz and /usr/share/doc/libmusicbrainz-2.1.5
Short Descriptions
libmusicbrainz.so contains API functions to access the MusicBrainz database, both for looking up data and also for submitting new data.
42.37 libmusicbrainz-5.1.0
Introduction to libmusicbrainz
The libmusicbrainz package contains a library which allows you to access the data held on the MusicBrainz server.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/metabrainz/libmusicbrainz/releases/download/release-5.1.0/libmusicbrainz-5.1.0.tar.gz
-
Download MD5 sum: 4cc5556aa40ff7ab8f8cb83965535bc3
-
Download size: 76 KB
-
Estimated disk space required: 6.6 MB (additional 4.4 MB for the API documentation)
-
Estimated build time: 0.1 SBU
Additional Downloads
- Required patch: https://www.linuxfromscratch.org/patches/blfs/11.3/libmusicbrainz-5.1.0-cmake_fixes-1.patch
libmusicbrainz Dependencies
Required
CMake-3.25.2, libxml2-2.10.3 and neon-0.32.5
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libmusicbrainz5
Installation of libmusicbrainz
First, fix a problem caused by CMake-3.18.0:
patch -Np1 -i ../libmusicbrainz-5.1.0-cmake_fixes-1.patch
Install libmusicbrainz by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release .. &&
make
If you have installed Doxygen-1.9.6, optionally build the API documentation:
doxygen ../Doxyfile
This package does not come with a test suite.
Now, as the root user:
make install
If you have built the API documentation, install, as the root user:
rm -rf /usr/share/doc/libmusicbrainz-5.1.0 &&
cp -vr docs/ /usr/share/doc/libmusicbrainz-5.1.0
Contents
Installed Programs: None
Installed Library: libmusicbrainz5.so
Installed Directory: /usr/include/libmusicbrainz5 and /usr/share/doc/libmusicbrainz-5.1.0
Short Descriptions
libmusicbrainz5.so contains API functions for accessing the MusicBrainz database.
42.38 libogg-1.3.5
Introduction to libogg
The libogg package contains the Ogg file structure. This is useful for creating (encoding) or playing (decoding) a single physical bit stream.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.xz
-
Download MD5 sum: 3178c98341559657a15b185bf5d700a5
-
Download size: 420 KB
-
Estimated disk space required: 3.5 MB (with tests)
-
Estimated build time: less than 0.1 SBU (with tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libogg
Installation of libogg
Install libogg by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libogg-1.3.5 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libogg.so
Installed Directories: /usr/include/ogg and /usr/share/doc/libogg-1.3.5
Short Descriptions
libogg.so provides the functions required for programs to read or write Ogg formatted bit streams.
42.39 libquicktime-1.2.4
Introduction to libquicktime
The libquicktime package contains the libquicktime library, various plugins and codecs, along with graphical and command line utilities used for encoding and decoding QuickTime files. This is useful for reading and writing files in the QuickTime format. The goal of the project is to enhance, while providing compatibility with the Quicktime 4 Linux library.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/libquicktime/libquicktime-1.2.4.tar.gz
-
Download MD5 sum: 81cfcebad9b7ee7e7cfbefc861d6d61b
-
Download size: 1.0 MB
-
Estimated disk space required: 20 MB
-
Estimated build time: 0.7 SBU (includes building all codec modules)
libquicktime Dependencies
Optional
alsa-lib-1.2.8, Doxygen-1.9.6, FAAC-1_30, FAAD2-2.10.1, GTK+-2.24.33, LAME-3.100, libdv-1.0.0, libjpeg-turbo-2.1.5.1, libpng-1.6.39, libvorbis-1.3.7, x264-20230215, Xorg Libraries, and Schroedinger
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libquicktime
Installation of libquicktime
Install libquicktime by running the following commands:
./configure --prefix=/usr \
--enable-gpl \
--without-doxygen \
--without-ffmpeg \
--docdir=/usr/share/doc/libquicktime-1.2.4
make
This package does not come with a test suite.
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/libquicktime-1.2.4 &&
install -v -m644 README doc/{*.txt,*.html,mainpage.incl} \
/usr/share/doc/libquicktime-1.2.4
Command Explanations
--enable-gpl: Changes the licence to GPL. This enables some extra plugins, such as FAAC, FAAD2, and x264.
--without-doxygen: This is necessary if you do not have Doxygen, omit this if it is installed and you wish the API documentation installed.
--without-ffmpeg: This switch disables ffmpeg support because it is incompatible with ffmpeg-5.
--with-libdv: Build with libdv support. Not enabled by default.
Contents
Installed Programs: libquicktime_config, lqtplay, lqtremux, lqt_transcode, qt2text, qtdechunk, qtdump, qtinfo, qtrechunk, qtstreamize, and qtyuv4toyuv
Installed Libraries: libquicktime.so and several plugin codec libraries
Installed Directories: /usr/include/lqt, /usr/lib/libquicktime, and /usr/share/doc/libquicktime-1.2.4
Short Descriptions
libquicktime_config is a graphical front end to examine and configure the available libquicktime audio and video codecs.
lqtplay is a simple QuickTime movie player for X Window System.
lqt_transcode is a command-line program used to encode video and/or audio files from one format to another.
qt2text is used to dump all text strings from a quicktime file.
qtdechunk can take movies containing rgb frames and write them out as ppm images.
qtdump displays the parsed contents of the provided file.
qtinfo prints various pieces of metadata parsed by the libquicktime library for the provided file.
qtrechunk concatenates input frames into a QuickTime movie.
qtstreamize is used to make a file streamable by placing the moov header at the beginning of the file.
qtyuv4toyuv is used to write a YUV4 encoded movie as a planar YUV 4:2:0 file.
libquicktime.so is a library for reading and writing QuickTime files. It provides convenient access to QuickTime files with a variety of supported codecs. The library contains new functions integrated with all the original QuickTime 4 Linux library functions used to encode and decode QuickTime files.
42.40 libsamplerate-0.2.2
Introduction to libsamplerate
libsamplerate is a sample rate converter for audio.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/libsndfile/libsamplerate/releases/download/0.2.2/libsamplerate-0.2.2.tar.xz
-
Download MD5 sum: 97c010fc25156c33cddc272c1935afab
-
Download size: 3.2 MB
-
Estimated disk space required: 15 MB (add 2 MB for tests)
-
Estimated build time: less than 0.1 SBU (add 0.3 SBU for tests)
libsamplerate Dependencies
Optional
alsa-lib-1.2.8, libsndfile-1.2.0, and fftw-3.3.10 (for tests)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libsamplerate
Installation of libsamplerate
Install libsamplerate by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/libsamplerate-0.2.2 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Program: None
Installed Library: libsamplerate.so
Installed Directory: /usr/share/doc/libsamplerate-0.2.2
42.41 libsndfile-1.2.0
Introduction to libsndfile
Libsndfile is a library of C routines for reading and writing files containing sampled audio data.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/libsndfile/libsndfile/releases/download/1.2.0/libsndfile-1.2.0.tar.xz
-
Download MD5 sum: 00fbf50ce1d7a67a8e6dc0a04f4d8d2e
-
Download size: 716 KB
-
Estimated disk space required: 12 MB (add 10 MB for tests)
-
Estimated build time: 0.3 SBU (add 0.2 SBU for tests)
libsndfile Dependencies
Recommended
FLAC-1.4.2, Opus-1.3.1, and libvorbis-1.3.7
Optional
alsa-lib-1.2.8, LAME-3.100, mpg123-1.31.2, Speex-1.2.1, and SQLite-3.40.1
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libsndfile
Installation of libsndfile
Install libsndfile by running the following commands:
./configure --prefix=/usr \
--docdir=/usr/share/doc/libsndfile-1.2.0 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Contents
Installed Programs: sndfile-cmp, sndfile-concat, sndfile-convert, sndfile-deinterleave, sndfile-info, sndfile-interleave, sndfile-metadata-get, sndfile-metadata-set, sndfile-play, and sndfile-salvage
Installed Library: libsndfile.so
Installed Directory: /usr/share/doc/libsndfile-1.2.0
Short Descriptions
sndfile-cmp compares two audio files.
sndfile-concat concatenates two or more audio files.
sndfile-convert converts a sound files from one format to another.
sndfile-deinterleave splits a multi-channel into multiple single channel files.
sndfile-info displays information about a sound file.
sndfile-interleave converts multiple single channel files into a multi-channel file.
sndfile-metadata-get retrieves metadata from a sound file.
sndfile-metadata-set sets metadata in a sound file.
sndfile-play plays a sound file.
sndfile-salvage Salvages the audio data from WAV files which are more than 4G in length.
libsndfile.so contains the libsndfile API functions.
42.42 libtheora-1.1.1
Introduction to libtheora
libtheora is a reference implementation of the Theora video compression format being developed by the Xiph.Org Foundation.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.xz
-
Download MD5 sum: 9eeabf1ad65b7f41533854a59f7a716d
-
Download size: 1.4 MB
-
Estimated disk space required: 13.4 MB (without static libs or API docs and without installing the examples)
-
Estimated build time: 0.2 SBU
libtheora Dependencies
Required
Recommended
Optional
SDL-1.2.15 and libpng-1.6.39 (both to build the example players), Doxygen-1.9.6, texlive-20220321 (or install-tl-unx), BibTex, and Transfig (all four to build the API documentation), and Valgrind-3.20.0
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Libtheora
Installation of libtheora
Install libtheora by running the following commands:
sed -i 's/png_\(sizeof\)/\1/g' examples/png2theora.c &&
./configure --prefix=/usr --disable-static &&
make
If you wish to run the tests, issue: make check.
Now, as the root user:
make install
If you wish to install the examples (so that you can hack on theora), install them as the root user:
cd examples/.libs &&
for E in *; do
install -v -m755 $E /usr/bin/theora_${E}
done
Command Explanations
sed -i ‘s/png_(sizeof)/\1/g’ examples/png2theora.c: This sed fixes build with libpng 1.6.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None, unless you installed the examples
Installed Libraries: libtheora.so, libtheoraenc.so, and libtheoradec.so
Installed Directories: /usr/include/theora and /usr/share/doc/libtheora-1.1.1
Short Descriptions
libtheora*.so contains the functions to read and write video files.
42.43 libvorbis-1.3.7
Introduction to libvorbis
The libvorbis package contains a general purpose audio and music encoding format. This is useful for creating (encoding) and playing (decoding) sound in an open (patent free) format.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz
-
Download MD5 sum: 50902641d358135f06a8392e61c9ac77
-
Download size: 1.1 MB
-
Estimated disk space required: 15 MB
-
Estimated build time: 0.1 SBU
libvorbis Dependencies
Required
Optional
Doxygen-1.9.6 and texlive-20220321 (or install-tl-unx) (specifically, pdflatex and htlatex) to build the PDF documentation
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Libvorbis
Installation of libvorbis
Install libvorbis by running the following commands:
./configure --prefix=/usr --disable-static &&
make
To test the results, issue: make -j1 check.
Now, as the root user:
make install &&
install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.3.7
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
--enable-docs: This switch enables building the documentation in formats other than the supplied html.
Contents
Installed Programs: None
Installed Libraries: libvorbis.so, libvorbisenc.so and libvorbisfile.so
Installed Directories: /usr/include/vorbis and /usr/share/doc/libvorbis-1.3.7
Short Descriptions
libvorbis.so provides the functions used to read and write sound files.
42.44 libvpx-1.13.0
Introduction to libvpx
This package, from the WebM project, provides the reference implementations of the VP8 Codec, used in most current html5 video, and of the next-generation VP9 Codec.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/webmproject/libvpx/archive/v1.13.0/libvpx-1.13.0.tar.gz
-
Download MD5 sum: d5fd45a806a65a57d6635f9e7a98a1b2
-
Download size: 5.2 MB
-
Estimated disk space required: 63 MB (add 1.5 GB for tests)
-
Estimated build time: 0.5 SBU (Using parallelism=4; add approx 15 SBU for tests using parallelism=4, including download time)
libvpx Dependencies
Recommended
yasm-1.3.0 or NASM-2.16.01, and Which-2.21 (so configure can find yasm)
Optional
cURL-7.88.1 (to download test files) and Doxygen-1.9.6 (to build documentation)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/libvpx
Installation of libvpx
Install libvpx by running the following commands:
sed -i 's/cp -p/cp/' build/make/Makefile &&
mkdir libvpx-build &&
cd libvpx-build &&
../configure --prefix=/usr \
--enable-shared \
--disable-static &&
make
To test the results, issue: LD_LIBRARY_PATH=. make test. The test suite downloads many files as part of its test process. A few parts of it will use all available cores.
Now, as the root user:
make install
Command Explanations
sed … : This command corrects ownership and permissions of installed files.
mkdir libvpx-build && cd libvpx-build: The libvpx developers recommend building in a dedicated build directory.
--disable-static: This switch prevents installation of static versions of the libraries.
--disable-vp8: This switch prevents building of VP8 codec support.
--disable-vp9: This switch prevents building of VP9 codec support.
--target=generic-gnu: This switch disables optimizations specific for x86 and x86-64, allowing to build this package without nasm and yasm installed.
LD_LIBRARY_PATH=.: This is needed for the test suite to use the library that was just built.
Contents
Installed Programs: vpxdec and vpxenc
Installed Libraries: libvpx.so
Installed Directories: /usr/include/vpx
Short Descriptions
vpxdec is the WebM Project VP8 and VP9 decoder.
vpxenc is the WebM project VP8 and VP9 encoder.
libvpx.so provides functions to use the VP8 and VP9 video codecs.
42.45 MLT-7.12.0
Introduction to MLT
MLT package is the Media Lovin Toolkit. It is an open source multimedia framework, designed and developed for television broadcasting. It provides a toolkit for broadcasters, video editors, media players, transcoders, web streamers and many more types of applications.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/mltframework/mlt/releases/download/v7.12.0/mlt-7.12.0.tar.gz
-
Download MD5 sum: 63e863f7653c098ece96ac8f6785fd38
-
Download size: 1.4 MB
-
Estimated disk space required: 26 MB
-
Estimated build time: 0.4 SBU
MLT Dependencies
Required
frei0r-plugins-1.8.0 and Qt-5.15.8
Optional
Doxygen-1.9.6, fftw-3.3.10, libexif-0.6.24, SDL-1.2.15, SDL2-2.26.3, JACK, MOVEit, SoX, and vid.stab
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/mlt
Installation of MLT
Install MLT by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-Wno-dev .. &&
make
This package does not come with a test suite. However a test .mp4 file can be played in a local graphical environment with **./src/melt/melt
Note
This application uses advanced graphical capabilities. In some cases, firmware for your specific graphics adaptor may be needed. See the section called “Firmware for Video Cards” for more information.
Now, as the root user:
make install
Contents
Installed Program: melt-7 and melt (symlink to melt-7)
Installed Libraries: libmlt-7.so, libmlt++-7.so, and over twenty plugins
Installed Directories: /usr/include/mlt-7, /usr/lib/mlt-7, /usr/lib/cmake/Mlt7, and /usr/share/mlt-7
Short Descriptions
melt is a test tool for MLT.
42.46 Opus-1.3.1
Introduction to Opus
Opus is a lossy audio compression format developed by the Internet Engineering Task Force (IETF) that is particularly suitable for interactive speech and audio transmission over the Internet. This package provides the Opus development library and headers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
-
Download MD5 sum: d7c07db796d21c9cf1861e0c2b0c0617
-
Download size: 1.0 MB
-
Estimated disk space required: 26 MB (with tests)
-
Estimated build time: 0.8 SBU (with tests)
Optional
Doxygen-1.9.6 and texlive-20220321 (or install-tl-unx)
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/Opus
Installation of Opus
Install Opus by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/opus-1.3.1 &&
make
To test the results, issue: make check.
Now, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: None
Installed Library: libopus.so
Installed Directory: /usr/include/opus and /usr/share/doc/opus-1.3.1
Short Descriptions
libopus.so provides the functions used to read and write Opus format.
42.47 Pipewire-0.3.66
Introduction to Pipewire
The pipewire package contains a server and userspace API to handle multimedia pipelines. This includes a universal API to connect to multimedia devices, as well as sharing multimedia files between applications.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://github.com/PipeWire/pipewire/archive/0.3.66/pipewire-0.3.66.tar.gz
-
Download MD5 sum: 8a85d990c159409578b456f8c8dcf075
-
Download size: 1.9 MB
-
Estimated disk space required: 62 MB (with tests)
-
Estimated build time: 0.5 SBU (with tests, both using parallelism=4)
Pipewire Dependencies
Recommended
BlueZ-5.66, gstreamer-1.22.0, gst-plugins-base-1.22.0, PulseAudio-16.1, SBC-2.0, and v4l-utils-1.22.1
Optional
alsa-lib-1.2.8, Avahi-0.8, BlueZ-5.66, fdk-aac-2.0.2, FFmpeg-5.1.2, libcanberra-0.30, libdrm-2.4.115 (for one example and libcamera support), libxcb-1.15, libsndfile-1.2.0, libusb-1.0.26, Opus-1.3.1, SDL2-2.26.3 (for some examples), Valgrind-3.20.0, Xorg Libraries, Doxygen-1.9.6 and Graphviz-7.1.0 (for documentation), JACK, ldacBT, libcamera, Vulkan, WirePlumber (runtime, for running Pipewire daemon), and xmltoman
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pipewire
Installation of Pipewire
Install pipewire by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr --buildtype=release -Dsession-managers= .. &&
ninja
To test the result, issue: ninja test. One test named test-support is known to fail.
Now, as the root user:
ninja install
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dsession-managers=: This switch prevents automatic downloading external dependencies.
-Ddocs=true: This switch enables the generation of HTML documentation. The optional dependencies for documentation need to be installed for this to work.
-Dman=true: This switch enables the generation of manual pages. The optional dependencies for documentation need to be installed for this to work.
-Dffmpeg=enabled: This switch enables using ffmpeg for audio conversion as a SPA backend.
Contents
Installed Programs: pipewire, pipewire-avb, pipewire-pulse, pw-cat, pw-cli, pw-dot, pw-dump, pw-jack, pw-link, pw-loopback, pw-metadata, pw-mididump, pw-mon, pw-profiler, pw-reserve, pw-top, pw-v4l2, spa-acp-tool, spa-inspect, spa-json-dump, spa-monitor, spa-resample, and pw-dsdplay, pw-midiplay, pw-midirecord, pw-play, and pw-record (symlinks to pw-cat)
Installed Libraries: libpipewire-0.3.so and 56 modules below /usr/lib/pipewire-0.3 and /usr/lib/spa-0.2
Installed Directories: /usr/include/pipewire-0.3, /usr/include/spa-0.2, /usr/lib/alsa-lib, /usr/lib/pipewire-0.3, /usr/lib/spa-0.2, /usr/share/alsa-card-profile, /usr/share/pipewire, and /usr/share/spa-0.2
Short Descriptions
pipewire is a service that allows access to multimedia devices and allows sharing of multimedia files between applications.
pipewire-media-session is a service that allows a desktop environment to know when media files are being played through pipewire.
pipewire-pulse starts a Pulseaudio-compatible version of the pipewire service.
pw-cat allows you to play or record media using a pipewire instance.
pw-cli allows you to interact with a pipewire instance.
pw-dot lists all of the daemons and objects in use by pipewire.
pw-dump dumps debug messages from a local or remote pipewire instance to the console.
pw-jack runs JACK applications on a pipewire instance.
pw-link links pipewire ports together.
pw-loopback initializes a loopback link between two different pipewire ports. This is useful for testing and debugging.
pw-metadata inspects, adds, and removes metadata for objects.
pw-mididump dumps MIDI messages from a file to the screen.
pw-mon allows you to monitor pipewire instances.
pw-profiler tracks memory usage and API calls used by pipewire.
pw-reserve reserves or monitors a device via D-Bus.
pw-top displays real-time performance information from pipewire.
pw-v4l2 runs v4l2 applications on a pipewire instance.
spa-acp-tool inspects the card profile of a given sound card.
spa-inspect allows you to inspect pipewire plugins.
spa-json-dump dumps the current pipewire configuration in JSON format.
spa-monitor allows you to monitor pipewire plugins.
spa-resample resamples a given file.
libpipewire-0.3.so contains API functions for handling multimedia pipelines.
42.48 PulseAudio-16.1
Introduction to PulseAudio
PulseAudio is a sound system for POSIX OSes, meaning that it is a proxy for sound applications. It allows you to do advanced operations on your sound data as it passes between your application and your hardware. Things like transferring the audio to a different machine, changing the sample format or channel count and mixing several sounds into one are easily achieved using a sound server.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-16.1.tar.xz
-
Download MD5 sum: 2c7b8ceb5d7337565c7314b4d6087ca8
-
Download size: 1.5 MB
-
Estimated disk space required: 42 MB (with tests)
-
Estimated build time: 0.2 SBU (Using parallelism=4; add 0.2 SBU for tests)
PulseAudio Dependencies
Required
Recommended
alsa-lib-1.2.8, dbus-1.14.6, GLib-2.74.5, Speex-1.2.1 and Xorg Libraries
Optional
Avahi-0.8 BlueZ-5.66, Doxygen-1.9.6 (for documentation), fftw-3.3.10, GTK+-3.24.36, libsamplerate-0.2.2, SBC-2.0 (Bluetooth support), Valgrind-3.20.0, JACK, libasyncns, LIRC, ORC, soxr, TDB, and WebRTC AudioProcessing
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/pulseaudio
Installation of PulseAudio
Install PulseAudio by running the following commands:
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Ddatabase=gdbm \
-Ddoxygen=false \
-Dbluez5=disabled &&
ninja
To test the results, issue: ninja test. One test fails if the tests are not run as the root user, but this can be ignored.
Now, as the root user:
ninja install
Running PulseAudio as a system-wide daemon is possible but not recommended. See https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/ for more information. While still as the root user, remove the D-Bus configuration file for the system wide daemon to avoid creating unnecessary system users and groups:
rm -fv /etc/dbus-1/system.d/pulseaudio-system.conf
Command Explanations
--buildtype=release: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.
-Dbluez5=disabled: This switch prevents a runtime error if dbus-1.14.6 and SBC-2.0 are both installed but BlueZ-5.66 is not installed. Remove this if you have installed all three packages.
-Ddoxygen=false: This allows the package to compile if Doxygen-1.9.6 is not installed. Remove this if you have installed this and wish to build the documentation.
Configuring PulseAudio
Config Files
There are system wide configuration files: /etc/pulse/daemon.conf, /etc/pulse/client.conf, /etc/pulse/default.pa, and user configuration files with the same names in ~/.config/pulse. User configuration files take precedence over system wide ones.
Configuration Information
You may have to configure the audio system. You can start pulseaudio in command line mode using pulseaudio -C and then list various information and change settings. See man pulse-cli-syntax.
If pulseaudio was working but you no-longer have sound, after checking for hardware issues (speakers or headphones not connected, external amplifier not connected) you may need to fix it.
One suggestion is to close the application, such as firefox where sound has stopped working, then run: pactl list short sinks followed by: pacmd set-default-sink <sink #> and then restart the application.
If that does not work, a more drastic approach often works. After closing the application, close pulseaudio, either using pulseaudio –kill or, if that fails, killall -KILL pulseaudio and then rm -rf ~/.config/pulse/* (and perhaps also rm -rf ~/.pulse/* if you have used a very old version of pulse on this machine), then run pulseaudio –verbose to restart it. If the daemon starts, restart the application. See man pulseaudio for more options.
Contents
Installed Programs: pacat, pacmd, pactl, padsp, pamon (symlink to pacat), paplay (symlink to pacat), parec (symlink to pacat), parecord (symlink to pacat), qpaeq, pasuspender, pax11publish, pulseaudio, and start-pulseaudio-x11
Installed Libraries: libpulse.so, libpulse-mainloop-glib.so, libpulse-simple.so, libpulsecommon-16.1.so, libpulsecore-16.1.so, and libpulsedsp.so
Installed Directories: /etc/pulse, /usr/include/pulse, /usr/lib/cmake/PulseAudio, /usr/lib/{pulseaudio,pulse-16.1}, /usr/libexec/pulse, and /usr/share/pulseaudio
Short Descriptions
pacat plays back or records raw or encoded audio streams on a PulseAudio sound server.
pacmd is a tool used to reconfigure a PulseAudio sound server during runtime.
pactl is used to control a running PulseAudio sound server.
padsp is the PulseAudio OSS Wrapper.
pamon is a symbolic link to pacat.
paplay is used to play audio files on a PulseAudio sound server.
parec is a symbolic link to pacat.
parecord is a symbolic link to pacat.
pasuspender is a tool that can be used to tell a local PulseAudio sound server to temporarily suspend access to the audio devices, to allow other applications to access them directly.
pax11publish is the PulseAudio X11 Credential Utility.
pa-info is a shell script that prints various information relating to the Pulseaudio server currently in use.
pulseaudio is a networked low-latency sound server for Linux.
qpaeq is an equalizer interface for PulseAudio equalizer sinks (Requires fftw-3.3.10 at build time).
start-pulseaudio-x11 starts PulseAudio and registers it to the X11 session manager.
42.49 SBC-2.0
Introduction to SBC
The SBC is a digital audio encoder and decoder used to transfer data to Bluetooth audio output devices like headphones or loudspeakers.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.kernel.org/pub/linux/bluetooth/sbc-2.0.tar.xz
-
Download MD5 sum: 5613357181daeffd71e971c6f8470f8d
-
Download size: 268 KB
-
Estimated disk space required: 2.8 MB
-
Estimated build time: less than 0.1 SBU
SBC Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/sbc
Installation of SBC
Install SBC by running the following commands:
./configure --prefix=/usr --disable-static --disable-tester &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-tester: This disables the SBC tester. Remove it if you have installed libsndfile-1.2.0.
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: sbcdec, sbcenc, and sbcinfo
Installed Library: libsbc.so
Installed Directory: /usr/include/sbc
Short Descriptions
sbcdec is a SBC decoder utility.
sbcenc is a SBC encoder utility.
sbcinfo is a subband codec (SBC) analyzer.
libsbc.so contains the SBC API functions.
42.50 SDL-1.2.15
Introduction to SDL
The Simple DirectMedia Layer (SDL for short) is a cross-platform library designed to make it easy to write multimedia software, such as games and emulators.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.libsdl.org/release/SDL-1.2.15.tar.gz
-
Download MD5 sum: 9d96df8417572a2afb781a7c4c811a85
-
Download size: 3.8 MB
-
Estimated disk space required: 40 MB
-
Estimated build time: 0.6 SBU
SDL Dependencies
Recommended
Xorg Libraries (if they are not present, the corresponding modules are not built)
Optional
AAlib-1.4rc5, ALSA-1.2.7, GLU-9.0.2, NASM-2.16.01, PulseAudio-16.1, Pth-2.0.7, a graphical environment, DirectFB, GGI, libcaca, PicoGUI, and SVGAlib
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/sdl
Installation of SDL
Install SDL by running the following commands:
sed -e '/_XData32/s:register long:register _Xconst long:' \
-i src/video/x11/SDL_x11sym.h &&
./configure --prefix=/usr --disable-static &&
make
Now, as the root user:
make install &&
install -v -m755 -d /usr/share/doc/SDL-1.2.15/html &&
install -v -m644 docs/html/*.html \
/usr/share/doc/SDL-1.2.15/html
Testing SDL
If you wish to, test the installation of SDL using the included test programs. It is not required to install any of the resulting binaries to validate the installation. Issue the following commands to build the test programs:
cd test &&
./configure &&
make
You’ll need to manually run all the test programs (they are listed in the README file in this directory). Many of them will need to be manually killed, and you’ll need to turn your speakers on with the volume at a suitable level.
Command Explanations
sed -e …: This command fixes compilation with libX11-1.6.0 and later.
--disable-static: This switch prevents installation of static versions of the libraries.
--disable-alsa-shared: This switch disables dynamically loading ALSA shared libraries.
--disable-sdl-dlopen: This switch disables using dlopen for shared object loading. Loading image backend libraries like libpng dynamically on the fly does not work.
--disable-x11-shared: This switch disables dynamically loading X11 shared libraries.
Configuring SDL
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.
Contents
Installed Program: sdl-config
Installed Libraries: libSDL.so and libSDLmain.a
Installed Directories: /usr/include/SDL and /usr/share/doc/SDL-1.2.15
Short Descriptions
sdl-config determines the compile and linker flags that should be used to compile and link programs that use libSDL.
libSDL.so contains functions that provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D frame buffer across multiple platforms.
42.51 SDL2-2.26.3
Introduction to SDL2
The Simple DirectMedia Layer Version 2 (SDL2 for short) is a cross-platform library designed to make it easy to write multimedia software, such as games and emulators.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.libsdl.org/release/SDL2-2.26.3.tar.gz
-
Download MD5 sum: 6ff7cbe9f77fc5afa79d54895dc6becc
-
Download size: 7.7 MB
-
Estimated disk space required: 186 MB (with docs)
-
Estimated build time: 0.5 SBU (using parallelism=4; with docs)
SDL2 Dependencies
Recommended
libxkbcommon-1.5.0, wayland-protocols-1.31, and Xorg Libraries (if those are not present, the corresponding modules are not built)
Optional
ALSA-1.2.7, Doxygen-1.9.6 (to create documentation), ibus-1.5.27, NASM-2.16.01, PulseAudio-16.1, libsamplerate-0.2.2, a graphical environment, DirectFB, fcitx, and jack
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/sdl
Installation of SDL2
Install SDL2 by running the following commands:
./configure --prefix=/usr &&
make
If you have Doxygen-1.9.6 installed and want to build the html documentation, run the following commands:
pushd docs &&
doxygen &&
popd
Note
If you wish to build and run the package regression tests, do not delete the static libraries below until after the tests are built.
Now, as the root user:
make install &&
rm -v /usr/lib/libSDL2*.a
If you built the documentation, install it as the root user:
install -v -m755 -d /usr/share/doc/SDL2-2.26.3/html &&
cp -Rv docs/output/html/* /usr/share/doc/SDL2-2.26.3/html
Testing SDL2
If you wish to, test the installation of SDL2 using the included test programs. None of the resulting binaries need to be installed. Issue the following commands to build the test programs:
cd test &&
./configure &&
make
Each of the test programs (they are listed in the README file in this directory) will need to be run individually. Many of them will need to be manually killed. Additionally, speakers need to be on with the volume at a suitable level.
Command Explanations
rm -v /usr/lib/libSDL2*.a: Normally static libraries can be disabled with a --disable-static option to configure, but that breaks the build in this package.
--disable-alsa-shared: This switch disables dynamically loading ALSA shared libraries.
--disable-sdl-dlopen: This switch disables using dlopen for shared object loading. Loading image backend libraries like libpng dynamically on the fly does not work.
--disable-x11-shared: This switch disables dynamically loading X11 shared libraries.
Configuring SDL2
Configuration Information
As with most libraries, there is no configuration to do, save that the library directory, i.e., /opt/lib or /usr/local/lib should appear in /etc/ld.so.conf so that ldd can find the shared libraries. After checking that this is the case, /sbin/ldconfig should be run while logged in as root.
Contents
Installed Program: sdl2-config
Installed Libraries: libSDL2.so
Installed Directories: /usr/include/SDL2, /usr/lib/cmake/SDL2, and /usr/share/doc/SDL-2.26.3
Short Descriptions
sdl2-config determines the compile and linker flags that should be used to compile and link programs that use libSDL2.
libSDL2.so contains functions that provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D frame buffer across multiple platforms.
42.52 sound-theme-freedesktop-0.8
Introduction to Sound Theme Freedesktop
The Sound Theme Freedesktop package contains sound themes for the desktop.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://people.freedesktop.org/~mccann/dist/sound-theme-freedesktop-0.8.tar.bz2
-
Download MD5 sum: d7387912cfd275282d1ec94483cb2f62
-
Download size: 472 KB
-
Estimated disk space required: 2 MB
-
Estimated build time: less than 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/sound-theme-freedesktop
Installation of Sound Theme Freedesktop
Install Sound Theme Freedesktop by running the following commands:
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Programs: None
Installed Libraries: None
Installed Directories: /usr/share/sounds/freedesktop
42.53 SoundTouch-2.3.2
Introduction to SoundTouch
The SoundTouch package contains an open-source audio processing library that allows changing the sound tempo, pitch and playback rate parameters independently from each other.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.surina.net/soundtouch/soundtouch-2.3.2.tar.gz
-
Download MD5 sum: 058db201df6151e3cbd07dc8929885c4
-
Download size: 572 KB
-
Estimated disk space required: 7.5 MB
-
Estimated build time: 0.1 SBU
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/soundtouch
Installation of SoundTouch
Note
The tarball expands to ‘soundtouch’ instead of the expected ‘soundtouch-2.3.2’
Install SoundTouch by running the following commands:
Caution
The bootstrap command below fails if the ACLOCAL environment variable is set as specified in Xorg-7. If it is used, ACLOCAL needs to be unset for this package and then reset for other packages.
./bootstrap &&
./configure --prefix=/usr \
--docdir=/usr/share/doc/soundtouch-2.3.2 &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--enable-openmp: This switch adds support for running the algorithms in parallel across several processor cores using OpenMP implementation provided by GCC.
Contents
Installed Program: soundstretch
Installed Library: libSoundTouch.so
Installed Directories: /usr/include/soundtouch and /usr/share/doc/soundtouch-2.3.2
Short Descriptions
soundstretch is a program for processing WAV audio files by modifying sound tempo, pitch and playback rate properties independently from each other.
libSoundTouch.so contains SoundTouch API functions.
42.54 Speex-1.2.1
Introduction to Speex
Speex is an audio compression format designed specifically for speech. It is well-adapted to internet applications and provides useful features that are not present in most other CODECs.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.xiph.org/releases/speex/speex-1.2.1.tar.gz
-
Download MD5 sum: fe7bf610883ff202092b92c72fe0fe3e
-
Download size: 1020 KB
-
Estimated disk space required: 7.8 MB
-
Estimated build time: less than 0.1 SBU
Additional Downloads
-
Download (HTTP): https://downloads.xiph.org/releases/speex/speexdsp-1.2.1.tar.gz
-
Download MD5 sum: e6eb5ddef743a362c8018f260b91dca5
-
Download size: 904 KB
-
Estimated disk space required: 5.5 MB
-
Estimated build time: less than 0.1 SBU
Speex Dependencies
Required
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/speex
Installation of Speex
This package consists of two separate tarballs. They need to be extracted and built independently.
Install Speex by running the following commands:
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/speex-1.2.1 &&
make
This package does not come with a test suite.
As the root user:
make install
Now extract and install the speexdsp package:
cd .. &&
tar -xf speexdsp-1.2.1.tar.gz &&
cd speexdsp-1.2.1 &&
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/speexdsp-1.2.1 &&
make
Again, as the root user:
make install
Command Explanations
--disable-static: This switch prevents installation of static versions of the libraries.
Contents
Installed Programs: speexenc and speexdec
Installed Libraries: libspeex.so and libspeexdsp.so
Installed Directories: /usr/include/speex and /usr/share/doc/speex-1.2.1
Short Descriptions
speexdec decodes a Speex file and produces a WAV or raw file.
speexenc encodes a WAV or raw file using Speex.
libspeex.so provides functions for the audio encoding/decoding programs.
libspeexdsp.so is a speech processing library that goes along with the Speex codec.
42.55 Taglib-1.13
Introduction to Taglib
Taglib is a library used for reading, writing and manipulating audio file tags and is used by applications such as Amarok and VLC.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://taglib.org/releases/taglib-1.13.tar.gz
-
Download MD5 sum: 0b75619b67b9149cfcbbe5c127df6395
-
Download size: 1.3 MB
-
Estimated disk space required: 13 MB
-
Estimated build time: 0.3 SBU
Taglib Dependencies
Required
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/taglib
Installation of Taglib
Install Taglib by running the following commands:
mkdir build &&
cd build &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
.. &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Contents
Installed Programs: taglib-config
Installed Libraries: libtag.so and libtag_c.so
Installed Directories: /usr/include/taglib
Short Descriptions
taglib-config is a tool used to print information about the taglib installation.
42.56 v4l-utils-1.22.1
Introduction to v4l-utils
v4l-utils provides a series of utilities for media devices, allowing to handle the proprietary formats available at most webcams (libv4l), and providing tools to test V4L devices.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://www.linuxtv.org/downloads/v4l-utils/v4l-utils-1.22.1.tar.bz2
-
Download MD5 sum: 8aa73287320a49e9170a8255d7b2c7e6
-
Download size: 2.0 MB
-
Estimated disk space required: 117 MB
-
Estimated build time: 0.5 SBU (using parallelism=4)
v4l-utils Dependencies
Required
LLVM-15.0.7 (with target BPF)
Recommended
alsa-lib-1.2.8, GLU-9.0.2, libjpeg-turbo-2.1.5.1, and Qt-5.15.8
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/v4l-utils
Installation of v4l-utils
Install v4l-utils by running the following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--disable-static &&
make
This package does not come with a test suite.
Now, as the root user:
make -j1 install
Contents
Installed Programs: cec-compliance, cec-ctl, cec-follower, cx18-ctl, decode_tm6000, dvb-fe-tool, dvb-format-convert, dvbv5-daemon, dvbv5-scan, dvbv5-zap, ir-ctl, ir-keytable, ivtv-ctl, media-ctl, qv4l2, qvidcap, rds-ctl, v4l2-compliance, v4l2-ctl, v4l2-dbg, and v4l2-sysfs-path
Installed Library: libdvbv5.so, libv4l1.so, libv4l2.so, libv4l2rds.so, libv4lconvert.so, v4l1compat.so, and v4l2convert.so
Installed Directories: /etc/rc_keymaps, /lib/udev/rc_keymaps, /usr/include/libdvbv5, and /usr/lib/libv4l
Short Descriptions
cx18-ctl is a tool to handle cx18 based devices.
decode_tm6000 decodes multiplexed formats from TM5600/TM6000 USB devices.
dvb-fe-tool is a command line tool for digital TV services.
dvb-format-convert is a tool meant to convert among different file formats. It is compliant with version 5 of the DVB API.
dvbv5-scan is a command line frequency scanning tool for digital TV services that are compliant with version 5 of the DVB API.
dvbv5-zap is a command line tuning tool for digital TV services that is compliant with version 5 of the DVB API.
ir-keytable is a tool that lists the Remote Controller devices, allows one to get/set IR keycode/scancode tables, test events generated by IR, and to adjust other Remote Controller options.
ivtv-ctl is a utility that can control many card settings, like changing the inputs from tuner to svideo or composite, setting video resolution or changing video mode (PAL, SECAM, NTSC).
media-ctl is a utility used to configure V4L2 devices.
qv4l2 is used to test video4linux capture devices.
qvidcap is used to capture video from a V4L2 device.
rds-ctl is a utility for decoding raw RDS data from V4L2 Radio devices and offers simple ways to access the received RDS information.
v4l2-compliance is a compliance test tool.
v4l2-ctl is a tool to control v4l2 controls from the cmdline.
v4l2-dbg is a tool to directly get and set registers of v4l2 devices.
v4l2-sysfs-path checks the media devices installed on a machine and the corresponding device nodes.
42.57 x264-20230215
Introduction to x264
x264 package provides a library for encoding video streams into the H.264/MPEG-4 AVC format.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://anduin.linuxfromscratch.org/BLFS/x264/x264-20230215.tar.xz
-
Download MD5 sum: 24eb4eae0d6358f31228c9ff86046c6f
-
Download size: 673 KB
-
Estimated disk space required: 14 MB
-
Estimated build time: 0.3 SBU (Using parallelism=4)
x264 Dependencies
Recommended
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/x264
Installation of x264
Install x264 by running the following commands:
./configure --prefix=/usr \
--enable-shared \
--disable-cli &&
make
This package does not come with a test suite.
Now, as the root user:
make install
Command Explanations
--disable-cli: This switch disables building the command-line encoder which is redundant since it requires FFmpeg for most of the input formats.
--disable-asm: Use this switch if you didn’t install NASM.
Contents
Installed Programs: None
Installed Library: libx264.so
Installed Directory: None
Short Descriptions
libx264.so provides the functions used to encode video streams into the H.264/MPEG-4 AVC format.
42.58 x265-20230215
Introduction to x265
x265 package provides a library for encoding video streams into the H.265/HEVC format.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://anduin.linuxfromscratch.org/BLFS/x265/x265-20230215.tar.xz
-
Download MD5 sum: e735837f5e3fa95889e0a72eca39fccf
-
Download size: 1.0 MB
-
Estimated disk space required: 52 MB
-
Estimated build time: 0.9 SBU (using parallelism=4)
x265 Dependencies
Required
Recommended
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/x265
Installation of x265
Install x265 by running the following commands:
mkdir bld &&
cd bld &&
cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DGIT_ARCHETYPE=1 \
-Wno-dev ../source &&
make
This package does not come with a test suite.
Now, as the root user:
make install &&
rm -vf /usr/lib/libx265.a
Command Explanations
-DGIT_ARCHETYPE=1: Upstream no longer provides releases. BLFS is using a git snapshot, but if the builder has not installed git the build will not install the shared library or the pkgconfig file without this switch.
-Wno-dev: This switch is used to suppress warnings intended for the package’s developers.
rm -vf /usr/lib/libx265.a: BLFS does not recommend using static libraries.
Contents
Installed Program: x265
Installed Library: libx265.so
Installed Directories: None
Short Descriptions
libx265.so provides the functions used to encode video streams into the H.265/HEVC format.
42.59 xine-lib-1.2.13
Introduction to Xine Libraries
The Xine Libraries package contains xine libraries. These are useful for interfacing with external plug-ins that allow the flow of information from the source to the audio and video hardware.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.sourceforge.net/xine/xine-lib-1.2.13.tar.xz
-
Download (FTP): ftp://ftp.mirrorservice.org/sites/distfiles.gentoo.org/distfiles/xine-lib-1.2.13.tar.xz
-
Download MD5 sum: 9e1be39857b7a3cd7cc0f2b96331ff22
-
Download size: 4.8 MB
-
Estimated disk space required: 98 MB (with API documentation)
-
Estimated build time: 0.5 SBU (Using parallelism=4; with API documentation)
Xine Libraries Dependencies
Required
a graphical environment, FFmpeg-5.1.2, and at least one of: ALSA-1.2.7, PulseAudio-16.1, or JACK
Recommended
Optional
AAlib-1.4rc5, FAAD2-2.10.1, FLAC-1.4.2, gdk-pixbuf-2.42.10, GLU-9.0.2, ImageMagick-7.1.0-61, liba52-0.7.4, libdvdcss-1.4.3, libmad-0.15.1b, libmng-2.0.3, libnsl-2.0.0, libtheora-1.1.1, libva-2.17.0 (requires GLU-9.0.2), libvdpau-1.5, libvorbis-1.3.7, libvpx-1.13.0, Mesa-22.3.5, Samba-4.17.5, SDL-1.2.15, Speex-1.2.1, Doxygen-1.9.6 (to create the API documentation), v4l-utils-1.22.1 DirectFB, libbluray, libcaca, libdca, libFAME, libmodplug, musepack, VCDImager, and WavPack,
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xine-lib
Installation of Xine Libraries
First, fix building this package with binutils-2.39:
sed -e '/xine_set_flags/s/XINE_PROTECTED//' -i include/xine.h
Install Xine Libraries by running the following commands:
./configure --prefix=/usr \
--disable-vcd \
--with-external-dvdnav \
--docdir=/usr/share/doc/xine-lib-1.2.13 &&
make
To create the API documentation, Doxygen must be installed and issue the following command:
doxygen doc/Doxyfile
This package does not come with a test suite.
Now, as the root user:
make install
Note
When installing, the Makefile does some additional linking. If you do not have Xorg in /usr, the LIBRARY_PATH variable needs to be defined for the root user. If using sudo to assume root, use the -E option to pass your current environment variables for the install process.
If you built the API documentation, issue the following commands as the root user to install it:
install -v -m755 -d /usr/share/doc/xine-lib-1.2.13/api &&
install -v -m644 doc/api/* \
/usr/share/doc/xine-lib-1.2.13/api
Command Explanations
--disable-vcd: This switch is required to compile Xine Lib without VCDImager installed. Remove this option if you have installed VCDImager.
--with-external-dvdnav: This switch is required, because internal libraries cannot decrypt DVD.
--docdir=/usr/share/doc/xine-lib-1.2.13: This switch causes the documentation to be installed into a versioned directory instead of the default /usr/share/doc/xine-lib.
--disable-vaapi: use this switch if libva-2.17.0 is installed and GLU-9.0.2 is not, to prevent a build failure.
Contents
Installed Programs: xine-config and xine-list-1.2
Installed Libraries: libxine.so and numerous plugin modules and video extensions under /usr/lib/xine/plugins/2.8
Installed Fonts: Output display engine fonts located in /usr/share/xine-lib/fonts
Installed Directories: /usr/include/xine, /usr/lib/xine, /usr/share/xine-lib, and /usr/share/doc/xine-lib-1.2.13
Short Descriptions
xine-config provides information to programs trying to link with the xine libraries.
xine-list-1.2 is used to get supported file type information from xine-lib.
libxine.so provides the API for processing audio/video files.
42.60 XviD-1.3.7
Introduction to XviD
XviD is an MPEG-4 compliant video CODEC.
This package is known to build and work properly using an LFS 11.3 platform.
Package Information
-
Download (HTTP): https://downloads.xvid.com/downloads/xvidcore-1.3.7.tar.gz
-
Download MD5 sum: 5c6c19324608ac491485dbb27d4da517
-
Download size: 804 KB
-
Estimated disk space required: 7.1 MB
-
Estimated build time: 0.1 SBU
XviD Dependencies
Optional
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/xvid
Installation of XviD
Note
This package tarball expands to xvidcore, not the expected xvidcore-1.3.7.
Install XviD by running the following commands:
cd build/generic &&
sed -i 's/^LN_S=@LN_S@/& -f -v/' platform.inc.in &&
./configure --prefix=/usr &&
make
This package does not come with a test suite.
Now, as the root user:
sed -i '/libdir.*STATIC_LIB/ s/^/#/' Makefile &&
make install &&
chmod -v 755 /usr/lib/libxvidcore.so.4.3 &&
install -v -m755 -d /usr/share/doc/xvidcore-1.3.7/examples &&
install -v -m644 ../../doc/* /usr/share/doc/xvidcore-1.3.7 &&
install -v -m644 ../../examples/* \
/usr/share/doc/xvidcore-1.3.7/examples
Command Explanations
sed -i ‘s/^LN_S=@LN_S@/& -f -v/’ platform.inc.in: Fix error during make install if reinstalling or upgrading.
sed -i ‘/libdir.*STATIC_LIB/ s/^/#/’ Makefile: This command disables installing the static library.
Contents
Installed Programs: None
Installed Library: libxvidcore.so
Installed Directory: /usr/share/doc/xvidcore-1.3.7
Short Descriptions
libxvidcore.so provides functions to encode and decode most MPEG-4 video data.