Accepting request 365162 from multimedia:libs

1

OBS-URL: https://build.opensuse.org/request/show/365162
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alsa-utils?expand=0&rev=103
This commit is contained in:
Dominique Leuenberger 2016-03-04 18:29:45 +00:00 committed by Git OBS Bridge
commit 4a1679a672
5 changed files with 548 additions and 8 deletions

View File

@ -0,0 +1,90 @@
From d633469c9d55d8ec77c33eab04e0cd9ae0c10f6e Mon Sep 17 00:00:00 2001
From: Jaroslav Kysela <perex@perex.cz>
Date: Wed, 13 Jan 2016 09:46:31 +0100
Subject: [PATCH] alsa-info.sh: add man page
---
alsa-info/Makefile.am | 1 +
alsa-info/alsa-info.sh.1 | 62 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 63 insertions(+)
create mode 100644 alsa-info/alsa-info.sh.1
diff --git a/alsa-info/Makefile.am b/alsa-info/Makefile.am
index 356f1a9ae94b..c786361dc68c 100644
--- a/alsa-info/Makefile.am
+++ b/alsa-info/Makefile.am
@@ -1,2 +1,3 @@
EXTRA_DIST = alsa-info.sh
sbin_SCRIPTS = alsa-info.sh
+man_MANS = alsa-info.sh.1
diff --git a/alsa-info/alsa-info.sh.1 b/alsa-info/alsa-info.sh.1
new file mode 100644
index 000000000000..7168b3e061be
--- /dev/null
+++ b/alsa-info/alsa-info.sh.1
@@ -0,0 +1,62 @@
+.TH ALSA-INFO.SH 1 "13 January 2016"
+.SH NAME
+alsa-info.sh \- command\-line utility to gather information about
+the ALSA subsystem
+.SH SYNOPSIS
+\fBalsa-info.sh\fP [\fIoptions\fP]
+
+.SH DESCRIPTION
+\fBalsa-info.sh\fP is a command\-line utility gathering information
+about the ALSA subsystem. It is used mostly for debugging purposes.
+
+.SH OPTIONS
+.TP
+\fI\-\-upload\fP
+Upload contents to the server (www.alsa-project.org or pastebin.ca).
+.TP
+\fI\-\-no-upload\fP
+Do not upload contents to the remote server.
+.TP
+\fI\-\-stdout\fP
+Print information to standard output.
+.TP
+\fI\-\-output FILE\fP
+Specify file for output in no-upload mode.
+.TP
+\fI\-\-debug\fP
+Run utility as normal, but will not delete file (usually
+/tmp/alsa-info.txt).
+.TP
+\fI\-\-with-aplay\fP
+Includes output from \fIaplay -l\fP.
+.TP
+\fI\-\-with-amixer\fP
+Includes output from \fIamixer\fP.
+.TP
+\fI\-\-with-alsactl\fP
+Includes output from \fIalsactl\fP.
+.TP
+\fI\-\-with-configs\fP
+Includes output from ~/.asoundrc and /etc/asound.conf if they exist.
+.TP
+\fI\-\-update\fP
+Check server for updates.
+.TP
+\fI\-\-about\fP
+Print information about authors.
+
+.SH EXAMPLES
+
+.TP
+\fBalsa-info.sh \-\-no-upload\fR
+Will gather all information and show the output file.
+
+.SH SEE ALSO
+\fB
+aplay(1)
+amixer(1)
+alsactl(1)
+\fP
+
+.SH AUTHOR
+\fBalsa-info.sh\fP was created by the ALSA team, see \fI\-\-about\fP .
--
2.7.0

View File

