[pulseaudio-discuss] Mic volume goes automaticly down
Hello Listmates, i'm using Pulseaudio with ALSA on openSUSE 12.2 RC2. The issue i had already on earlier versions of openSUSE. The output of alsa-info.sh is published there: http://www.alsa-project.org/db/?f=2216a57a427b1498313a8bada6d323fd1ea72780 I'm not sure if this is a pulseaudio-issue or not. The problem is the following. In ALSA my Microphone is set with vol 100%. Also i've set 100% in the pulseaudio volumesettings. But if i make a call (with skype echo) the input volume goes automaticly down to 0%. The inputstream itself works if i manually hold the input stream by 100%. Otherwise i can hear me in the echo call, but very silent. I'm searching a solution which allows me to set the volume just one and then he leaves it. Maybe anyone has an idea how to fix it? -- Sincerly yours Sascha Manns Community Support Agent / Balsam Plasma Active Developer open-slx GmbH Web (business): http://www.open-slx.com Web (private): http://saigkill.homelinux.net open-slx GmbH, GF: Dr. Ing. Stefan Werden , HR: 25786, Ust-ID: DE267619018 Einsteinring 7, 90 453 Nuremberg / Germany ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Mic volume goes automaticly down
On Mon, Aug 13, 2012 at 03:48:54PM EST, Sascha Manns wrote: In ALSA my Microphone is set with vol 100%. Also i've set 100% in the pulseaudio volumesettings. But if i make a call (with skype echo) the input volume goes automaticly down to 0%. The inputstream itself works if i manually hold the input stream by 100%. Otherwise i can hear me in the echo call, but very silent. So far as I can remember, Skype controls the audio mixer settings for the input capture. It may have an option to disable this behavior, although since I've not used Skype for quite a long time, I don't know whether this option is still available. I suggest looking in the audio settings for skype and see if there is anything along those lines. Luke ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] tests: make 'check' optional
On Thu, 2012-08-09 at 10:01 +0800, Deng Zhengrong wrote: --- configure.ac| 15 ++- src/Makefile.am | 12 2 files changed, 26 insertions(+), 1 deletions(-) diff --git a/configure.ac b/configure.ac index ffb2a35..9cb5aa6 100644 --- a/configure.ac +++ b/configure.ac @@ -581,10 +581,21 @@ AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h]) check test framework -PKG_CHECK_MODULES(LIBCHECK, [ check ]) +AC_ARG_ENABLE([check], +AS_HELP_STRING([--disable-check],[Disable unit tests])) If the help text is Disable unit tests (which is good in my opinion), I think the AC_ARG_ENABLE parameter should be tests instead of check, and --disable-check should be --disable-tests. + +AS_IF([test x$enable_check != xno], +[PKG_CHECK_MODULES(LIBCHECK, [ check ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)], +HAVE_LIBCHECK=0) + +AS_IF([test x$enable_check = xyes test x$HAVE_LIBCHECK = x0], +[AC_MSG_ERROR([*** check library not found])]) + AC_SUBST(LIBCHECK_CFLAGS) AC_SUBST(LIBCHECK_LIBS) +AM_CONDITIONAL([HAVE_LIBCHECK], [test x$HAVE_LIBCHECK = x1]) + json parsing PKG_CHECK_MODULES(LIBJSON, [ json = 0.9 ]) @@ -1393,6 +1404,7 @@ AS_IF([test x$HAVE_SIMPLEDB = x1], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no) AS_IF([test x$HAVE_ESOUND = x1], ENABLE_ESOUND=yes, ENABLE_ESOUND=no) AS_IF([test x$HAVE_ESOUND = x1 -a x$USE_PER_USER_ESOUND_SOCKET = x1], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no) AS_IF([test x$HAVE_GCOV = x1], ENABLE_GCOV=yes, ENABLE_GCOV=no) +AS_IF([test x$HAVE_LIBCHECK = x1], ENABLE_LIBCHECK=yes, ENABLE_LIBCHECK=no) AS_IF([test x$enable_legacy_database_entry_format != xno], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no) echo @@ -1440,6 +1452,7 @@ echo Enable speex (resampler, AEC): ${ENABLE_SPEEX} Enable WebRTC echo canceller: ${ENABLE_WEBRTC} Enable gcov coverage: ${ENABLE_GCOV} +Enable check unit tests: ${ENABLE_LIBCHECK} Since you disable all tests if the check framework is not available, regardless of whether the tests use the check framework or not, I think the message should be just Enable unit tests, without the check specifier. And instead of printing the ENABLE_LIBCHECK value, you should print the enable_tests value (or maybe there should be a new variable ENABLE_TESTS to be more consistent). Database tdb: ${ENABLE_TDB} gdbm:${ENABLE_GDBM} diff --git a/src/Makefile.am b/src/Makefile.am index 2f20df2..dfa055e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -297,6 +297,7 @@ TESTS_norun += \ alsa-time-test endif +if HAVE_LIBCHECK TESTS_ENVIRONMENT=MAKE_CHECK=1 TESTS = $(TESTS_default) @@ -309,6 +310,17 @@ endif check-daemon: $(TESTS_daemon) PATH=$(builddir):${PATH} $(top_srcdir)/src/tests/test-daemon.sh $(TESTS_daemon) +else +TESTS_ENVIRONMENT= +TESTS = +noinst_PROGRAMS = +check_PROGRAMS = I think you should check ENABLE_TESTS instead of HAVE_LIBCHECK, if you're going to disable all tests. + +check-daemon: + @echo Please don't specify \--disable-check\ and make sure check library is installed! I think Tests are disabled would be a more appropriate message, because that's the problem. After stating the problem, giving hints for how to resolve the problem would be fine, though. Also, I think that make should be somehow informed that an error happened. Maybe add a call to false (I mean /bin/false, in case it was unclear) after the echo? It feels a bit clumsy to me, though, but I'm not aware of other ways to do it (I'm not really a make expert). -- Tanu ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 0/3] Fixes for pulseaudio on Windows.
Am 08.08.2012 23:06, schrieb ku...@rockbox.org: I've been tryng to run pulseaudio (including utils) on windows. This series is the first to contribute fixes to achieve this. One issue I came across is the assertion failue (!e-dead) in pacat. This is fixed by the first patch. Uncovered by this and fixed by patch 2 is that stdio needs to be switched to binary mode in order to pipe data through it. Patch 3 works around massive build warnings on mingw32, but it's not mission critical. Ping :) ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] card-restore: Add the ability to save and restore the maximum volume
On Fri, 2012-08-03 at 15:12 +0800, Deng Zhengrong wrote: module-card-restore now saves the maximum volume. This change includes a entry version bump. --- src/modules/module-card-restore.c | 26 +++--- 1 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c index 7d101c5..689381d 100644 --- a/src/modules/module-card-restore.c +++ b/src/modules/module-card-restore.c @@ -68,11 +68,12 @@ struct userdata { pa_database *database; }; -#define ENTRY_VERSION 2 +#define ENTRY_VERSION 3 struct port_info { char *name; int64_t offset; +pa_volume_t max_volume; }; struct entry { @@ -145,6 +146,7 @@ static pa_bool_t entry_write(struct userdata *u, const char *name, const struct PA_HASHMAP_FOREACH(p_info, e-ports, state) { pa_tagstruct_puts(t, p_info-name); pa_tagstruct_puts64(t, p_info-offset); +pa_tagstruct_put_volume(t, p_info-max_volume); } key.data = (char *) name; @@ -249,6 +251,18 @@ static struct entry* entry_read(struct userdata *u, const char *name) { p_info-name = pa_xstrdup(port_name); p_info-offset = port_offset; +if (e-version = 3) { +pa_volume_t max_volume = PA_VOLUME_INVALID; + +if (pa_tagstruct_get_volume(t, max_volume) 0) { +pa_xfree(p_info-name); +pa_xfree(p_info); +goto fail; +} + +p_info-max_volume = max_volume; +} p_info-max_volume needs to be initialized even when e-version is less than 3. Also, the local max_volume variable is redundant: you can give p_info-max_volume directly to pa_tagstruct_get_volume(). + pa_assert_se(pa_hashmap_put(e-ports, p_info-name, p_info) = 0); } } @@ -313,6 +327,7 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 p_info = pa_xnew(struct port_info, 1); p_info-name = pa_xstrdup(p-name); p_info-offset = p-latency_offset; +p_info-max_volume = p-maximum_volume; pa_assert_se(pa_hashmap_put(entry-ports, p_info-name, p_info) = 0); } @@ -336,7 +351,10 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 dirty = true; break; } - +if (p_info-max_volume != old_p_info-max_volume) { +dirty = true; +break; +} } else { dirty = true; break; Later in the function there's this: if (card-save_profile) pa_log_info(Storing profile and port latency offsets for card %s., card-name); else pa_log_info(Storing port latency offsets for card %s., card-name); That code is now out of date. @@ -391,8 +409,10 @@ static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new pa_log_info(Restoring port latency offsets for card %s., new_data-name); There should be a mention of restoring the maximum volume too. PA_HASHMAP_FOREACH(p_info, e-ports, state) -if ((p = pa_hashmap_get(new_data-ports, p_info-name))) +if ((p = pa_hashmap_get(new_data-ports, p_info-name))) { p-latency_offset = p_info-offset; +p-maximum_volume = p_info-max_volume; +} entry_free(e); -- Tanu ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH] tests: make 'check' optional
--- configure.ac| 17 +++-- src/Makefile.am | 14 ++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index ffb2a35..43ccf44 100644 --- a/configure.ac +++ b/configure.ac @@ -579,12 +579,23 @@ fi AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h]) - check test framework + check unit tests + +AC_ARG_ENABLE([tests], +AS_HELP_STRING([--disable-tests],[Disable unit tests])) + +AS_IF([test x$enable_tests != xno], +[PKG_CHECK_MODULES(LIBCHECK, [ check ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)], +HAVE_LIBCHECK=0) -PKG_CHECK_MODULES(LIBCHECK, [ check ]) AC_SUBST(LIBCHECK_CFLAGS) AC_SUBST(LIBCHECK_LIBS) +AS_IF([test x$enable_tests = xyes test x$HAVE_LIBCHECK = x0], +[AC_MSG_ERROR([*** check library not found])]) + +AM_CONDITIONAL([HAVE_TESTS], [test x$HAVE_LIBCHECK = x1]) + json parsing PKG_CHECK_MODULES(LIBJSON, [ json = 0.9 ]) @@ -1393,6 +1404,7 @@ AS_IF([test x$HAVE_SIMPLEDB = x1], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no) AS_IF([test x$HAVE_ESOUND = x1], ENABLE_ESOUND=yes, ENABLE_ESOUND=no) AS_IF([test x$HAVE_ESOUND = x1 -a x$USE_PER_USER_ESOUND_SOCKET = x1], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no) AS_IF([test x$HAVE_GCOV = x1], ENABLE_GCOV=yes, ENABLE_GCOV=no) +AS_IF([test x$HAVE_LIBCHECK = x1], ENABLE_TESTS=yes, ENABLE_TESTS=no) AS_IF([test x$enable_legacy_database_entry_format != xno], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no) echo @@ -1440,6 +1452,7 @@ echo Enable speex (resampler, AEC): ${ENABLE_SPEEX} Enable WebRTC echo canceller: ${ENABLE_WEBRTC} Enable gcov coverage: ${ENABLE_GCOV} +Enable unit tests: ${ENABLE_TESTS} Database tdb: ${ENABLE_TDB} gdbm:${ENABLE_GDBM} diff --git a/src/Makefile.am b/src/Makefile.am index 2f20df2..f7f8333 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -297,6 +297,7 @@ TESTS_norun += \ alsa-time-test endif +if HAVE_TESTS TESTS_ENVIRONMENT=MAKE_CHECK=1 TESTS = $(TESTS_default) @@ -309,6 +310,19 @@ endif check-daemon: $(TESTS_daemon) PATH=$(builddir):${PATH} $(top_srcdir)/src/tests/test-daemon.sh $(TESTS_daemon) +else +TESTS_ENVIRONMENT= +TESTS = +noinst_PROGRAMS = +check_PROGRAMS = + +check-daemon: + @echo Tests are disabled! + @echo Pass option \--enable-tests\ to configure and install \check\ library properly! + false + +endif + mainloop_test_SOURCES = tests/mainloop-test.c mainloop_test_CFLAGS = $(AM_CFLAGS) $(LIBCHECK_CFLAGS) mainloop_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la -- 1.7.7.6 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH] card-restore: Add the ability to save and restore the maximum volume
module-card-restore now saves the maximum volume. This change includes a entry version bump. --- src/modules/module-card-restore.c | 25 + 1 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c index 7d101c5..c08100b 100644 --- a/src/modules/module-card-restore.c +++ b/src/modules/module-card-restore.c @@ -68,11 +68,12 @@ struct userdata { pa_database *database; }; -#define ENTRY_VERSION 2 +#define ENTRY_VERSION 3 struct port_info { char *name; int64_t offset; +pa_volume_t max_volume; }; struct entry { @@ -145,6 +146,7 @@ static pa_bool_t entry_write(struct userdata *u, const char *name, const struct PA_HASHMAP_FOREACH(p_info, e-ports, state) { pa_tagstruct_puts(t, p_info-name); pa_tagstruct_puts64(t, p_info-offset); +pa_tagstruct_put_volume(t, p_info-max_volume); } key.data = (char *) name; @@ -249,6 +251,15 @@ static struct entry* entry_read(struct userdata *u, const char *name) { p_info-name = pa_xstrdup(port_name); p_info-offset = port_offset; +if (e-version = 3) { +if (pa_tagstruct_get_volume(t, p_info-max_volume) 0) { +pa_xfree(p_info-name); +pa_xfree(p_info); +goto fail; +} +} else +p_info-max_volume = PA_VOLUME_MAX; + pa_assert_se(pa_hashmap_put(e-ports, p_info-name, p_info) = 0); } } @@ -313,6 +324,7 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 p_info = pa_xnew(struct port_info, 1); p_info-name = pa_xstrdup(p-name); p_info-offset = p-latency_offset; +p_info-max_volume = p-max_volume; pa_assert_se(pa_hashmap_put(entry-ports, p_info-name, p_info) = 0); } @@ -336,7 +348,10 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 dirty = true; break; } - +if (p_info-max_volume != old_p_info-max_volume) { +dirty = true; +break; +} } else { dirty = true; break; @@ -388,11 +403,13 @@ static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new /* Always restore the latency offsets because their * initial value is always 0 */ -pa_log_info(Restoring port latency offsets for card %s., new_data-name); +pa_log_info(Restoring port latency offsets and max volume for card %s., new_data-name); PA_HASHMAP_FOREACH(p_info, e-ports, state) -if ((p = pa_hashmap_get(new_data-ports, p_info-name))) +if ((p = pa_hashmap_get(new_data-ports, p_info-name))) { p-latency_offset = p_info-offset; +p-max_volume = p_info-max_volume; +} entry_free(e); -- 1.7.7.6 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] card-restore: Add the ability to save and restore the maximum volume
2012/8/13 Tanu Kaskinen ta...@iki.fi: On Fri, 2012-08-03 at 15:12 +0800, Deng Zhengrong wrote: module-card-restore now saves the maximum volume. This change includes a entry version bump. --- src/modules/module-card-restore.c | 26 +++--- 1 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/modules/module-card-restore.c b/src/modules/module-card-restore.c index 7d101c5..689381d 100644 --- a/src/modules/module-card-restore.c +++ b/src/modules/module-card-restore.c @@ -68,11 +68,12 @@ struct userdata { pa_database *database; }; -#define ENTRY_VERSION 2 +#define ENTRY_VERSION 3 struct port_info { char *name; int64_t offset; +pa_volume_t max_volume; }; struct entry { @@ -145,6 +146,7 @@ static pa_bool_t entry_write(struct userdata *u, const char *name, const struct PA_HASHMAP_FOREACH(p_info, e-ports, state) { pa_tagstruct_puts(t, p_info-name); pa_tagstruct_puts64(t, p_info-offset); +pa_tagstruct_put_volume(t, p_info-max_volume); } key.data = (char *) name; @@ -249,6 +251,18 @@ static struct entry* entry_read(struct userdata *u, const char *name) { p_info-name = pa_xstrdup(port_name); p_info-offset = port_offset; +if (e-version = 3) { +pa_volume_t max_volume = PA_VOLUME_INVALID; + +if (pa_tagstruct_get_volume(t, max_volume) 0) { +pa_xfree(p_info-name); +pa_xfree(p_info); +goto fail; +} + +p_info-max_volume = max_volume; +} p_info-max_volume needs to be initialized even when e-version is less than 3. Also, the local max_volume variable is redundant: you can give p_info-max_volume directly to pa_tagstruct_get_volume(). + pa_assert_se(pa_hashmap_put(e-ports, p_info-name, p_info) = 0); } } @@ -313,6 +327,7 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 p_info = pa_xnew(struct port_info, 1); p_info-name = pa_xstrdup(p-name); p_info-offset = p-latency_offset; +p_info-max_volume = p-maximum_volume; pa_assert_se(pa_hashmap_put(entry-ports, p_info-name, p_info) = 0); } @@ -336,7 +351,10 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 dirty = true; break; } - +if (p_info-max_volume != old_p_info-max_volume) { +dirty = true; +break; +} } else { dirty = true; break; Later in the function there's this: if (card-save_profile) pa_log_info(Storing profile and port latency offsets for card %s., card-name); else pa_log_info(Storing port latency offsets for card %s., card-name); That code is now out of date. Hi Tanu, Thanks for your review, I've updated and sent out another patch. However, I've checked that the above code is still in pulseaudio's master repository. Why it's out dated? So I don't add the message max volume into the messages. @@ -391,8 +409,10 @@ static pa_hook_result_t card_new_hook_callback(pa_core *c, pa_card_new_data *new pa_log_info(Restoring port latency offsets for card %s., new_data-name); There should be a mention of restoring the maximum volume too. PA_HASHMAP_FOREACH(p_info, e-ports, state) -if ((p = pa_hashmap_get(new_data-ports, p_info-name))) +if ((p = pa_hashmap_get(new_data-ports, p_info-name))) { p-latency_offset = p_info-offset; +p-maximum_volume = p_info-max_volume; +} entry_free(e); -- Tanu ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] tests: make 'check' optional
2012/8/13 Deng Zhengrong dzro...@gmail.com: --- configure.ac| 17 +++-- src/Makefile.am | 14 ++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index ffb2a35..43ccf44 100644 --- a/configure.ac +++ b/configure.ac @@ -579,12 +579,23 @@ fi AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h]) - check test framework + check unit tests + +AC_ARG_ENABLE([tests], +AS_HELP_STRING([--disable-tests],[Disable unit tests])) + +AS_IF([test x$enable_tests != xno], +[PKG_CHECK_MODULES(LIBCHECK, [ check ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)], +HAVE_LIBCHECK=0) -PKG_CHECK_MODULES(LIBCHECK, [ check ]) AC_SUBST(LIBCHECK_CFLAGS) AC_SUBST(LIBCHECK_LIBS) +AS_IF([test x$enable_tests = xyes test x$HAVE_LIBCHECK = x0], +[AC_MSG_ERROR([*** check library not found])]) + +AM_CONDITIONAL([HAVE_TESTS], [test x$HAVE_LIBCHECK = x1]) Note the above code that when HAVE_LIBCHECK is therer, HAVE_TESTS is 1, I don't want to use HAVE_TESTS in PKG_CHECK_MODULES() because I try to differentiate. and LIBCHECK_LIBS and LIBCHECK_CFLAGS are more clear than TESTS_LIBS and TESTS_CFLAGS. + json parsing PKG_CHECK_MODULES(LIBJSON, [ json = 0.9 ]) @@ -1393,6 +1404,7 @@ AS_IF([test x$HAVE_SIMPLEDB = x1], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no) AS_IF([test x$HAVE_ESOUND = x1], ENABLE_ESOUND=yes, ENABLE_ESOUND=no) AS_IF([test x$HAVE_ESOUND = x1 -a x$USE_PER_USER_ESOUND_SOCKET = x1], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no) AS_IF([test x$HAVE_GCOV = x1], ENABLE_GCOV=yes, ENABLE_GCOV=no) +AS_IF([test x$HAVE_LIBCHECK = x1], ENABLE_TESTS=yes, ENABLE_TESTS=no) AS_IF([test x$enable_legacy_database_entry_format != xno], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no) echo @@ -1440,6 +1452,7 @@ echo Enable speex (resampler, AEC): ${ENABLE_SPEEX} Enable WebRTC echo canceller: ${ENABLE_WEBRTC} Enable gcov coverage: ${ENABLE_GCOV} +Enable unit tests: ${ENABLE_TESTS} Database tdb: ${ENABLE_TDB} gdbm:${ENABLE_GDBM} diff --git a/src/Makefile.am b/src/Makefile.am index 2f20df2..f7f8333 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -297,6 +297,7 @@ TESTS_norun += \ alsa-time-test endif +if HAVE_TESTS TESTS_ENVIRONMENT=MAKE_CHECK=1 TESTS = $(TESTS_default) @@ -309,6 +310,19 @@ endif check-daemon: $(TESTS_daemon) PATH=$(builddir):${PATH} $(top_srcdir)/src/tests/test-daemon.sh $(TESTS_daemon) +else +TESTS_ENVIRONMENT= +TESTS = +noinst_PROGRAMS = +check_PROGRAMS = + +check-daemon: + @echo Tests are disabled! + @echo Pass option \--enable-tests\ to configure and install \check\ library properly! + false + +endif + mainloop_test_SOURCES = tests/mainloop-test.c mainloop_test_CFLAGS = $(AM_CFLAGS) $(LIBCHECK_CFLAGS) mainloop_test_LDADD = $(AM_LDADD) libpulse.la libpulsecommon-@PA_MAJORMINOR@.la -- 1.7.7.6 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] module-virtual-surround-sink or pulsecore , module re-load error
hello. $ pactl load-module module-virtual-surround-sink hrir=/export/home/ariel/Downloads/hrir_listen/hrirs/hrir-1006.wav 23 -- sound play ok. $ pactl unload-module 23 $ pactl load-module module-virtual-surround-sink hrir=/export/home/ariel/Downloads/hrir_listen/hrirs/hrir-1006.wav -- down pulseaudio. Aug 13 16:49:18 tabane32 pulseaudio[15780]: [alsa-sink] sink-input.c: Assertion 'pa_frame_aligned(nbytes, i-sink-sample_spec)' failed at pulsecore/sink-input.c:1080, function pa_sink_input_update_max_request(). Aborting. ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Mic volume goes automaticly down
2012-8-13 下午2:07 於 Sascha Manns sascha.ma...@open-slx.de 寫道: Hello Listmates, i'm using Pulseaudio with ALSA on openSUSE 12.2 RC2. The issue i had already on earlier versions of openSUSE. The output of alsa-info.sh is published there: http://www.alsa-project.org/db/?f=2216a57a427b1498313a8bada6d323fd1ea72780 I'm not sure if this is a pulseaudio-issue or not. The problem is the following. In ALSA my Microphone is set with vol 100%. Also i've set 100% in the pulseaudio volumesettings. But if i make a call (with skype echo) the input volume goes automaticly down to 0%. The inputstream itself works if i manually hold the input stream by 100%. Otherwise i can hear me in the echo call, but very silent. mic capture volume is really 0% and mic playback volume is 100% and that is reason you can hear echo. Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 31 Capture 0 - 7 Mono: Playback 31 [100%] [on] Capture 0 [0%] [on] control.15 { iface MIXER name 'Mic Playback Volume' value 31 comment { access 'read write' type INTEGER count 1 range '0 - 31' } } control.16 { iface MIXER name 'Mic Playback Switch' value true comment { access 'read write' type BOOLEAN count 1 } } control.17 { iface MIXER name 'Mic Capture Switch' value true comment { access 'read write' type BOOLEAN count 1 } } ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] introduce the new feature of ring buffer log and ask for comments
Hi list, What it is == This is a new feature which plugs into the current logging system to enhance the debugging experiences for users and developers. It would log all level's messages in a separate place, therefore it have the following benefits: - The most important of this feature is that we don't need to restart PulseAudio with a verbose output to view what's wrong under the hood when there's something wrong. It's not only useful for developers but also very useful for end users to report issues. In this case, we don't need to ask the end users to kill PulseAudio and restart PulseAudio which is too advanced for them. Instead, we can just ask them to send the ring buffer log to us, which is only one command away. Easy for them to follow. - It doesn't clobber your normal log output. The normal log output is where you specified it as log target. However this log's info is totally in another place. - It collects all level's messages. It makes the process of peeking into the internals in a quick and easy way. We don't need to change the log level dynamically to more verbose one and then change it back. - The buffer runs in a circular buffer, which means that it wouldn't take too much spaces from your whole system. And if you runs PulseAudio in a really memory tight system, we provide an option to disable this feature totally. How to use it = Unless you compile PulseAudio from source with `--disable-ring-buffer` option, this feature should be enabled by default. We don't need anything to enable, it just runs under the hood. The only interface right now to use it is to call the following commands: pactl get-log Just as anything `pactl` sub-commands, we can even specify another machine. So we can get the log information from a remote server. However, it's subject to `pactl`'s normal authentication and configuration. The implementation details == Note that the best solution is to have a lock-free implementation, but at the current stage, we still have a little bit locking, it's still for experimental purposes, we'd like to resolve this issue. Due to the fact that PulseAudio takes the thread model. We have each smaller buffer for each thread. Therefore, for each logging, each thread runs at its own, there's no locking at all from 'thread1' to 'buffer1' as illustrated in the following chart. +-+ +-+ +-+ | thread1 | | thread2 | ... | thread3 | +-+ +-+ +-+ | || v vv +-+ +-+ +-+ | buffer1 | | buffer2 | ... | buffer3 | +-+ +-+ +-+ | || `---+---' | v ++ | all output | ++ When a user wants to introspect what's going on under the neath, and invokes the `get-log` command, PulseAudio would reassemble the log messages from each thread buffer into a large one and would return it back to users. There is a small compensation for locking here, but as the freqency of `get-log` command is rather low, the cost for locking is at its minimal. Ask for comments We design this feature to try to be useful for users and developers. We'd like to hear from you how do you think. Please don't hesitate to give your valuable feedback! Thanks! Deng Zhengrong ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] build-sys: Link utf8-test to libpulsecommon.
Hi Tanu, On Mon, Aug 6, 2012 at 2:07 PM, Tanu Kaskinen tanu.kaski...@digia.com wrote: Fixes this: /usr/bin/ld: utf8_test-utf8-test.o: undefined reference to symbol 'pa_log_set_level' /usr/bin/ld: note: 'pa_log_set_level' is defined in DSO /home/takaskin/dev/pulseaudio/src/.libs/libpulsecommon-2.98.so so try adding it to the linker command line /home/takaskin/dev/pulseaudio/src/.libs/libpulsecommon-2.98.so: could not read symbols: Invalid operation Same issue here on a ubuntu 12.04. The patch fixes the issue for me. I guess this is a difference in linker behavior (1) and the fact that libpulse has an implicit linking to libpulsecommon (2). If I try to compile the sample in (1) I get an error. Best regards, Frédéric (1) https://fedoraproject.org/wiki/UnderstandingDSOLinkChange (2) ~/projects/git/pulseaudio(master *$%) ldd ./src/.libs/libpulse.so ... libpulsecommon-2.98.so = /home/fredo/projects/git/pulseaudio/src/.libs/libpulsecommon-2.98.so (0xb76e4000) ... ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] How to decrease cpu usage?
Hi, I'm using Pulseaudio on a Raspberry Pi to play sound over my local network and I looking for a way to configure pulseaudio to decrease its cpu usage. At this point, on system wide running, pulseaudio uses 34% cpu when it idles, when music is played, it uses 42%. It's a lot on the 700 mhz raspberry pi cpu, I'm pretty sure there is a way to decrease it, but documentation don't talk about this point. I don't use the raspberry internal sound card, I plugged a little usb Terratec aureon sound card, it works very well excepted the cpu usage... Thank you Christophe ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] card-restore: Add the ability to save and restore the maximum volume
On Mon, 2012-08-13 at 15:44 +0800, rong deng wrote: 2012/8/13 Tanu Kaskinen ta...@iki.fi: On Fri, 2012-08-03 at 15:12 +0800, Deng Zhengrong wrote: @@ -336,7 +351,10 @@ static void subscribe_callback(pa_core *c, pa_subscription_event_type_t t, uint3 dirty = true; break; } - +if (p_info-max_volume != old_p_info-max_volume) { +dirty = true; +break; +} } else { dirty = true; break; Later in the function there's this: if (card-save_profile) pa_log_info(Storing profile and port latency offsets for card %s., card-name); else pa_log_info(Storing port latency offsets for card %s., card-name); That code is now out of date. Hi Tanu, Thanks for your review, I've updated and sent out another patch. However, I've checked that the above code is still in pulseaudio's master repository. Why it's out dated? So I don't add the message max volume into the messages. Sorry for being unclear. I meant that with your patch the messages are outdated, because they don't mention the volume limit. -- Tanu ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] build-sys: Link utf8-test to libpulsecommon.
On Mon, 2012-08-13 at 17:22 +0200, Dalleau, Frederic wrote: Hi Tanu, On Mon, Aug 6, 2012 at 2:07 PM, Tanu Kaskinen tanu.kaski...@digia.com wrote: Fixes this: /usr/bin/ld: utf8_test-utf8-test.o: undefined reference to symbol 'pa_log_set_level' /usr/bin/ld: note: 'pa_log_set_level' is defined in DSO /home/takaskin/dev/pulseaudio/src/.libs/libpulsecommon-2.98.so so try adding it to the linker command line /home/takaskin/dev/pulseaudio/src/.libs/libpulsecommon-2.98.so: could not read symbols: Invalid operation Same issue here on a ubuntu 12.04. The patch fixes the issue for me. Thanks for the report. I've pushed the patch now. -- Tanu ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] How to decrease cpu usage?
Hello, At this point, on system wide running, pulseaudio uses 34% cpu when it idles, when music is played, it uses 42%. It's a lot on the 700 mhz raspberry pi cpu, I'm pretty sure there is a way to decrease it, but documentation don't talk about this point. that sounds way too high... unfortunately, the Broadcom CPU does not support ARM NEON I found that the ARM assembler code does not improve performance on a Cortex-A8, maybe it also helps to disable on the Raspberry? I don't use the raspberry internal sound card, I plugged a little usb Terratec aureon sound card, it works very well excepted the cpu usage... would be interesting to find out where the CPU time is spent; in PulseAudio or somethere in the USB stack... do you have a chance to do some profiling? maybe you can get oprofile to work? regards, p. -- Peter Meerwald +43-664-218 (mobile) ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 4/4] volume ramp: add client api support for volume ramping
Hi Jaska, Jaska Uimonen jaska.uimo...@helsinki.fi writes: From: Jaska Uimonen jaska.uimo...@helsinki.fi --- src/map-file|3 + src/pulse/introspect.c | 83 src/pulse/introspect.h |9 src/pulse/stream.c |5 ++- src/pulsecore/native-common.h |3 + src/pulsecore/pdispatch.c |2 + src/pulsecore/protocol-native.c | 88 ++- 7 files changed, 190 insertions(+), 3 deletions(-) diff --git a/src/map-file b/src/map-file index 69cf25b..2e2791a 100644 --- a/src/map-file +++ b/src/map-file @@ -91,12 +91,15 @@ pa_context_set_event_callback; pa_context_set_name; pa_context_set_sink_input_mute; pa_context_set_sink_input_volume; +pa_context_set_sink_input_volume_ramp; pa_context_set_sink_mute_by_index; pa_context_set_sink_mute_by_name; pa_context_set_sink_port_by_index; pa_context_set_sink_port_by_name; pa_context_set_sink_volume_by_index; pa_context_set_sink_volume_by_name; +pa_context_set_sink_volume_ramp_by_index; +pa_context_set_sink_volume_ramp_by_name; pa_context_set_source_output_mute; pa_context_set_source_output_volume; pa_context_set_source_mute_by_index; diff --git a/src/pulse/introspect.c b/src/pulse/introspect.c index 38a9d1c..6d13d8f 100644 --- a/src/pulse/introspect.c +++ b/src/pulse/introspect.c @@ -1412,6 +1412,62 @@ pa_operation* pa_context_set_sink_volume_by_name(pa_context *c, const char *name return o; } +pa_operation* pa_context_set_sink_volume_ramp_by_index(pa_context *c, uint32_t idx, const pa_cvolume *volume, uint32_t time, int type, pa_context_success_cb_t cb, void *userdata) { +pa_operation *o; +pa_tagstruct *t; +uint32_t tag; + +pa_assert(c); +pa_assert(PA_REFCNT_VALUE(c) = 1); +pa_assert(volume); + +PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); +PA_CHECK_VALIDITY_RETURN_NULL(c, c-state == PA_CONTEXT_READY, PA_ERR_BADSTATE); +PA_CHECK_VALIDITY_RETURN_NULL(c, pa_cvolume_valid(volume), PA_ERR_INVALID); + +o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata); + +t = pa_tagstruct_command(c, PA_COMMAND_SET_SINK_VOLUME_RAMP, tag); +pa_tagstruct_putu32(t, idx); +pa_tagstruct_puts(t, NULL); +pa_tagstruct_put_cvolume(t, volume); +pa_tagstruct_putu32(t, time); +pa_tagstruct_putu8(t, type); +pa_pstream_send_tagstruct(c-pstream, t); +pa_pdispatch_register_reply(c-pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); + +return o; +} + +pa_operation* pa_context_set_sink_volume_ramp_by_name(pa_context *c, const char *name, const pa_cvolume *volume, uint32_t time, int type, pa_context_success_cb_t cb, void *userdata) { +pa_operation *o; +pa_tagstruct *t; +uint32_t tag; + +pa_assert(c); +pa_assert(PA_REFCNT_VALUE(c) = 1); +pa_assert(name); +pa_assert(volume); + +PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); +PA_CHECK_VALIDITY_RETURN_NULL(c, c-state == PA_CONTEXT_READY, PA_ERR_BADSTATE); +PA_CHECK_VALIDITY_RETURN_NULL(c, pa_cvolume_valid(volume), PA_ERR_INVALID); +PA_CHECK_VALIDITY_RETURN_NULL(c, !name || *name, PA_ERR_INVALID); + +o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata); + +t = pa_tagstruct_command(c, PA_COMMAND_SET_SINK_VOLUME_RAMP, tag); +pa_tagstruct_putu32(t, PA_INVALID_INDEX); +pa_tagstruct_puts(t, name); +pa_tagstruct_put_cvolume(t, volume); +pa_tagstruct_putu32(t, time); +pa_tagstruct_putu8(t, type); +pa_pstream_send_tagstruct(c-pstream, t); +pa_pdispatch_register_reply(c-pdispatch, tag, DEFAULT_TIMEOUT, pa_context_simple_ack_callback, pa_operation_ref(o), (pa_free_cb_t) pa_operation_unref); + +return o; +} + pa_operation* pa_context_set_sink_mute_by_index(pa_context *c, uint32_t idx, int mute, pa_context_success_cb_t cb, void *userdata) { pa_operation *o; pa_tagstruct *t; @@ -1509,6 +1565,33 @@ pa_operation* pa_context_set_sink_input_mute(pa_context *c, uint32_t idx, int mu return o; } +pa_operation* pa_context_set_sink_input_volume_ramp(pa_context *c, uint32_t idx, const pa_cvolume *volume, uint32_t time, int type, pa_context_success_cb_t cb, void *userdata) { +pa_operation *o; +pa_tagstruct *t; +uint32_t tag; + +pa_assert(c); +pa_assert(PA_REFCNT_VALUE(c) = 1); +pa_assert(volume); + +PA_CHECK_VALIDITY_RETURN_NULL(c, !pa_detect_fork(), PA_ERR_FORKED); +PA_CHECK_VALIDITY_RETURN_NULL(c, c-state == PA_CONTEXT_READY, PA_ERR_BADSTATE); +PA_CHECK_VALIDITY_RETURN_NULL(c, pa_cvolume_valid(volume), PA_ERR_INVALID); + +o = pa_operation_new(c, NULL, (pa_operation_cb_t) cb, userdata); + +t = pa_tagstruct_command(c,
Re: [pulseaudio-discuss] How to decrease cpu usage?
Le 13/08/2012 19:40, Peter Meerwald a écrit : Hello, At this point, on system wide running, pulseaudio uses 34% cpu when it idles, when music is played, it uses 42%. It's a lot on the 700 mhz raspberry pi cpu, I'm pretty sure there is a way to decrease it, but documentation don't talk about this point. that sounds way too high... unfortunately, the Broadcom CPU does not support ARM NEON I found that the ARM assembler code does not improve performance on a Cortex-A8, maybe it also helps to disable on the Raspberry? I don't use the raspberry internal sound card, I plugged a little usb Terratec aureon sound card, it works very well excepted the cpu usage... would be interesting to find out where the CPU time is spent; in PulseAudio or somethere in the USB stack... do you have a chance to do some profiling? maybe you can get oprofile to work? regards, p. Hi Peter, thanks for your reply. I'm afraid that probably out of my competences, but I currently compile oprofile on the raspberry (it will probably take lot of time), and I will try to do something with it. Thanks again Christophe ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] GSoC status report VII
Hello, This is the last week of GSoC and I am getting ready to finish. Over the past two weeks (sorry I missed a report), I've refactored the Desktop Notifications code to allow for integration with Ubuntu's Application Indicators and I've written a separate application to interface between PulseAudio and libappindicator through D-Bus. I've also implemented a backend that uses this to provide notification interactions in Ubuntu. I should be pushing all this to github as soon as I get the configure and makefiles working properly (hopefully tomorrow, but possibly on Wednesday). This week I will also work on cleaning up any code that needs that and on correctly setting up the configure/makefile scripts for the different parts of the project. Ștefan. ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss