From 80b1a219154d436fc8ebb92f7589fbc4b33512c122f426d946da4df680863301 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Fri, 21 Aug 2009 14:23:31 +0000 Subject: [PATCH] checked in OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=36 --- alsa-lib-git-fixes.diff | 74 ++--------------------------------------- alsa.changes | 6 ---- 2 files changed, 3 insertions(+), 77 deletions(-) diff --git a/alsa-lib-git-fixes.diff b/alsa-lib-git-fixes.diff index 77b52e7..d6f3a32 100644 --- a/alsa-lib-git-fixes.diff +++ b/alsa-lib-git-fixes.diff @@ -2956,18 +2956,9 @@ index 826685f..3a99d55 100644 } diff --git a/src/pcm/pcm_ioplug.c b/src/pcm/pcm_ioplug.c -index e43d354..2aa7572 100644 +index e43d354..c582f5a 100644 --- a/src/pcm/pcm_ioplug.c +++ b/src/pcm/pcm_ioplug.c -@@ -442,7 +442,7 @@ static int snd_pcm_ioplug_start(snd_pcm_t *pcm) - int err; - - if (io->data->state != SND_PCM_STATE_PREPARED) -- return -EBUSY; -+ return -EBADFD; - - err = io->data->callback->start(io->data); - if (err < 0) @@ -877,7 +877,7 @@ callback. Finally, the dump callback is used to print the status of the plugin. @@ -3000,7 +2991,7 @@ index 0357921..5acc7bc 100644 scope->ops = val; } diff --git a/src/pcm/pcm_mmap_emul.c b/src/pcm/pcm_mmap_emul.c -index 0dc1973..f6e7ae9 100644 +index 0dc1973..e356e0b 100644 --- a/src/pcm/pcm_mmap_emul.c +++ b/src/pcm/pcm_mmap_emul.c @@ -34,6 +34,7 @@ @@ -3011,73 +3002,14 @@ index 0dc1973..f6e7ae9 100644 /* * */ -@@ -43,7 +44,9 @@ typedef struct { - unsigned int mmap_emul :1; +@@ -44,6 +45,7 @@ typedef struct { snd_pcm_uframes_t hw_ptr; snd_pcm_uframes_t appl_ptr; -+ snd_pcm_uframes_t start_threshold; } mmap_emul_t; +#endif /* * here goes a really tricky part; hw_refine falls back to ACCESS_RW_* type -@@ -203,6 +206,24 @@ static int snd_pcm_mmap_emul_hw_params(snd_pcm_t *pcm, - return err; - } - -+static int snd_pcm_mmap_emul_sw_params(snd_pcm_t *pcm, -+ snd_pcm_sw_params_t *params) -+{ -+ mmap_emul_t *map = pcm->private_data; -+ int err; -+ -+ map->start_threshold = params->start_threshold; -+ -+ /* HACK: don't auto-start in the slave PCM */ -+ params->start_threshold = pcm->boundary; -+ err = snd_pcm_generic_sw_params(pcm, params); -+ if (err < 0) -+ return err; -+ /* restore the value for this PCM */ -+ params->start_threshold = map->start_threshold; -+ return err; -+} -+ - static int snd_pcm_mmap_emul_prepare(snd_pcm_t *pcm) - { - mmap_emul_t *map = pcm->private_data; -@@ -254,13 +275,18 @@ sync_slave_write(snd_pcm_t *pcm) - snd_pcm_uframes_t offset; - snd_pcm_sframes_t size; - -+ /* HACK: don't start stream automatically at commit in mmap mode */ -+ pcm->start_threshold = pcm->boundary; -+ - size = map->appl_ptr - *slave->appl.ptr; - if (size < 0) - size += pcm->boundary; -- if (!size) -- return 0; -- offset = *slave->appl.ptr % pcm->buffer_size; -- return snd_pcm_write_mmap(pcm, offset, size); -+ if (size) { -+ offset = *slave->appl.ptr % pcm->buffer_size; -+ size = snd_pcm_write_mmap(pcm, offset, size); -+ } -+ pcm->start_threshold = map->start_threshold; /* restore */ -+ return size; - } - - /* read the available chunk on the slave PCM to mmap buffer */ -@@ -335,7 +361,7 @@ static const snd_pcm_ops_t snd_pcm_mmap_emul_ops = { - .hw_refine = snd_pcm_mmap_emul_hw_refine, - .hw_params = snd_pcm_mmap_emul_hw_params, - .hw_free = snd_pcm_generic_hw_free, -- .sw_params = snd_pcm_generic_sw_params, -+ .sw_params = snd_pcm_mmap_emul_sw_params, - .channel_info = snd_pcm_generic_channel_info, - .dump = snd_pcm_mmap_emul_dump, - .nonblock = snd_pcm_generic_nonblock, diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c index a97a5de..ecf0022 100644 --- a/src/pcm/pcm_rate.c diff --git a/alsa.changes b/alsa.changes index d62fa40..441ed57 100644 --- a/alsa.changes +++ b/alsa.changes @@ -1,9 +1,3 @@ -------------------------------------------------------------------- -Fri Aug 21 01:26:21 CEST 2009 - tiwai@suse.de - -- pcm: workaround for avoiding automatic start in mmap mode -- pcm/ioplug: fix error code in start callback - ------------------------------------------------------------------- Thu Aug 13 08:46:04 CEST 2009 - tiwai@suse.de