@ -0,0 +1,41 @@
From 18d5f52a61d0df7cf28456e264d7ab72c15984fb Mon Sep 17 00:00:00 2001
From: Vinod Koul <vinod.koul@intel.com>
Date: Thu, 28 Jan 2016 14:02:18 +0530
Subject: [PATCH] amixer: skip showing asoc tlv byte controls
ASoC TLV Byte controls are very large size controls so we should add new
options for these. So skip dumping contents for these.
$amixer -c0 cget numid=16
numid=16,iface=MIXER,name='mdl params'
; type=BYTES,access=-----RW-,values=30336
; ASoC TLV Byte control, skipping bytes dump
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
amixer/amixer.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/amixer/amixer.c b/amixer/amixer.c
index db1849333da3..f9b09cb54276 100644
--- a/amixer/amixer.c
+++ b/amixer/amixer.c
@@ -682,6 +682,14 @@ static int show_control(const char *space, snd_hctl_elem_t *elem,
__skip_read:
if (!snd_ctl_elem_info_is_tlv_readable(info))
goto __skip_tlv;
+ /* skip ASoC ext bytes controls that may have huge binary TLV data */
+ if (type == SND_CTL_ELEM_TYPE_BYTES &&
+ !snd_ctl_elem_info_is_readable(info) &&
+ !snd_ctl_elem_info_is_writable(info)) {
+ printf("%s; ASoC TLV Byte control, skipping bytes dump\n", space);
+ goto __skip_tlv;
+ }
+
tlv = malloc(4096);
if ((err = snd_hctl_elem_tlv_read(elem, tlv, 4096)) < 0) {
error("Control %s element TLV read error: %s\n", card, snd_strerror(err));
--
2.7.0

View File

@ -0,0 +1,391 @@
From 9fa7f6fd0645f822793f8c51d3c3e090716108eb Mon Sep 17 00:00:00 2001
From: "Lu, Han" <han.lu@intel.com>
Date: Wed, 3 Feb 2016 14:20:33 +0800
Subject: [PATCH] alsabat: rename to avoid naming conflict
alsa-utils as well as bareos-bat (as well a some Bacula packages)
all contain a program called /usr/bin/bat, which causes conflicts on
various distributions ("basic audio tester" vs "bareos administration
tool"("bacula administration tool")).
Rename to avoid conflict.
Signed-off-by: Lu, Han <han.lu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
bat/Makefile.am | 10 ++--
bat/alsabat.1 | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bat/bat.1 | 158 -------------------------------------------------------
bat/bat.c | 2 +-
4 files changed, 165 insertions(+), 164 deletions(-)
create mode 100644 bat/alsabat.1
delete mode 100644 bat/bat.1
diff --git a/bat/Makefile.am b/bat/Makefile.am
index f0dc5abbbe46..8dfafa99e179 100644
--- a/bat/Makefile.am
+++ b/bat/Makefile.am
@@ -1,9 +1,9 @@
-bin_PROGRAMS = bat
-man_MANS = bat.1
+bin_PROGRAMS = alsabat
+man_MANS = alsabat.1
-EXTRA_DIST = bat.1
+EXTRA_DIST = alsabat.1
-bat_SOURCES = \
+alsabat_SOURCES = \
bat.c \
common.c \
analyze.c \
@@ -21,4 +21,4 @@ noinst_HEADERS = \
AM_CPPFLAGS = \
-Wall -I$(top_srcdir)/include
-bat_LDADD = @FFTW_LIB@
+alsabat_LDADD = @FFTW_LIB@
diff --git a/bat/alsabat.1 b/bat/alsabat.1
new file mode 100644
index 000000000000..8d0b9c0b9c0e
--- /dev/null
+++ b/bat/alsabat.1
@@ -0,0 +1,159 @@
+.TH ALSABAT 1 "20th October 2015"
+.SH NAME
+alsabat \- command\-line sound tester for ALSA sound card driver
+
+.SH SYNOPSIS
+\fBalsabat\fP [\fIflags\fP]
+
+.SH DESCRIPTION
+\fBALSABAT(ALSA Basic Audio Tester)\fP is a simple command\-line utility
+intended to help automate audio driver and sound server testing with little
+human interaction. ALSABAT can be used to test audio quality, stress test
+features and test audio before and after PM state changes.
+
+ALSABAT's design is relatively simple. ALSABAT plays an audio stream and
+captures the same stream in either a digital or analog loop back. It then
+compares the captured stream using a FFT to the original to determine if
+the test case passes or fails.
+
+ALSABAT can either run wholly on the target machine being tested (standalone
+mode) or can run as a client/server mode where by alsabat client runs on the
+target and runs as a server on a separate tester machine. The client/server
+mode still requires some manual interaction for synchronization, but this
+is actively being developed for future releases.
+
+The hardware testing configuration may require the use of an analog cable
+connecting target to tester machines or a cable to create an analog
+loopback if no loopback mode is not available on the sound hardware that
+is being tested.
+An analog loopback cable can be used to connect the "line in" to "line out"
+jacks to create a loopback. If only headphone and mic jacks (or combo jack)
+are available then the following simple circuit can be used to create an
+analog loopback :-
+
+https://source.android.com/devices/audio/loopback.html
+
+.SH OPTIONS
+.TP
+\fI\-h, \-\-help\fP
+Help: show syntax.
+.TP
+\fI\-D\fP
+Select sound card to be tested by name.
+.TP
+\fI\-P\fP
+Select the playback PCM device.
+.TP
+\fI\-C\fP
+Select the capture PCM device.
+.TP
+\fI\-f\fP
+Sample format
+.br
+Recognized sample formats are: U8 S16_LE S24_3LE S32_LE
+.br
+Some of these may not be available on selected hardware
+.br
+The available format shortcuts are:
+.nf
+\-f cd (16 bit little endian, 44100, stereo) [\-f S16_LE \-c2 \-r44100]
+\-f dat (16 bit little endian, 48000, stereo) [\-f S16_LE \-c2 \-r48000]
+.fi
+If no format is given S16_LE is used.
+.TP
+\fI\-c\fP
+The number of channels. The default is one channel.
+Valid values at the moment are 1 or 2.
+.TP
+\fI\-r\fP
+Sampling rate in Hertz. The default rate is 44100 Hertz.
+Valid values depends on hardware support.
+.TP
+\fI\-n\fP
+Duration of generated signal.
+The value could be either of the two forms:
+.br
+1. Decimal integer, means number of frames;
+.br
+2. Floating point with suffix 's', means number of seconds.
+.br
+The default is 2 seconds.
+.TP
+\fI\-k\fP
+Sigma k value for analysis.
+.br
+The analysis function reads data from WAV file, run FFT against the data
+to get magnitude of frequency vectors, and then calculates the average
+value and standard deviation of frequency vectors. After that, we define
+a threshold:
+.br
+threshold = k * standard_deviation + mean_value
+.br
+Frequencies with amplitude larger than threshold will be recognized as a
+peak, and the frequency with largest peak value will be recognized as a
+detected frequency.
+.br
+ALSABAT then compares the detected frequency to target frequency, to
+decide if the detecting passes or fails.
+.br
+The default value is 3.0.
+.TP
+\fI\-F\fP
+Target frequency for signal generation and analysis, in Hertz.
+The default is 997.0 Hertz.
+Valid range is (DC_THRESHOLD, 40% * Sampling rate).
+.TP
+\fI\-p\fP
+Total number of periods to play or capture.
+.TP
+\fI\-\-log=#\fP
+Write stderr and stdout output to this log file.
+.TP
+\fI\-\-file=#\fP
+Input WAV file for playback.
+.TP
+\fI\-\-saveplay=#\fP
+Target WAV file to save capture test content.
+.TP
+\fI\-\-local\fP
+Internal loopback mode.
+Playback, capture and analysis internal to ALSABAT only. This is intended
+for developers to test new ALSABAT features as no audio is routed outside
+of ALSABAT.
+
+.SH EXAMPLES
+
+.TP
+\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR
+Generate and play a sine wave of 250 Hertz with 2 channel and S32_LE format,
+and then capture and analyze.
+
+.TP
+\fBalsabat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR
+Play the RIFF WAV file "500Hz.wav" which contains 500 Hertz waveform LPCM
+data, and then capture and analyze.
+
+.SH RETURN VALUE
+.br
+On success, returns 0.
+.br
+If no peak be detected, returns -1001;
+.br
+If only DC be detected, returns -1002;
+.br
+If peak frequency does not match with the target frequency, returns -1003.
+
+.SH SEE ALSO
+\fB
+aplay(1)
+\fP
+
+.SH BUGS
+Currently only support RIFF WAV format with PCM data. Please report any bugs to
+the alsa-devel mailing list.
+
+.SH AUTHOR
+\fBalsabat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard
+Gautier <bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>.
+This document is by Liam Girdwood <liam.r.girdwood@linux.intel.com> and Han Lu
+<han.lu@intel.com>.
diff --git a/bat/bat.1 b/bat/bat.1
deleted file mode 100644
index e00fc272acdc..000000000000
--- a/bat/bat.1
+++ /dev/null
@@ -1,158 +0,0 @@
-.TH BAT 1 "20th October 2015"
-.SH NAME
-bat \- command\-line sound tester for ALSA sound card driver
-
-.SH SYNOPSIS
-\fBbat\fP [\fIflags\fP]
-
-.SH DESCRIPTION
-\fBBAT(Basic Audio Tester)\fP is a simple command\-line utility intended
-to help automate audio driver and sound server testing with little human
-interaction. BAT can be used to test audio quality, stress test features
-and test audio before and after PM state changes.
-
-BAT's design is relatively simple. BAT plays an audio stream and captures
-the same stream in either a digital or analog loop back. It then compares
-the captured stream using a FFT to the original to determine if the test
-case passes or fails.
-
-BAT can either run wholly on the target machine being tested (standalone
-mode) or can run as a client/server mode where by bat client runs on the
-target and runs as a server on a separate tester machine. The client/server
-mode still requires some manual interaction for synchronization, but this
-is actively being developed for future releases.
-
-The hardware testing configuration may require the use of an analog cable
-connecting target to tester machines or a cable to create an analog
-loopback if no loopback mode is not available on the sound hardware that
-is being tested.
-An analog loopback cable can be used to connect the "line in" to "line out"
-jacks to create a loopback. If only headphone and mic jacks (or combo jack)
-are available then the following simple circuit can be used to create an
-analog loopback :-
-
-https://source.android.com/devices/audio/loopback.html
-
-.SH OPTIONS
-.TP
-\fI\-h, \-\-help\fP
-Help: show syntax.
-.TP
-\fI\-D\fP
-Select sound card to be tested by name.
-.TP
-\fI\-P\fP
-Select the playback PCM device.
-.TP
-\fI\-C\fP
-Select the capture PCM device.
-.TP
-\fI\-f\fP
-Sample format
-.br
-Recognized sample formats are: U8 S16_LE S24_3LE S32_LE
-.br
-Some of these may not be available on selected hardware
-.br
-The available format shortcuts are:
-.nf
-\-f cd (16 bit little endian, 44100, stereo) [\-f S16_LE \-c2 \-r44100]
-\-f dat (16 bit little endian, 48000, stereo) [\-f S16_LE \-c2 \-r48000]
-.fi
-If no format is given S16_LE is used.
-.TP
-\fI\-c\fP
-The number of channels. The default is one channel.
-Valid values at the moment are 1 or 2.
-.TP
-\fI\-r\fP
-Sampling rate in Hertz. The default rate is 44100 Hertz.
-Valid values depends on hardware support.
-.TP
-\fI\-n\fP
-Duration of generated signal.
-The value could be either of the two forms:
-.br
-1. Decimal integer, means number of frames;
-.br
-2. Floating point with suffix 's', means number of seconds.
-.br
-The default is 2 seconds.
-.TP
-\fI\-k\fP
-Sigma k value for analysis.
-.br
-The analysis function reads data from WAV file, run FFT against the data
-to get magnitude of frequency vectors, and then calculates the average
-value and standard deviation of frequency vectors. After that, we define
-a threshold:
-.br
-threshold = k * standard_deviation + mean_value
-.br
-Frequencies with amplitude larger than threshold will be recognized as a
-peak, and the frequency with largest peak value will be recognized as a
-detected frequency.
-.br
-BAT then compares the detected frequency to target frequency, to decide
-if the detecting passes or fails.
-.br
-The default value is 3.0.
-.TP
-\fI\-F\fP
-Target frequency for signal generation and analysis, in Hertz.
-The default is 997.0 Hertz.
-Valid range is (DC_THRESHOLD, 40% * Sampling rate).
-.TP
-\fI\-p\fP
-Total number of periods to play or capture.
-.TP
-\fI\-\-log=#\fP
-Write stderr and stdout output to this log file.
-.TP
-\fI\-\-file=#\fP
-Input WAV file for playback.
-.TP
-\fI\-\-saveplay=#\fP
-Target WAV file to save capture test content.
-.TP
-\fI\-\-local\fP
-Internal loopback mode.
-Playback, capture and analysis internal to BAT only. This is intended for
-developers to test new BAT features as no audio is routed outside of BAT.
-
-.SH EXAMPLES
-
-.TP
-\fBbat \-P plughw:0,0 \-C plughw:0,0 \-c 2 \-f S32_LE \-F 250\fR
-Generate and play a sine wave of 250 Hertz with 2 channel and S32_LE format,
-and then capture and analyze.
-
-.TP
-\fBbat \-P plughw:0,0 \-C plughw:0,0 \-\-file 500Hz.wav\fR
-Play the RIFF WAV file "500Hz.wav" which contains 500 Hertz waveform LPCM
-data, and then capture and analyze.
-
-.SH RETURN VALUE
-.br
-On success, returns 0.
-.br
-If no peak be detected, returns -1001;
-.br
-If only DC be detected, returns -1002;
-.br
-If peak frequency does not match with the target frequency, returns -1003.
-
-.SH SEE ALSO
-\fB
-aplay(1)
-\fP
-
-.SH BUGS
-Currently only support RIFF WAV format with PCM data. Please report any bugs to
-the alsa-devel mailing list.
-
-.SH AUTHOR
-\fBbat\fP is by Liam Girdwood <liam.r.girdwood@linux.intel.com>, Bernard Gautier
-<bernard.gautier@intel.com> and Han Lu <han.lu@intel.com>.
-This document is by Liam Girdwood <liam.r.girdwood@linux.intel.com> and Han Lu
-<han.lu@intel.com>.
diff --git a/bat/bat.c b/bat/bat.c
index 086b9fa4514d..ddb60b753009 100644
--- a/bat/bat.c
+++ b/bat/bat.c
@@ -272,7 +272,7 @@ static void test_capture(struct bat *bat)
static void usage(struct bat *bat)
{
fprintf(bat->log,
-_("Usage: bat [-options]...\n"
+_("Usage: alsabat [-options]...\n"
"\n"
" -h, --help this help\n"
" -D pcm device for both playback and capture\n"
--
2.7.0

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Wed Feb 3 18:04:00 CET 2016 - tiwai@suse.de
- Backport upstream fixes: add alsa-info manpage, fix TLV output of
amixer for ASoC ext ctls, and rename from bat to alsabat
0003-alsa-info.sh-add-man-page.patch
0004-amixer-skip-showing-asoc-tlv-byte-controls.patch
0005-alsabat-rename-to-avoid-naming-conflict.patch
- Rename subpackage from bat to alsabat due to the name conflicts
with other projects
-------------------------------------------------------------------
Mon Nov 9 11:45:30 CET 2015 - tiwai@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package alsa-utils
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -46,6 +46,9 @@ Source1: 01beep.conf
# Patch: alsa-utils-git-fixes.diff
Patch1: 0001-bat-Avoid-local-signal.h-file.patch
Patch2: 0002-bat-Don-t-pass-incompatible-function-pointers-to-pth.patch
Patch3: 0003-alsa-info.sh-add-man-page.patch
Patch4: 0004-amixer-skip-showing-asoc-tlv-byte-controls.patch
Patch5: 0005-alsabat-rename-to-avoid-naming-conflict.patch
Patch99: alsa-utils-gettext-version-removal.diff
BuildRequires: alsa-devel
BuildRequires: automake
@ -67,12 +70,13 @@ BuildRequires: pkgconfig(udev)
This package contains utility programs supporting ALSA, Advanced Linux
Sound Architecture.
%package -n bat
%package -n alsabat
Summary: Command-line sound tester for ALSA sound card driver
Group: Productivity/Multimedia/Sound/Utilities
Requires: alsa-utils = %{version}
Obsoletes: bat <= 1.1.0
%description -n bat
%description -n alsabat
BAT (Basic Audio Tester) is a simple command-line utility intended
to help automate audio driver and sound server testing with little human
interaction. BAT can be used to test audio quality, stress test features
@ -86,6 +90,9 @@ sed -i -e's/EXTRA_DIST= config.rpath /EXTRA_DIST=/' Makefile.am
# patch -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
#
%if 0%{?suse_version} < 1020
%patch99 -p1
@ -134,8 +141,8 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/alsa
%{_mandir}/man*/*
%{_mandir}/fr
%{_bindir}/*
%exclude %{_bindir}/bat
%exclude %{_mandir}/man*/bat.*
%exclude %{_bindir}/alsabat
%exclude %{_mandir}/man*/alsabat.*
%{_sbindir}/*
%{_datadir}/sounds/alsa
%{_datadir}/alsa
@ -149,9 +156,9 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/alsa
%{_localstatedir}/lib/alsa
%endif
%files -n bat
%files -n alsabat
%defattr(-, root, root)
%{_bindir}/bat
%{_mandir}/man*/bat.*
%{_bindir}/alsabat
%{_mandir}/man*/alsabat.*
%changelog