Accepting request 20205 from multimedia:libs

Copy from multimedia:libs/alsa based on submit request 20205 from user tiwai

OBS-URL: https://build.opensuse.org/request/show/20205
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alsa?expand=0&rev=78
This commit is contained in:
OBS User autobuild 2009-09-10 12:30:23 +00:00 committed by Git OBS Bridge
commit dcaee65c7a
3 changed files with 166 additions and 3 deletions

149
alsa-lib-git-fixes.diff Normal file
View File

@ -0,0 +1,149 @@
diff --git a/configure.in b/configure.in
index e96058b..3cd6366 100644
--- a/configure.in
+++ b/configure.in
@@ -12,7 +12,7 @@ dnl add API = c+1:0:a+1
dnl remove API = c+1:0:0
dnl *************************************************
AC_CANONICAL_HOST
-AM_INIT_AUTOMAKE(alsa-lib, 1.0.21)
+AM_INIT_AUTOMAKE(alsa-lib, 1.0.21a)
eval LIBTOOL_VERSION_INFO="2:0:0"
dnl *************************************************
AM_CONDITIONAL(INSTALL_M4, test -n "${ACLOCAL}")
diff --git a/src/conf.c b/src/conf.c
index 3f0dfe1..570c90f 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -3477,8 +3477,9 @@ int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config,
err = snd_determine_driver(card, &fdriver);
if (err < 0)
return err;
- if (snd_config_search(root, fdriver, &n) >= 0 &&
- snd_config_get_string(n, &driver) >= 0) {
+ if (snd_config_search(root, fdriver, &n) >= 0) {
+ if (snd_config_get_string(n, &driver) < 0)
+ goto __err;
assert(driver);
while (1) {
char *s = strchr(driver, '.');
diff --git a/src/conf/pcm/dmix.conf b/src/conf/pcm/dmix.conf
index 4108ddb..e62cb29 100644
--- a/src/conf/pcm/dmix.conf
+++ b/src/conf/pcm/dmix.conf
@@ -63,12 +63,12 @@ pcm.!dmix {
name {
@func concat
strings [
- "cards."
+ "defaults.dmix."
{
@func card_driver
card $CARD
}
- ".pcm.dmix.period_size"
+ ".period_size"
]
}
default 1024
@@ -78,12 +78,12 @@ pcm.!dmix {
name {
@func concat
strings [
- "cards."
+ "defaults.dmix."
{
@func card_driver
card $CARD
}
- ".pcm.dmix.period_time"
+ ".period_time"
]
}
default -1
@@ -93,12 +93,12 @@ pcm.!dmix {
name {
@func concat
strings [
- "cards."
+ "defaults.dmix."
{
@func card_driver
card $CARD
}
- ".pcm.dmix.periods"
+ ".periods"
]
}
default 16
diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c
index 4802200..9259a08 100644
--- a/src/mixer/simple_none.c
+++ b/src/mixer/simple_none.c
@@ -134,6 +134,7 @@ static int get_compare_weight(const char *name, unsigned int idx)
static const char *const names[] = {
"Master",
"Headphone",
+ "Speaker",
"Tone",
"Bass",
"Treble",
@@ -158,6 +159,7 @@ static int get_compare_weight(const char *name, unsigned int idx)
"I2S",
"IEC958",
"PC Speaker",
+ "Beep",
"Aux",
"Mono",
"Playback",
diff --git a/src/pcm/pcm_params.c b/src/pcm/pcm_params.c
index 80b3fd2..0e1c3fc 100644
--- a/src/pcm/pcm_params.c
+++ b/src/pcm/pcm_params.c
@@ -1081,6 +1081,7 @@ int snd_pcm_hw_param_never_eq(const snd_pcm_hw_params_t *params,
static int snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
{
int err;
+ const char *compat = getenv("LIBASOUND_COMPAT");
#ifdef CHOOSE_DEBUG
snd_output_t *log;
snd_output_stdio_attach(&log, stderr, 0);
@@ -1103,15 +1104,29 @@ static int snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params)
err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_RATE, NULL, 0);
if (err < 0)
return err;
- err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_TIME, NULL, 0);
- if (err < 0)
- return err;
- err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_SIZE, NULL, 0);
- if (err < 0)
- return err;
- err = snd_pcm_hw_param_set_last(pcm, params, SND_PCM_HW_PARAM_BUFFER_SIZE, NULL, 0);
- if (err < 0)
- return err;
+ if (compat && *compat) {
+ /* old mode */
+ err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_TIME, NULL, 0);
+ if (err < 0)
+ return err;
+ err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_SIZE, NULL, 0);
+ if (err < 0)
+ return err;
+ err = snd_pcm_hw_param_set_last(pcm, params, SND_PCM_HW_PARAM_BUFFER_SIZE, NULL, 0);
+ if (err < 0)
+ return err;
+ } else {
+ /* determine buffer size first */
+ err = snd_pcm_hw_param_set_last(pcm, params, SND_PCM_HW_PARAM_BUFFER_SIZE, NULL, 0);
+ if (err < 0)
+ return err;
+ err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_SIZE, NULL, 0);
+ if (err < 0)
+ return err;
+ err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_TIME, NULL, 0);
+ if (err < 0)
+ return err;
+ }
err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_TICK_TIME, NULL, 0);
if (err < 0)
return err;

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Wed Sep 9 14:45:03 CEST 2009 - tiwai@suse.de
- Fixes from upstream to fix conf parser error and audacious
problems:
* mixer: Add Speaker and Beep names to the weight list
* Revert "Fix driver conf parsing in snd_config_hook_load_for_all_cards()"
* Change dmix.conf to accept user configuration from defaults.dmix.<driver_id>.xxx
* PCM - Change the hw_params determination order
- Mark docs subpackage as noarch
-------------------------------------------------------------------
Mon Aug 31 16:21:19 CEST 2009 - tiwai@suse.de

View File

@ -34,7 +34,7 @@ Obsoletes: alsa-64bit
#
Summary: Advanced Linux Sound Architecture
Version: 1.0.21
Release: 1
Release: 2
Source: ftp://ftp.alsa-project.org/pub/lib/alsa-lib-%{package_version}.tar.bz2
Source8: 40-alsa.rules
Source11: alsasound
@ -50,7 +50,7 @@ Source31: all_notes_off.bin
Source32: all_notes_off.mid
Source33: alsa-info.sh
Source34: alsa-init.sh
# Patch: alsa-lib-git-fixes.diff
Patch: alsa-lib-git-fixes.diff
Url: http://www.alsa-project.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -91,6 +91,9 @@ Authors:
Summary: Additional Package Documentation
Group: Documentation/Other
License: GPL v2 or later
%if %suse_version > 1110
BuildArch: noarch
%endif
%description docs
This package contains optional documentation provided in addition to
@ -122,7 +125,7 @@ Authors:
%prep
%setup -q -n alsa-lib-%{package_version}
# %patch -p1
%patch -p1
# hack to fix build on older distros
%if %suse_version < 1100
%ifarch %ix86