alsa-project / alsa-plugins Goto Github PK
View Code? Open in Web Editor NEWThe Advanced Linux Sound Architecture (ALSA) - plugins
License: GNU Lesser General Public License v2.1
The Advanced Linux Sound Architecture (ALSA) - plugins
License: GNU Lesser General Public License v2.1
SPEEX_PREPROCESS_SET_AGC_LEVEL
is the current level and not static whilst the only useful setting of SPEEX_PREPROCESS_SET_AGC_MAX_GAIN
which is in decibels and set to 30db (30) is not used?
There are a few useful tweaking params but the main likely max gain to stop ramping up into the noise floor.
Dunno why the only param is the the dynamic agc level as its default is 8000 anyway, but also dynamic as it is the current AGC level that the idea is it changes?
Is there any technical reason why it is not possible to pactl set-sink-formats X "pcm dts-iec61937 ac3-iec61937"
when the Digital Surround 5.1 IEC958/AC3 Output
profile is selected?
It would be convenient to not have to switch profiles when watching a movie with audio that is already encoded AC3.
I noticed the dcaenc
plug-in for DTS encoding does the same thing. So maybe there is a good reason for this I'm not seeing.
Following up on this debian bug report https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=824850
Looks like this crash is caused by missing stream hole handling in pulse plugin. Pulseaudio change was done just before pulseaudio-v3.0
release and this issue should be reproducible with all current versions: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/dfd44036b54d65314664622ff93dfd18eee03c7b quoting from there:
... let the caller decide how the holes should be handled, so
in case of holes, pa_stream_peek() will return NULL data pointer and
the length of the hole in the nbytes argument
Here in pulse plugin, if there is a hole in stream pa_stream_peek
would return NULL buffer pointer but non-zero frag_length
and later memcpy is happily trying to copy from NULL source:
alsa-plugins/pulse/pcm_pulse.c
Lines 517 to 534 in 7028580
Instead, pulse plugin should detect there is a hole by checking if src_buf
is still NULL while frag_length
is not zero, and adjust transfer result accordingly.
I originally encountered the issue ~1 year ago, when I started using a motherboard with an ALC1220 on it.
The out-of-box experience was flawless: I simply connected the optical SPDIF cable to my amplifier/receiver and stereo sound immediately worked.
Once I switched to 5.1 surround, audio output became extremely fast; even videos were affected by it, to the point that they were being reproduced in seconds instead of minutes.
After a few days of research and experiments I managed to workaround the issue by replacing the content of 60-a52-encoder.conf
with:
pcm.a52 {
@args [CARD]
@args.CARD {
type string
}
type rate
slave {
pcm {
type a52
card $CARD
}
rate 48000
}
}
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
Based on https://help.ubuntu.com/community/DigitalAC-3Pulseaudio#Configuring_asound.conf.
After that, I wanted to investigate the cause and report my findings to either ALSA or PulseAudio (depending on the results).
Unfortunately that never happened and I kinda forgot about it, as libasound2-plugins was updated a single time in the past year and thus I only had to replace the file's content once more.
Fast-forward to today: I switch from PulseAudio to PipeWire and while troubleshooting https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1143 I decided to try to restore the original file.
Interestingly, the behavior is different compared to PulseAudio: audio, instead of being fast, is crackling. It's basically as if a frame every two is being skipped.
Unfortunately PipeWire reports no errors whatsoever.
Hello Guys,
I have the same problem as the friend (#4). Can anybody help me?
I tried to build the code with make , but an error occured:
System:
Ubuntu 18.04.3 64-bit
Kernel: Linux hostname-To-be-filled-by-O-E-M 5.3.0-45-generic #37~18.04.1-Ubuntu SMP Fri Mar 27 15:58:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
Note:different from what happened with the previous topic, in my case, the installation of the headers did not solve. I already installed the Linux headers with the command sudo apt-get install linux-headers-$(uname -r)
#Commands
git clone https://github.com/alsa-project/alsa-plugins.git
cd alsa-plugins/
git checkout v1.1.9
autoreconf -i
./configure --prefix=/usr/local
make
Making all in aaf
make[2]: Entering directory '/home/user/repository/alsa-plugins/aaf'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include -g -O2 -MT pcm_aaf.lo -MD -MP -MF .deps/pcm_aaf.Tpo -c -o pcm_aaf.lo pcm_aaf.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include -g -O2 -MT pcm_aaf.lo -MD -MP -MF .deps/pcm_aaf.Tpo -c pcm_aaf.c -fPIC -DPIC -o .libs/pcm_aaf.o
pcm_aaf.c: In function ‘aaf_init_socket’:
pcm_aaf.c:290:22: error: storage size of ‘txtime_cfg’ isn’t known
struct sock_txtime txtime_cfg;
^~~~~~~~~~
pcm_aaf.c:302:36: error: ‘SO_TXTIME’ undeclared (first use in this function); did you mean ‘SO_RCVTIMEO’?
res = setsockopt(fd, SOL_SOCKET, SO_TXTIME, &txtime_cfg,
^~~~~~~~~
SO_RCVTIMEO
pcm_aaf.c:302:36: note: each undeclared identifier is reported only once for each function it appears in
pcm_aaf.c: In function ‘aaf_init_msghdr’:
pcm_aaf.c:509:20: error: ‘SCM_TXTIME’ undeclared (first use in this function); did you mean ‘_SC_CPUTIME’?
cmsg->cmsg_type = SCM_TXTIME;
^~~~~~~~~~
_SC_CPUTIME
Makefile:448: recipe for target 'pcm_aaf.lo' failed
any suggestion?
Thx!!!
Originally reported downstream in Gentoo by a user.
It looks like in rate/Makefile.am
(and I think ditto for rate-lav/Makefile.am
, pph/Makefile.am
), with high parallelism (make -jN install
, for large N), $(DESTDIR)@ALSA_PLUGIN_DIR@
may not have been created yet. All of these dirs override install-exec-hook
.
For other subdirs, like jack/Makefile.am
, there's no problem, because the implementation of install-exec-hook
for those is set by install-hooks.am
which handles mkdir -p
before symlinking/installing.
Example of failure:
>>> Install media-plugins/alsa-plugins-1.2.2 into /var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image
* abi_x86_64.amd64: running multilib-minimal_abi_src_install
make -j2 DESTDIR=/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image install
Making install in doc
make[1]: Entering directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/doc'
make[2]: Entering directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/doc'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/doc'
make[1]: Leaving directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/doc'
Making install in rate
make[1]: Entering directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/rate'
make[2]: Entering directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/rate'
make install-exec-hook
/bin/mkdir -p '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/share/alsa/alsa.conf.d'
make[3]: Entering directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/rate'
rm -f /var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/lib64/alsa-lib/libasound_module_rate_samplerate_*.so
ln -s libasound_module_rate_samplerate.so /var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/lib64/alsa-lib/libasound_module_rate_samplerate_best.so
/usr/bin/install -c -m 644 /var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2/rate/10-samplerate.conf '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/share/alsa/alsa.conf.d'
ln: failed to create symbolic link '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/lib64/alsa-lib/libasound_module_rate_samplerate_best.so': No such file or directory
make[3]: *** [Makefile:738: install-exec-hook] Error 1
make[3]: Leaving directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/rate'
make[2]: *** [Makefile:651: install-exec-am] Error 2
make[2]: *** Waiting for unfinished jobs....
/bin/mkdir -p '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/lib64/alsa-lib'
/bin/sh ../libtool --mode=install /usr/bin/install -c libasound_module_rate_samplerate.la '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/lib64/alsa-lib'
libtool: install: /usr/bin/install -c .libs/libasound_module_rate_samplerate.so /var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/lib64/alsa-lib/libasound_module_rate_samplerate.so
libtool: install: /usr/bin/install -c .libs/libasound_module_rate_samplerate.lai /var/tmp/portage/media-plugins/alsa-plugins-1.2.2/image/usr/lib64/alsa-lib/libasound_module_rate_samplerate.la
libtool: warning: remember to run 'libtool --finish /usr/lib64/alsa-lib'
make[2]: Leaving directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/rate'
make[1]: *** [Makefile:594: install-am] Error 2
make[1]: Leaving directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.2/work/alsa-plugins-1.2.2-abi_x86_64.amd64/rate'
make: *** [Makefile:444: install-recursive] Error 1
* ERROR: media-plugins/alsa-plugins-1.2.2::gentoo failed (install phase):
* emake failed
Reported to happen with 1.2.6 too, which makes sense, as nothing changed there.
Dear alsa-project developers,
I am using a debian (testing) on my computer, together with deb-multimedia.org repository. As some other users with external USB audio devices, I recently discovered a segfault:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=991337
I discussed withe Christian Marillat (maintainer of the deb-multimedia repository) and we tried a couple of alsa versions, but the bug is still present if I'm using a recent libasound2-plugins such as this one:
https://www.deb-multimedia.org/tests/libasound2-plugins_1.2.2+git4219f4b-dmo1_amd64.deb
It does not crash with libasound2-plugins 1.2.2-2 from debian testing.
You will found attached the log file from pulseaudio -vvv.
It seems to me that the Makefile is linking build artifacts instead of copying them... Also the install hook is assuming those .so
files exist which seems to be the case but should not be copied over when --enable-static --disable-shared
is specified. It happens only for that plugin.
Hello,
This snippet seems to generate some symlinks:
install-exec-hook:
rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so
$(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_best.so
$(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_medium.so
But it assumes we are doing a shared build. Which results in broken symlinks in a static build.
I am using a Scarlett 8i6 Gen1. It used to work fine, but with the newest version of speaker-test
, I get this error message:
$ speaker-test -Dusbstream:CARD=USB
speaker-test 1.2.5.1
Playback device is usbstream:CARD=USB
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
ALSA lib pcm_usb_stream.c:503:(_snd_pcm_usb_stream_open) Unknown field hint
Playback open error: -22,Invalid argument
$ cat /proc/asound/cards
0 [PCH ]: HDA-Intel - HDA Intel PCH
HDA Intel PCH at 0xd3a10000 irq 35
1 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xd3000000 irq 17
2 [USB ]: USB-Audio - Scarlett 8i6 USB
Focusrite Scarlett 8i6 USB at usb-0000:00:1a.0-1.2, high speed
I installed and upgraded pulse audio to version 16.1
I keep receiving the following error when trying to upgrade alsa-utils (the latest version):
/bin/sh ../libtool --tag=CC --mode=link gcc -Wall -g -D_REENTRANT -D_GNU_SOURCE -g -O2 -module -avoid-version -export-dynamic -no-undefined -Wl,-z,defs -o libasound_module_conf_pulse.la -rpath /usr/lib/alsa-lib conf_pulse.lo -lasound -lpulse -pthread -lasound /bin/grep: /usr/lib/pulseaudio/libpulsecommon-13.0.la: No such file or directory /bin/sed: can't read /usr/lib/pulseaudio/libpulsecommon-13.0.la: No such file or directory libtool: error: '/usr/lib/pulseaudio/libpulsecommon-13.0.la' is not a valid libtool archive make[2]: *** [Makefile:535: libasound_module_conf_pulse.la] Error 1 make[2]: Leaving directory '/sources/alsa-plugins/pulse' make[1]: *** [Makefile:444: all-recursive] Error 1 make[1]: Leaving directory '/sources/alsa-plugins' make: *** [Makefile:376: all] Error 2
What exactly is going on here?
Hey there,
I tried to build the code with make
, but an error occured:
System:
Ubuntu 18.04.3 64-bit
Intel® Xeon(R) CPU E3-1270 v6 @ 3.80GHz × 8
Making all in aaf
make[2]: Entering directory '/home/[...]/alsa-plugins/aaf'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include -g -O2 -MT pcm_aaf.lo -MD -MP -MF .deps/pcm_aaf.Tpo -c -o pcm_aaf.lo pcm_aaf.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/local/include -I/usr/local/include -g -O2 -MT pcm_aaf.lo -MD -MP -MF .deps/pcm_aaf.Tpo -c pcm_aaf.c -fPIC -DPIC -o .libs/pcm_aaf.o
pcm_aaf.c: In function ‘aaf_init_socket’:
pcm_aaf.c:289:22: error: storage size of ‘txtime_cfg’ isn’t known
struct sock_txtime txtime_cfg;
^~~~~~~~~~
pcm_aaf.c:301:36: error: ‘SO_TXTIME’ undeclared (first use in this function); did you mean ‘SO_RCVTIMEO’?
res = setsockopt(fd, SOL_SOCKET, SO_TXTIME, &txtime_cfg,
^~~~~~~~~
SO_RCVTIMEO
pcm_aaf.c:301:36: note: each undeclared identifier is reported only once for each function it appears in
pcm_aaf.c: In function ‘aaf_init_msghdr’:
pcm_aaf.c:508:20: error: ‘SCM_TXTIME’ undeclared (first use in this function); did you mean ‘_SC_CPUTIME’?
cmsg->cmsg_type = SCM_TXTIME;
^~~~~~~~~~
_SC_CPUTIME
Makefile:448: recipe for target 'pcm_aaf.lo' failed
make[2]: *** [pcm_aaf.lo] Error 1
make[2]: Leaving directory '/home/[...]/alsa-plugins/aaf'
Makefile:443: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/[...]/alsa-plugins'
Makefile:375: recipe for target 'all' failed
make: *** [all] Error 2
I hope someone can help.
https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4085
I'm getting this errors:
jul 03 21:12:38 thought pipewire[63110]: ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for %f
jul 03 21:12:38 thought pipewire[63110]: spa.alsa: 'plug:{SLAVE="a52:0,'hw:%f,3'"}': playback open failed: No such device
jul 03 21:12:38 thought pipewire[63110]: mod.adapter: 0x5b856abf1c30: can't get format: No such device
jul 03 21:12:38 thought pipewire[63110]: mod.adapter: usage: node.name=<string>
jul 03 21:14:21 thought wireplumber[63111]: wplua: [string "alsa.lua"]:182: attempt to concatenate a nil value (local 'node_name')
stack traceback:
[string "alsa.lua"]:182: in function <[string "alsa.lua"]:175>
could this be related to the this commit? dfc65f2
Ever since f11e7a8, the recent commit that brings the a52 plugin up to speed with ffmpeg's requirement for s32le format sampling, sending any audio to plug:a52 from any pulseaudio client crashes pulseaudio.
I posted this log earlier in #23, in which audio from mpv crashes pulseaudio.
I have tried other clients since and they all crash the same way.
This is with a default pulseaudio configuration, as shipped in Archlinux, and the following /etc/asound.conf
:
# Alsa Resampler
defaults.pcm.rate_converter "speexrate_best"
# Use PulseAudio by default
pcm.!default {
type pulse
fallback "sysdefault"
hint {
show on
description "Default ALSA Output (currently PulseAudio Sound Server)"
}
}
ctl.!default {
type pulse
fallback "sysdefault"
}
defaults.namehint.showall on
defaults.namehint.extended on
To enable the use of plug:a52 in pulseaudio without configuring it manually, I select the "Digital Surround 5.1 (IEC958/AC3) Output" profile in pavucontrol
.
Pulseaudio, as far as I know, is agnostic of how ALSA plugins work internally. This leads me to think there is something not getting done right in the new patchset, even if it is tolerable in an ALSA-only setup.
When using mpv with the option audio-device=alsa/<a52 device>
it gets a segfault on this line
Line 566 in da157e9
dump
before prepare
has been called and rec->avctx
is NULL.I had been thinking that pavumeter was just broken, because this has been happening to me for a long time (well before the changes between 1.2.5 and 1.2.6), but now I realize that I hadn't tested against stereo mode in just as long.
When using the a52 plugin, pavumeter is frozen as soon as it opens: if audio was playing, levels will show at exactly where they were at that moment and never change; if audio was not playing, levels will never appear because the interface is frozen before there were any.
libtool: compile: x86_64-pc-linux-gnu-gcc -m32 -mfpmath=sse -DHAVE_CONFIG_H -I. -I/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52 -I.. -DNDEBUG -Wall -g -march=native -mtune=native -O2 -pipe -c /var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c -fPIC -DPIC -o .libs/pcm_a52.o
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c: In function 'a52_free':
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:631:17: warning: 'avcodec_close' is deprecated [-Wdeprecated-declarations]
631 | avcodec_close(rec->avctx);
| ^~~~~~~~~~~~~
In file included from /var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:28:
/usr/include/libavcodec/avcodec.h:2374:5: note: declared here
2374 | int avcodec_close(AVCodecContext *avctx);
| ^~~~~~~~~~~~~
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c: In function 'set_channel_layout':
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:672:29: error: 'AVCodecContext' has no member named 'channel_layout'; did you mean 'ch_layout'?
672 | rec->avctx->channel_layout = AV_CH_LAYOUT_STEREO;
| ^~~~~~~~~~~~~~
| ch_layout
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:675:29: error: 'AVCodecContext' has no member named 'channel_layout'; did you mean 'ch_layout'?
675 | rec->avctx->channel_layout = AV_CH_LAYOUT_QUAD;
| ^~~~~~~~~~~~~~
| ch_layout
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:678:29: error: 'AVCodecContext' has no member named 'channel_layout'; did you mean 'ch_layout'?
678 | rec->avctx->channel_layout = AV_CH_LAYOUT_5POINT1;
| ^~~~~~~~~~~~~~
| ch_layout
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c: In function 'alloc_input_buffer':
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:698:19: error: 'AVFrame' has no member named 'channels'
698 | rec->frame->channels = rec->avctx->channels;
| ^~
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:698:42: error: 'AVCodecContext' has no member named 'channels'
698 | rec->frame->channels = rec->avctx->channels;
| ^~
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:699:21: error: 'AVFrame' has no member named 'channel_layout'; did you mean 'ch_layout'?
699 | rec->frame->channel_layout = rec->avctx->channel_layout;
| ^~~~~~~~~~~~~~
| ch_layout
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:699:50: error: 'AVCodecContext' has no member named 'channel_layout'; did you mean 'ch_layout'?
699 | rec->frame->channel_layout = rec->avctx->channel_layout;
| ^~~~~~~~~~~~~~
| ch_layout
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c: In function 'a52_prepare':
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:734:19: error: 'AVCodecContext' has no member named 'channels'
734 | rec->avctx->channels = io->channels;
| ^~
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c: In function '_snd_pcm_a52_open':
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:1124:28: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1124 | rec->codec = avcodec_find_encoder_by_name(avcodec);
| ^
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:1126:28: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1126 | rec->codec = avcodec_find_encoder_by_name("ac3_fixed");
| ^
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:1128:36: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1128 | rec->codec = avcodec_find_encoder_by_name("ac3");
| ^
/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1/a52/pcm_a52.c:1131:28: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
1131 | rec->codec = avcodec_find_encoder(AV_CODEC_ID_AC3);
| ^
make[2]: *** [Makefile:469: pcm_a52.lo] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1-abi_x86_32.x86/a52'
make[1]: *** [Makefile:445: all-recursive] Error 1
make[1]: Leaving directory '/var/tmp/portage/media-plugins/alsa-plugins-1.2.7.1-r1/work/alsa-plugins-1.2.7.1-abi_x86_32.x86'
make: *** [Makefile:377: all] Error 2
* ERROR: media-plugins/alsa-plugins-1.2.7.1-r1::gentoo failed (compile phase):
* emake failed
Our game captures audio from microphones and tests the available devices on startup. For some reason PortAudio tells us that vdownmix is a 6 channel capture device. When the game tries to test that device, the plugin crashes inside vdownmix_transfer because the src_areas array contained only two valid pointers while mix->channels is 6. I assume the plugin is not prepared to handle the swapped roles of input and output during capture.
A simple way to cause the crash is to execute arecord -D vdownmix -f dat -c 6
.
The expected behavior is that the plugin either enforces 2 channel capture with a 4/5/6 channel slave pcm or completely rejects capture. In any case, it should not crash with a SIGSEGV.
Using the lastest code since v1.2.5 I can successfully get AC3 output through HDMI when using speaker-test. Defaults use a huge buffer and gives terrible latency, but it works.
PulseAudio also works fine with fairly low-latency using "tsched=1 tsched_buffer_size=32768 tsched_buffer_watermark=8192 fixed_latency_range=yes mmap=1". This doesn't need the rate kludge any more.
When I try pipewire using mmap I get the below messages in the log, no audio:
spa.alsa: alsa-pcm a52hdmi: mmap_commit wrote 512 instead of 1024
With mmap disabled, no errors are reported, but still no sound.
Is there a configuration for pipewire which works with the a52 plugin, a pipewire bug, or is this another a52 plugin bug?
See title. I have a project that might benefit from such a mix.
The jack plugin wasn’t working for me and adenosine on the archlinux forum found the bug and wrote a patch for me.
adenosine already posted it to the alsa-devel mailing list, but it hasn’t been applied so far.
Sorry to beat a dead horse, and double if this is in fact a pulseaudio issue.
I recently configured bluez and pulseaudio to receive streams from devices over bluetooth (eg, to play audio from a phone over the PC's speaker system).
This works when the PC's sound card is set to profiles other than the A52 plugin (ie, pulseaudio's provided digital stereo output and also the DTS alsa plugin).
Only when set to use the AC3 output profile, audio from the bluez source is not produced.
pavucontrol shows the bluez source is producing sound (the level bounces appropriately), but no audio comes out of the sink (no level bounce in pavucontrol either).
Any ideas?
Hi, I've noticed the latest commits done to the upmix plugin, but there's something I don't understand.
Line 24 of pcm_upmix.c is #define UPMIX_PCM_FORMAT SND_PCM_FORMAT_S16
Does that mean the upmix plugin is still only capable of using S16_LE format ?
Or does the UPMIX_PCM_FORMAT value can get changed to S32_LE by tweaking it in asoundrc file ?
Hello everyone,
a) I have installed libasound2-plugins from repository on a Debian Buster machine (4.19.0-12-rt-amd64 #1 SMP PREEMPT RT Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux) and on a raspberry PI3 (5.4.79-v7+ #1373 SMP Mon Nov 23 13:22:33 GMT 2020 armv7l GNU/Linux) up-to-date (none of these running pulseaudio of course)
b) I have modified my .asoundrc configuration file according to https://jackaudio.org/faq/routing_alsa.html
c) I can see jack and rowjack virtual devices in aplay -L
d) starting qjackctl I'm unable to see the expected new capture_x devices. Of course jack runs correctly with physical devices (eg. PC mic or USB mic)
e) jack is at jackd 0.125.0rc1 version
f) Alsa is at Version k4.19.0-12-rt-amd64 on the AMD64 machine, at Version k5.4.79-v7+ on the RaspberriPI machine
e) any attempt of playing test files over jack device (aplay -D pcm.jack ) generates the error :
ALSA lib pcm_plug.c:1286:(_snd_pcm_plug_open) Unknown field playback_ports
aplay: main:828: audio open error: Invalid argument
Can you help ?
Thank-you
Best regards
Ugo Poddine
Hello,
I set 2 host to use aaf plugin for TSN test. I followed TSN-doc guidelines and aaf.txt
doc.
Simply, after hosts is ready and syncing though ptp4l, phc3sys, qdisc,
then I try to run a basic test, no switch between, back to back linked hosts,
obtaining the following error.
#Talker
sudo speaker-test -p 12500 -F S16_BE -c 2 -r 48000 -D aaf0
#Listener
sudo arecord -F 25000 -t raw -f S16_BE -c 2 -r 48000 -D aaf0 | \
> aplay -F 25000 -t raw -f S16_BE -c 2 -r 48000 -D default
Playing raw data 'stdin' : Signed 16 bit Big Endian, Rate 48000 Hz, Stereo
Recording raw data 'stdin' : Signed 16 bit Big Endian, Rate 48000 Hz, Stereo
underrun!!! (at least 24,460 ms long)
arecord: xrun:1711: read/write error, state = RUNNING
This error happens after a random period, tipically less than 60sec.
I followed TSN doc settings, but I noticed that value in aaf plugin configuration and cbs qdisc are suggested differrently between aaf.txt doc and TSN doc.
Any prompt to get out of this?
Many thanks
In my application, after I use snd_pcm_rewind()
strange things happen, such as snd_pcm_status_get_avail()
reporting a value larger than period_count * frames_per_period
which my app depends on to never happen.
Hi!
Current a52 plugin is not compatible with recent changes in the FFmpeg lib.
The symptom is that using newest FFmpeg the a52 plugin produces silent in the speakers. During the weekend I was able to bisect the problem and shed some light on this, and here is what I found out:
I was asking the commit author @jamrial about the commit and he said that the main culprit could rather be the commit:
FFmpeg/FFmpeg@2d85e6e
which is changing the S16 to S32 for ac3_fixed encoder while the a52 plugin "is ignoring the kind of format the encoder takes as input (Starting from the aforementioned commit, ac3_fixed takes S32 planar audio), and unconditionally feeding it S16 planar audio."
I was trying to change the a52 from S16 to S32 but I think some more work is needed on this...
I was also try to change the do_encode() function from avcodec_encode_audio2 to avcodec_send_frame() with no luck...
trying to send to the ALSA device aaf0. pI cm4 with kernel setup to support avb/tsn correctly.
(Linux cm432 5.10.76-v7l-AVB_KERNEL+ #3 SMP Sat Nov 6 22:50:41 GMT 2021 armv7l GNU/Linux).
PCIe i210 network card is the interface set up correctly according to: https://tsn.readthedocs.io/avb.html
Error is:
`sudo speaker-test -p 2500 -F S16_BE -c 2 -r 48000 -D aaf0
speaker-test 1.1.9
Playback device is aaf0
Stream parameters are 48000Hz, S16_BE, 2 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 1 to 206158430
Period size range from 0 to 206158431
Requested period time 2500 us
Periods = 4
was set period_size = 120
was set buffer_size = 480
0 - Front Left
ALSA lib pcm_aaf.c:670:(aaf_tx_pdu) Failed to send AAF PDU
Write error: -5,Input/output error
xrun_recovery failed: -5,Input/output error
Transfer failed: Input/output error
`
As the subject said, would be nice if you can switch from libavresample to libswresample
Hi,
I got the same error as reported by @kruemelbacke.
My Kernel version is > 4.19.
I also verified the installation of kernel headers using
ls -l /usr/src/linux-headers-$(uname -r)
output:
total 1612
drwxr-xr-x 3 root root 4096 Nov 12 11:23 arch
lrwxrwxrwx 1 root root 39 Oct 22 14:16 block -> ../linux-hwe-5.4-headers-5.4.0-90/block
lrwxrwxrwx 1 root root 39 Oct 22 14:16 certs -> ../linux-hwe-5.4-headers-5.4.0-90/certs
lrwxrwxrwx 1 root root 40 Oct 22 14:16 crypto -> ../linux-hwe-5.4-headers-5.4.0-90/crypto
lrwxrwxrwx 1 root root 47 Oct 22 14:16 Documentation -> ../linux-hwe-5.4-headers-5.4.0-90/Documentation
lrwxrwxrwx 1 root root 41 Oct 22 14:16 drivers -> ../linux-hwe-5.4-headers-5.4.0-90/drivers
lrwxrwxrwx 1 root root 36 Oct 22 14:16 fs -> ../linux-hwe-5.4-headers-5.4.0-90/fs
drwxr-xr-x 4 root root 4096 Nov 12 11:23 include
lrwxrwxrwx 1 root root 38 Oct 22 14:16 init -> ../linux-hwe-5.4-headers-5.4.0-90/init
lrwxrwxrwx 1 root root 37 Oct 22 14:16 ipc -> ../linux-hwe-5.4-headers-5.4.0-90/ipc
lrwxrwxrwx 1 root root 40 Oct 22 14:16 Kbuild -> ../linux-hwe-5.4-headers-5.4.0-90/Kbuild
lrwxrwxrwx 1 root root 41 Oct 22 14:16 Kconfig -> ../linux-hwe-5.4-headers-5.4.0-90/Kconfig
drwxr-xr-x 2 root root 4096 Nov 12 11:23 kernel
lrwxrwxrwx 1 root root 37 Oct 22 14:16 lib -> ../linux-hwe-5.4-headers-5.4.0-90/lib
lrwxrwxrwx 1 root root 42 Oct 22 14:16 Makefile -> ../linux-hwe-5.4-headers-5.4.0-90/Makefile
lrwxrwxrwx 1 root root 36 Oct 22 14:16 mm -> ../linux-hwe-5.4-headers-5.4.0-90/mm
-rw-r--r-- 1 root root 1619639 Oct 22 14:16 Module.symvers
lrwxrwxrwx 1 root root 37 Oct 22 14:16 net -> ../linux-hwe-5.4-headers-5.4.0-90/net
lrwxrwxrwx 1 root root 41 Oct 22 14:16 samples -> ../linux-hwe-5.4-headers-5.4.0-90/samples
drwxr-xr-x 8 root root 12288 Nov 12 11:23 scripts
lrwxrwxrwx 1 root root 42 Oct 22 14:16 security -> ../linux-hwe-5.4-headers-5.4.0-90/security
lrwxrwxrwx 1 root root 39 Oct 22 14:16 sound -> ../linux-hwe-5.4-headers-5.4.0-90/sound
drwxr-xr-x 3 root root 4096 Nov 12 11:23 tools
lrwxrwxrwx 1 root root 40 Oct 22 14:16 ubuntu -> ../linux-hwe-5.4-headers-5.4.0-90/ubuntu
lrwxrwxrwx 1 root root 37 Oct 22 14:16 usr -> ../linux-hwe-5.4-headers-5.4.0-90/usr
lrwxrwxrwx 1 root root 38 Oct 22 14:16 virt -> ../linux-hwe-5.4-headers-5.4.0-90/virt
Seems like headers are included.
I also tried ./configure --prefix=/usr/local CFLAGS=-I/path/to/kernel/headers as suggested by aguedes.
But the problem still persists.
My system specification :
Linux isl01-268 5.4.0-90-generic
Ubuntu 18.04.5 LTS
OS : 64 bits
Processor : Intel® Core™ i5-4570S CPU @ 2.90GHz × 4
Graphics : Intel® HD Graphics 4600 (HSW GT2)
Any help would be highly appreciated.
Originally posted by @Deepa-Santhosh in #4 (comment)
Before 1.2, aplay -L
showed a pulse pcm. After the commit
b0f9c35
pulse is missing from the pcm list. This may break some apps, war thunder (used fmod) game stopped seeing pulse and only tried to use alsa directly
if i comment out the below line in /usr/share/alsa/alsa.conf.d/50-pulseaudio.conf
@args [ DEVICE ]
aplay -L
show again the pulse pcm
another workaround is to add this to the /etc/asound.conf
:
pcm.!pulse {
type pulse
hint {
show on
description "PulseAudio Sound Server"
}
}
I've been trying to get Julia's PortAudio to load alsa-plugins (it's been a process). I thought I might as well see if I can cut down on the warnings on start up (using PortAudio
from Julia) and some of them I've been able to knock out but some of them not so much:
These ones
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
I got rid of by commenting out lines in my alsa.conf file:
# pcm.rear cards.pcm.rear
# pcm.center_lfe cards.pcm.center_lfe
# pcm.side cards.pcm.side
This one
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
I got rid of by commening out:
# pcm.surround21 cards.pcm.surround21
# pcm.surround40 cards.pcm.surround40
# pcm.surround41 cards.pcm.surround41
# pcm.surround50 cards.pcm.surround50
# pcm.surround51 cards.pcm.surround51
# pcm.surround71 cards.pcm.surround71
I'm not sure if these work arounds are the best solutions...shouldn't alsa be able to tell that my laptop doesn't have surround sound?
This one is expected, I haven't yet figured out how to build jack on Julia's BinaryBuilder:
ALSA lib dlmisc.c:339:(snd_dlobj_cache_get0) Cannot open shared library libasound_module_pcm_jack.so (/home/brandon/.julia/artifacts/d587f48a6815c72dec4b083bf297caec7a8e3f4b/lib/alsa-lib/libasound_module_pcm_jack.so: cannot open shared object file: No such file or directory)
These ones are a bit confusing;
ALSA lib pcm_oss.c:377:(_snd_pcm_oss_open) Unknown field port
ALSA lib pcm_usb_stream.c:486:(_snd_pcm_usb_stream_open) Invalid type for card
Is it possible that oss/50-oss.conf
and usb_stream/98-usb-stream.conf
need to get updated?
Dear Developers,
I am using a debian testing, and tried a couple of libasound2-plugins versions (deb marillat versions, unstable version), but this bug is still present.
I am using an external USB audio device, and pulseaudio for usual audio usages (browser, player, etc).
When pulsaudio starts, everything is fine with the audio system: when a sound is played, everything is ok.
Even if I unplug the usb device, the audio file is still played in the internal sound card with a correct bitrate.
Unfortunalely, when I replug the USB audio device, the audio file is now played with a slow speed, as if the bitrate was not correctly interpreted;
I tried several settings in the /etc/pulse/daemon.conf without success: trying to change defaultt-sample-rate / alternate-sample-rate to the same value or to different values such as 44100 and 48000, using avoid-resampling=yes or not.
Here is the output of "pactl info":
Server String: /run/user/1000/pulse/native
Library Protocol Version: 34
Server Protocol Version: 34
Is Local: yes
Client Index: 9
Tile Size: 65472
User Name: jm
Host Name: L-16V52X2
Server Name: pulseaudio
Server Version: 14.2
Default Sample Specification: float32le 2ch 44100Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-PreSonus_AudioBox_22_VSL_2214-00.analog-stereo
Default Source: alsa_input.usb-PreSonus_AudioBox_22_VSL_2214-00.analog-stereo
Here is the output of "pacmd list-sinks" while the system is playing a slow speed audio (after usb unplug / plug):
2 sink(s) available.
index: 0
name: <alsa_output.usb-PreSonus_AudioBox_22_VSL_2214-00.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9049
volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB
balance 0,00
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 0,00 ms
max request: 0 KiB
max rewind: 0 KiB
monitor source: 0
sample spec: s32le 2ch 44100Hz
channel map: front-left,front-right
Stéréo
used by: 0
linked by: 0
configured latency: 0,00 ms; range is 0,50 .. 2000,00 ms
card: 0 <alsa_card.usb-PreSonus_AudioBox_22_VSL_2214-00>
module: 6
properties:
alsa.resolution_bits = "32"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "1"
alsa.card_name = "AudioBox 22 VSL"
alsa.long_card_name = "PreSonus AudioBox 22 VSL at usb-0000:00:14.0-2.2, high speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:00:14.0-usb-0:2.2:1.0"
sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0/sound/card1"
udev.id = "usb-PreSonus_AudioBox_22_VSL_2214-00"
device.bus = "usb"
device.vendor.id = "194f"
device.vendor.name = "PreSonus Audio Electronics, Inc."
device.product.id = "0101"
device.product.name = "AudioBox 22 VSL"
device.serial = "PreSonus_AudioBox_22_VSL_2214"
device.string = "front:1"
device.buffering.buffer_size = "705600"
device.buffering.fragment_size = "352800"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Stéréo analogique"
device.description = "AudioBox 22 VSL Stéréo analogique"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-usb"
ports:
analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
properties:
active port: <analog-output>
index: 1
name: <alsa_output.pci-0000_00_1f.3.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9039
volume: front-left: 52428 / 80% / -5,81 dB, front-right: 52428 / 80% / -5,81 dB
balance 0,00
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 0,00 ms
max request: 0 KiB
max rewind: 0 KiB
monitor source: 2
sample spec: s32le 2ch 44100Hz
channel map: front-left,front-right
Stéréo
used by: 0
linked by: 0
configured latency: 0,00 ms; range is 0,50 .. 2000,00 ms
card: 1 <alsa_card.pci-0000_00_1f.3>
module: 7
properties:
alsa.resolution_bits = "32"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "ALC3246 Analog"
alsa.id = "ALC3246 Analog"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "0"
alsa.card_name = "HDA Intel PCH"
alsa.long_card_name = "HDA Intel PCH at 0xec348000 irq 141"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:00:1f.3"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0"
device.bus = "pci"
device.vendor.id = "8086"
device.vendor.name = "Intel Corporation"
device.product.id = "9d71"
device.product.name = "Sunrise Point-LP HD Audio"
device.form_factor = "internal"
device.string = "front:0"
device.buffering.buffer_size = "705600"
device.buffering.fragment_size = "352800"
device.access_mode = "mmap+timer"
device.profile.name = "analog-stereo"
device.profile.description = "Stéréo analogique"
device.description = "Audio interne Stéréo analogique"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
ports:
analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
properties:
device.icon_name = "audio-speakers"
analog-output-headphones: Headphones (priority 9900, latency offset 0 usec, available: no)
properties:
device.icon_name = "audio-headphones"
active port:
This bugreport has been first reported on the debian bug report system: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992780
Dear Maintainer,
this bug was originally reported on the debian tracker. They advised me to post it here.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=998125
I could trace back the error to the shipped config file for alsa's a52 plugin: 60-a52-encoder.conf.
When I replaced that file with a much simpler one (see below) 5.1 digital out worked as expected.
I tried with onboard sound (PCH9) and dedicated card (Audigy Z) with the same result, the inlcuded a52 config file does not work.
== Start working a52.conf
pcm.a52 {
@args [CARD]
@args.CARD {
type string
}
type rate
slave {
pcm {
type a52
bitrate 448
channels 6
card $CARD
}
rate 48000
}
}
== End working a52.conf
Therefore I assume the shipped config file with debian has an error somewhere. Please fix this.
Best reagards
Jens
-- System Information:
Debian Release: 11.1
Architecture: amd64 (x86_64)
Kernel: Linux 5.14.0-0.bpo.2-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_UNSIGNED_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages libasound2-plugins depends on:
ii libasound2 1.2.4-1.1
ii libavcodec-extra58 [libavcodec58] 7:4.3.2-0+deb11u2
ii libavresample4 7:4.3.2-0+deb11u2
ii libavutil56 7:4.3.2-0+deb11u2
ii libc6 2.31-13+deb11u2
ii libjack0 [libjack-0.125] 1:0.125.0-3+b1
ii libpulse0 14.2-2
ii libsamplerate0 0.2.1+ds0-1
Hi!
When I send a 800Hz sine wave with rate 12345 to pcm.outmic and
when I arecord from pcm.micend at rate 8000 with 1 channel (/etc/asound.conf),
then I get a lot of tiny little gaps (see attachment) and a lot of messages like "overrun!!! (at least 0.014 ms long)" (the "ms" vary from 0.008 to 0.043; and arecord continues to record) and sometimes even this error: "arecord: xrun:1672: read/write error, state = RUNNING" (it causes arecord to terminate).
speaker-test -D outmic -t sine -f 800 -c2 -r 12345
arecord -D micend -r 8000 -c 1 -f S16_LE /tmp/bla.wav
twinkle makes even bigger gaps, when I let it use pcm.micend as microphone...
But with hw:Generic,0,0 as mic device twinkle works fine...
LubosD/twinkle#207
"samplerate_best" and "samplerate_order" seems to make it worse...
How can I fix that?
Thx.
Bye.
It seems the only thing in alsa-plugins that could have a GPL license is rate/rate_samplerate.c, which has this at the top of the file:
In 2016, libsamplerate dropped its commercial license requirement and was released with the 2-Clause BSD license. (See http://libsndfile.github.io/libsamplerate//license.html)
So I was wondering if the license for rate_samplerate.c can be updated to remove the GPLv2, which means the COPYING.GPL file can also be removed from the alsa-plugins package?
Thank you!
Sorry if this is not the proper place to ask, I'm gratefully taking any other suggestions.
I use a toslink table from my computer to a Logitech z906 system, which can decode AC3 (as proven in Windows which is installed in parallel). If I select "Digital Stereo (IEC958)", I'm getting stereo output. Also, I can play a special AC3 test file (avi) via VLC and get a proper decoding of 5.1 (obviously passed thru).
I assume that if I select "Digital Surround 5.1 (IEC958/AC3)", the A52 plugin is used. However, I get nothing but silence from the 6 speakers when I do the test, and when I try any other application. I am using pulseaudio (probably as in most installations today); I don't know whether this is important.
I thought that the A52 plugin must be configured in .asoundrc before I learned that this is already done in /etc/alsa/conf.d/60-a52-encoder.conf. Moreover, the manuals for A52 and configuration do not reveal a lot, in particular for troubleshooting.
Sample rate conversion should be done with the highest resolution possible.
I recommend using 32bit signed integers for sample rate conversion.
Currently, once sample rate conversion is done, using S32_LE is meaningless.
I'm using alsa-plugin-1.1.8
mpv --audio-device=alsa/plug:rawjack /path/to/musicfile
freezes mpv.
mpv doesn't freeze only when it plays a wav file.
I have to press Ctrl+C twice to kill mpv.
hello
i have a problem about "make install"
after i compile it with cross-compiler, i want to run make intall, but after make install, some error occured as followed,could you kindly help?
magic@VM-work:alsa-plugins$ make install
Making install in doc
make[1]: Entering directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/doc'
make[2]: Entering directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/doc'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/doc'
make[1]: Leaving directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/doc'
Making install in oss
make[1]: Entering directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/oss'
make[2]: Entering directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/oss'
make[2]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/home/magic/work/opensource/AVB_TSN/out/lib/alsa-lib'
/bin/bash ../libtool --mode=install /usr/bin/install -c libasound_module_ctl_oss.la '/home/magic/work/opensource/AVB_TSN/out/lib/alsa-lib'
libtool: install: /usr/bin/install -c .libs/libasound_module_ctl_oss.so /home/magic/work/opensource/AVB_TSN/out/lib/alsa-lib/libasound_module_ctl_oss.so
/usr/bin/install: cannot stat '.libs/libasound_module_ctl_oss.so': No such file or directory
make[2]: *** [Makefile:411: install-asound_module_ctl_ossLTLIBRARIES] Error 1
make[2]: Leaving directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/oss'
make[1]: *** [Makefile:646: install-am] Error 2
make[1]: Leaving directory '/home/magic/work/opensource/AVB_TSN/alsa-plugins/alsa-plugins/oss'
make: *** [Makefile:443: install-recursive] Error 1
There is a potential race condition that can cause segmentation faults if the Jack process callback is called between the call to snd_pcm_jack_stop
and snd_pcm_jack_hw_free
. This was introduced by revision badd921.
a52.txt hasn't been changed in fifteen years.
In that time, a preconfiguration has been supplied that ends up getting merged into a dysfunctional mess if users add a manual configuration to their asound.conf without prepending an exclamation point to override it, and more recently more sample formats have been added.
This file needs some attention.
I see pcm_pulse.c uses snd_pcm_sw_params_get_start_threshold from -lasound but AFAIK that is a bug, because libasound is loading the plugins and not the other way around. Can someone explain what's going on, I'm getting undefined references..
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.