Re: [pulseaudio-discuss] [PATCH] tests: make 'check' optional

2012-10-05 Thread rong deng
Thanks a lot for the follow-ups.

2012/10/4 Tanu Kaskinen ta...@iki.fi:
 On Mon, 2012-08-20 at 16:24 +0800, rong deng wrote:
 ping.

 Sorry to keep you waiting. I've pushed the patch now (I needed it in my
 own packaging work). Thanks for the contribution!

 --
 Tanu

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] PulseAudio on OSX

2012-09-14 Thread rong deng
Hi,

2012/9/13 Jared Sohn jared.s...@gmail.com:
 I want to use PulseAudio to separately control the volume of processes
 on OSX.  Is this possible, and if so what is the best way for doing
 this?

 I have found some instructions at
 http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/OSX and also
 have found an OSX-specific port at
 https://github.com/zonque/PulseAudioOSX along with an accompanying PDF
 and presentation describing the work.  My impression is that if I
 follow the instructions at the first link, it will allow me to play
 sounds created on other computers, but because I don't think it
 includes a HAL plug-in and other OSX-specific code, I don't think it
 will let me control the volumes for OSX processes.

 Is this an accurate state of affairs?  If so, is development
 continuing for OSX integration? (the github project hasn't been
 updated in 11 months), how does integrating in the OSX-specific port
 fit into the roadmap?, and is there further information about how well
 the existing PulseAudioOSX works?


Last time I tried it, it can't even run through the configure part, it
needs a separate patch (I've submitted it to this mailing list before,
but it hasn't been accepted.)

 Thanks,


 Jared
 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] thank you all for a nice summer of code

2012-08-30 Thread rong deng
Hi PulseAudio community,

It's a great honour for me to be selected as this year's google summer
of code on PulseAudio project and now GSoC is nearing the end. I would
say it's a nice experience for me. I'm involved in the mailing list
discussion, get used to talk on IRC room, I've never done this before
:) Everyone here is quite nice, whenever I got a question, I can ask
and also everyone is sharing his/her tips, e.g. I once asked how to
use the git related tools and many people respond. I'll still be
around, looking for things that i'm capable of to fix or to improve.
Thank you guys! I had a great summer, and hope you had too. :)

Thanks!
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] resampler: Fix crash if 'auto' resampler chooses ffmpeg with variable rate

2012-08-24 Thread rong deng
2012/8/24 Tanu Kaskinen ta...@iki.fi:
 On Wed, 2012-08-22 at 19:31 +0530, Arun Raghavan wrote:
 On Wed, 2012-08-22 at 15:42 +0200, Frédéric Dalleau wrote:
 [...]
  diff --git a/src/pulsecore/resampler.c b/src/pulsecore/resampler.c
  index 17f1783..8199bc4 100644
  --- a/src/pulsecore/resampler.c
  +++ b/src/pulsecore/resampler.c
  @@ -237,7 +237,10 @@ pa_resampler* pa_resampler_new(
   #ifdef HAVE_SPEEX
   method = PA_RESAMPLER_SPEEX_FLOAT_BASE + 3;
   #else
  -method = PA_RESAMPLER_FFMPEG;
  +if (flags  PA_RESAMPLER_VARIABLE_RATE)
  +method = PA_RESAMPLER_TRIVIAL;
  +else
  +method = PA_RESAMPLER_FFMPEG;
   #endif
   }

 The trivial resampler is not a good fallback. I'd rather make speex a
 mandatory dep again.

 Whether or not the trivial resampler is a good fallback depends on the
 use case. If someone thinks that it's a good idea to compile pulseaudio
 without speex support, then I would expect him to be fine with the
 trivial resampler (otherwise he wouldn't have disabled speex support).


Besides, I once profiled and it showed the trivial resampler is much
faster, esp on resource limited embedded boards. Hmm, the output sound
is not so much bad...
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] resampler: Fix crash if 'auto' resampler chooses ffmpeg with variable rate

2012-08-24 Thread rong deng
2012/8/25 rong deng dzro...@gmail.com:
 Besides, I once profiled and it showed the trivial resampler is much
 faster, esp on resource limited embedded boards. Hmm, the output sound
 is not so much bad...

to be correct, i shouldn't have said faster, actually the cpu usage is lower.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH 0/2] change pa_bool_t to bool

2012-08-23 Thread rong deng
2012/8/23 Thomas Martitz ku...@rockbox.org:
 Am 22.08.2012 06:56, schrieb Tanu Kaskinen:

 David said:


 I don't think there is any reason to not do s/pa_bool_t/bool/g.
 Probably the reason for this might be historical, as some compilers may
 have supported some C99 features but not all of them (Microsoft
 compilers come to mind).

 I don't know if MSVC supports stdbool.h or not, but AFAIK you can
 compile PulseAudio for Windows also with GCC, so you don't have to put
 up with MSVC's silly limitations.


 Is it even possible to use MSVC (or even Visual Studio)? I thought gcc
 (mingw32/mingw-w64) was mandatory.

If gcc (mingw series) was mandatory, then I think this patch is OK.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] running in high priority

2012-08-22 Thread rong deng
2012/8/22 Tanu Kaskinen ta...@iki.fi:
 On Thu, 2012-08-16 at 04:55 +0200, Sladjan Ri wrote:
 Hi,

 is it beneficial to run in high priority at all? I tested and found
 stuttering with the src-high-quality resampling, with nice level -11
 and CPU went up to 70% on one core (gnome-system-monitor).
 Without high-priority, it hadn't stuttered and CPU only went to about 40%.

 I think we had some problems with the pulseaudio nice level in Maemo
 too. I don't fully (or at all...) understand what causes the problems,
 but it indeed looks like having a low nice level can actually make
 performance worse.

Is it possible that it's the issue of the kernel that malfunctioning
on scheduling?


 If your system works better without the high-priority option, then feel
 free not to use it.

 --
 Tanu

 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH 0/2] change pa_bool_t to bool

2012-08-22 Thread rong deng
2012/8/22 Tanu Kaskinen ta...@iki.fi:
 On Wed, 2012-08-22 at 08:01 +0800, rong deng wrote:
 2012/8/22 Tanu Kaskinen ta...@iki.fi:
  Hi Deng,
 
  On Sat, 2012-07-07 at 22:49 +0800, Deng Zhengrong wrote:
  As discussed, this might not handle the microsoft compilers well. But let 
  me
  post this series of patches and think out a better way to handle it. 
  Or... we
  don't change it at all.
 
  The patches didn't reach the list. (I thought they were stuck in the
  moderation queue, but that's not the case.)

 Hi Tanu,

 Thanks for reminding, I can resend it later, but how's others take on
 this change? IIRC, someone is objecting this idea...

 David said:

 I don't think there is any reason to not do s/pa_bool_t/bool/g.
 Probably the reason for this might be historical, as some compilers may
 have supported some C99 features but not all of them (Microsoft
 compilers come to mind).

 I don't know if MSVC supports stdbool.h or not, but AFAIK you can
 compile PulseAudio for Windows also with GCC, so you don't have to put
 up with MSVC's silly limitations.

Thanks for your support. If that's the case, we should push the patch
forward. :)

Hmm, I've seen on the mailing list that someone is sending patches on
Windows platform, we might contact them to try this patch first to see
if it can pass the compilation. Sorry that I don't have a developer
environment ready Windows to use.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH 0/2] change pa_bool_t to bool

2012-08-21 Thread rong deng
2012/8/22 Tanu Kaskinen ta...@iki.fi:
 Hi Deng,

 On Sat, 2012-07-07 at 22:49 +0800, Deng Zhengrong wrote:
 As discussed, this might not handle the microsoft compilers well. But let me
 post this series of patches and think out a better way to handle it. Or... we
 don't change it at all.

 The patches didn't reach the list. (I thought they were stuck in the
 moderation queue, but that's not the case.)

Hi Tanu,

Thanks for reminding, I can resend it later, but how's others take on
this change? IIRC, someone is objecting this idea...
___
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-08-13 Thread rong deng
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-08-13 Thread rong deng
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] introduce the new feature of ring buffer log and ask for comments

2012-08-13 Thread rong deng
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] tests: make 'check' optional

2012-08-09 Thread rong deng
2012/8/9, David Henningsson david.hennings...@canonical.com:
 Seems to do what it should. Sorry if I was a little harsh on you
 yesterday, it's just that bringing in new dependencies is nothing to
 take lightly. It brings work upon others, e g packagers. Most
 dependencies also means that size increases, which means that on an
 ever-overflowing Live-CD we have to throw something else out. (Check
 being the exception I assume, as it is just a build-time and not a
 run-time dependency.)

 So, Thanks for this patch, and
 Acked-by: David Henningsson david.hennings...@canonical.com

Thanks for your quick review.

This is what this mailing list is aimed to do. We argue, we learn, we
improve. :)


deng
___
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.

2012-08-08 Thread rong deng
2012/8/8, Chan-yeol Park chanyeol.p...@gmail.com:
 Hi Tanu,

 On 08/06/2012 09:07 PM, Tanu Kaskinen 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
 ---
   src/Makefile.am |2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/src/Makefile.am b/src/Makefile.am
 index 7f947bd..faebe2a 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
 @@ -321,7 +321,7 @@ thread_mainloop_test_LDFLAGS = $(AM_LDFLAGS)
 $(BINLDFLAGS)

   utf8_test_SOURCES = tests/utf8-test.c
   utf8_test_CFLAGS = $(AM_CFLAGS) $(LIBCHECK_CFLAGS)
 -utf8_test_LDADD = $(AM_LDADD) libpulse.la
 +utf8_test_LDADD = $(AM_LDADD) libpulse.la
 libpulsecommon-@PA_MAJORMINOR@.la
   utf8_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(LIBCHECK_LIBS)

   format_test_SOURCES = tests/format-test.c
 Before LIBCHECK_[CFLAGS,LIBS] are introduced, it was built fine to me.
 I am using ubuntu 12.04, gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

I'm the one who added the libcheck, but from here, I've no errors
compiling this test case... If you have any other problem regarding
this, feel free to ask me. :)
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH v2 1/6] build-sys: add `check` test framework

2012-08-08 Thread rong deng
2012/8/8, David Henningsson david.hennings...@canonical.com:
 On 07/17/2012 08:45 AM, Deng Zhengrong wrote:
 + check test framework 
 +
 +PKG_CHECK_MODULES(LIBCHECK, [ check ])
 +AC_SUBST(LIBCHECK_CFLAGS)
 +AC_SUBST(LIBCHECK_LIBS)
 +

 Is it possible to make this build dependency optional? If so, please do,
 because
   1) if you just want to compile PulseAudio and not the tests, you
 should be able to, and
   2) I have to go through some administrative work if I have to bring in
 yet another build dependency to PulseAudio. :-/

Hi David,

Thanks for the review, I have a little different opinion:
1. when we're in the process of development, we should always run the
tests all the time to track any possible regressions. It's not a good
idea to bypass the tests, because that's the value of all these tests,
otherwise we could just delete them all. :)
2. it's sad to bring in yet another build dependency, but you know
life is not perfect... We've already added e.g. json lib before.
Besides, this check framework is already widely used in other
programs, e.g. gstreamer. and I've checked with several major linux
distribution that this can be easily installed. mostly install check
or check-devel or something similar. One command and it's all set. :)

deng
___
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.

2012-08-08 Thread rong deng
2012/8/8, Chan-yeol Park chanyeol.p...@gmail.com:
 Hi

 On 08/08/2012 09:44 PM, rong deng wrote:
 2012/8/8, Chan-yeol Park chanyeol.p...@gmail.com:
 Hi Tanu,

 On 08/06/2012 09:07 PM, Tanu Kaskinen 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
 ---
src/Makefile.am |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/src/Makefile.am b/src/Makefile.am
 index 7f947bd..faebe2a 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
 @@ -321,7 +321,7 @@ thread_mainloop_test_LDFLAGS = $(AM_LDFLAGS)
 $(BINLDFLAGS)

utf8_test_SOURCES = tests/utf8-test.c
utf8_test_CFLAGS = $(AM_CFLAGS) $(LIBCHECK_CFLAGS)
 -utf8_test_LDADD = $(AM_LDADD) libpulse.la
 +utf8_test_LDADD = $(AM_LDADD) libpulse.la
 libpulsecommon-@PA_MAJORMINOR@.la
utf8_test_LDFLAGS = $(AM_LDFLAGS) $(BINLDFLAGS) $(LIBCHECK_LIBS)

format_test_SOURCES = tests/format-test.c
 Before LIBCHECK_[CFLAGS,LIBS] are introduced, it was built fine to me.
 I am using ubuntu 12.04, gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
 I'm the one who added the libcheck, but from here, I've no errors
 compiling this test case... If you have any other problem regarding
 this, feel free to ask me. :)
 Yes I think so. This could be gcc or another environment issue.
 Could you introduce your environment?

I'm using Fedora Core 16, nothing special, the normal gcc bundled with it...

For shell, I'm using zsh, but I don't it would cause this problem.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH v2 1/6] build-sys: add `check` test framework

2012-08-08 Thread rong deng
2012/8/9, Tanu Kaskinen ta...@iki.fi:
 On Wed, 2012-08-08 at 22:16 +0800, rong deng wrote:
 2012/8/8, David Henningsson david.hennings...@canonical.com:
  But what about a user of e g Linux From Scratch or other minimalist
  distros, who just wants to set up and build PulseAudio as quick as
  possible? Why should (s)he be required to also bring in the check
  package just for building it?

 Other packages would already require the check package.
 From the webpage of check framework: http://check.sourceforge.net/
 there's a section called Projects Using Check, there are several
 common projects using it. e.g. XCB and gstreamer. So if the user wants
 to install X environment he/she would already install XCB and the
 check dependency is there.

 Note that check is only an optional dependency in gstreamer (I didn't
 check whether this is also the case with XCB, but I'd be surprised if it
 wasn't):
 http://cgit.freedesktop.org/gstreamer/gstreamer/tree/configure.ac#n557

Hi Tanu,

Thanks for your reminder, OK. Now I think it's a valid point. So I've
sent out a patch to make check optional. But by default it's enabled,
I think running tests is a good practice that should be encouraged.

From my last time trying LFS, it was years ago, it runs tests for each
package to make sure the installation from LFS isn't misbehaved. But I
haven't checked the current status for LFS lately.

If you have time, or David has the time, please help to review that
patch. I've done some simple configurations it works for me.

Thanks!
___
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-08-05 Thread rong deng
2012/8/3 poljar (Damir Jelić) poljari...@gmail.com:
 On Fri, Aug 03, 2012 at 08:25:18PM +0800, rong deng wrote:
 Hi Poljar,

 Sorry for top posting.

 This patch is based on your github's commit. Of course, it doesn't
 work yet because not everything is weaved together... However I'd like
 to give others a chance to see what i'm doing and whether i'm on the
 right track.


 Hi.

 I've changed the variable from maximum_volume to max_volume (for
 consistency sake).

I've update it accordingly here:
https://github.com/dzrongg/pulseaudio-1/tree/volume


 I've gave the patch a glimpse and for now it looks fine to me.

Thanks for your quick review!
___
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-08-03 Thread rong deng
Hi Poljar,

Sorry for top posting.

This patch is based on your github's commit. Of course, it doesn't
work yet because not everything is weaved together... However I'd like
to give others a chance to see what i'm doing and whether i'm on the
right track.

2012/8/3 Deng Zhengrong dzro...@gmail.com:
 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;
 +}
 +
  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;
 @@ -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);

  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);

 --
 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 v2] tests: enable to test standalone pulseaudio daemon

2012-07-29 Thread rong deng
Hi Arun,

2012/7/24, Arun Raghavan arun.ragha...@collabora.co.uk:
 Hi Deng,

 On Mon, 2012-07-23 at 13:12 +0800, Deng Zhengrong wrote:
 With this fix, `check-daemon` doesn't need a system-wide running
 pulseaudio
 anymore.

 The method to use is to invoke `make check-daemon` under `src/` and it
 just
 works! :)


 The tests seem to be connecting to my session PulseAudio, and not the
 temporary one you're spawning in the script. Please take a look and see
 what's missing.

I finally set things up and reproduced this issue. Now the problem is
that the pulseaudio client would try to connect the DISPLAY's
PULSE_SERVER by default at first. So even I set the
PULSE_RUNTIME_PATH, it still use the first config server. Therefore it
results to the original running pulseaudio daemon, now the workaround
is simple I unset the DISPLAY env variable, and it works locally now.
You can unset the DISPLAY and take a try again. The commit is placed
at the top of the branch
https://github.com/dzrongg/pulseaudio/tree/more-tests-converted

Thanks!
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] I want to know about how to communication one module with another module

2012-07-25 Thread rong deng
Hi Zhen,

2012/7/24 Zhen Fu f...@marvell.com:
 Hi all developer,



 I want to know about how to communication one module with another module. Is
 it use asyncmg? Thank you!

I'm not the expert here, but here's my two cents. :)

In theory, two modules should not communicate directly with each
other. For a module, the only thing it should care about is the core,
and it should communicate with the core, handling the messages from
the core etc. As you might know already, pulseaudio takes the thread
model, for most of the modules, they would reside in a separate
thread, e.g. ALSA. Communicating directly with two methods could be a
mess, and even worse, one module is totally unaware when the another
module is loaded or not.

So the current way, in my humble opinion, is to use the core as a
bridge to direct the communication between two modules.

That said, the intrinsic question is why you should do this at your
first place? :) Maybe there's a chance to skip this ugliness in your
design.

Thanks!
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] build: fix Mac OS X configure process

2012-07-22 Thread rong deng
2012/7/23 Arun Raghavan arun.ragha...@collabora.co.uk:
 On Thu, 2012-07-19 at 16:41 +0800, Deng Zhengrong wrote:
 The original header file doesn't exist on Lion (10.7.4).
 ---
  configure.ac |5 -
  1 files changed, 4 insertions(+), 1 deletions(-)

 diff --git a/configure.ac b/configure.ac
 index 0290fa0..e600fba 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -473,7 +473,10 @@ if test x$os_is_darwin = x1 ; then
  # How do I check a framework library - AC_CHECK_LIB prob. won't 
 work??, just assign LIBS  hope
  AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
  [LIBS=$LIBS -framework CoreServices],
 -[AC_MSG_ERROR([CoreServices.h header file not found])]
 +
 [AC_CHECK_HEADERS([/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h],
 +[LIBS=$LIBS -framework CoreServices],
 +[AC_MSG_ERROR([CoreServices.h header file not found])]
 +)]
  )

  AC_MSG_RESULT([ok])

 Wil this will work fine on previous versions of OS X?

Yes, it should, as in older versions, the current header file place is
still in the configure file and would be checked.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] tests: enable to test standalone pulseaudio daemon

2012-07-22 Thread rong deng
2012/7/23 Arun Raghavan arun.ragha...@collabora.co.uk:
 On Thu, 2012-07-19 at 16:50 +0800, Deng Zhengrong wrote:
 With this fix, `check-daemon` doesn't need a system-wide running pulseaudio
 anymore.

 The method to use is to invoke `make check-daemon` under `src/` and it just
 works! :)
 ---
  src/Makefile.am  |4 +-
  src/tests/test-daemon.sh |   61 
 ++
  2 files changed, 63 insertions(+), 2 deletions(-)
  create mode 100755 src/tests/test-daemon.sh

 diff --git a/src/Makefile.am b/src/Makefile.am
 index 4f6bd4f..39e1373 100644
 --- a/src/Makefile.am
 +++ b/src/Makefile.am
 @@ -302,11 +302,11 @@ TESTS = $(TESTS_default)
  if BUILD_TESTS_DEFAULT
  noinst_PROGRAMS = $(TESTS_default) $(TESTS_norun) $(TESTS_daemon)
  else
 -check_PROGRAMS = $(TESTS_default) $(TESTS_norun) $(TESTS_daemon)
 +check_PROGRAMS = $(TESTS_default) $(TESTS_norun)
  endif

  check-daemon:
 - $(MAKE) check TESTS=$(TESTS_daemon)
 + $(top_builddir)/src/tests/test-daemon.sh

 I'd like to pass the list of tests kept in the Makefile with the script
 just executing them all (maybe you could just pass them in on the
 command line and iterate over $@). The rationale is that the rest of the
 test lists are in Makefile.am, so keeping it all in the same place makes
 tracking things later simpler.

Yes, you're right, I'll pass these tests as the parameter for the script.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] GSOC: bluetooth latency - status report [7/?]

2012-07-20 Thread rong deng
2012/7/21 poljar (Damir Jelić) poljari...@gmail.com:
 Hi mailing list.

 After the midterm break I've started extending pavucontrol for the GUI
 part of my GSOC project. A very bad implementation is on my github page.

 A better version is on the way and should land by the end of the week.
 After that I'm planing on working on the Configurable maximum volume
 for sinks and sources project as described on the GSoC2012 wiki page. [1]


Hey,

I was planning on this as well. :D

deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] core: add more verbose error info

2012-07-17 Thread rong deng
2012/7/17, Arun Raghavan arun.ragha...@collabora.co.uk:
 On Tue, 2012-07-10 at 08:32 +0800, Deng Zhengrong wrote:
 I'm debugging an issue, and find that it's more useful for users to know
 which
 directory hasn't been created instead of just knowing error code.
 ---

 Pulled, with a minor whitespace addition to satisfy my OCD. BTW, could
 you please line-wrap your commit messages at 80 characters? Not too
 important, just for consistency.


Ah, thanks for the tips. I have to say sorry that I just sent a series
of test related patches and their commit messages are a bit larger
than 80 characters...
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] GSoC weekly report logging and test framework

2012-07-13 Thread rong deng
Hi list,

This week, I've sent several small patches, during the review process,
I've also learnt the way to add version number to patches. :) However,
these patches are still in review, I'll ask committers to commit these
patches later.

For the test framework, according to Arun's suggestion, I've changed
the self written test framework to 'check' framework which is used in
streamer as well. To see how this test framework should be integrated,
I've sent a test case of 'cpu-test' to the mailing list. The usage is
quite simple. A simple call of 'fail_unless()' is everything. Today,
I've also changed mix-test to leverage this new test framework, the
patch is sent out yet, but you can take a peek at this place.
https://github.com/dzrongg/pulseaudio/tree/test-framework-try-2

I'll do more conversion, so expect more tests are translated to use
this new test framework in next weeks. :D

Thanks.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] [PATCH] bluetooth: add a parenthesis around pa_streq()

2012-07-11 Thread rong deng
From 6df0bd0e06c6dd35b66d7ffe03001c0d9e9b8b5d Mon Sep 17 00:00:00 2001
From: Deng Zhengrong dzro...@gmail.com
Date: Wed, 11 Jul 2012 15:28:34 +0800
Subject: [PATCH] bluetooth: add a parenthesis around pa_streq()

I know that pa_streq() is defined with an extra parenthesis, but everytime I
look at it, it makes me nervous. :D

So it's better to add the parenthesis here.
---
 src/modules/bluetooth/module-bluetooth-policy.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/modules/bluetooth/module-bluetooth-policy.c
b/src/modules/bluetooth/module-bluetooth-policy.c
index 665185d..7f19447 100644
--- a/src/modules/bluetooth/module-bluetooth-policy.c
+++ b/src/modules/bluetooth/module-bluetooth-policy.c
@@ -65,7 +65,7 @@ static pa_hook_result_t
source_put_hook_callback(pa_core *c, pa_source *source,
 if (!s)
 return PA_HOOK_OK;

-if pa_streq(s, a2dp_source)
+if (pa_streq(s, a2dp_source))
 role = music;
 else {
 pa_log_debug(Profile %s cannot be selected for loopback, s);
-- 
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] bluetooth: add a parenthesis around pa_streq()

2012-07-11 Thread rong deng
Hi Frederic,

I should have CC-ed you for this patch. Please review!

Thanks!

2012/7/11 Deng Zhengrong dzro...@gmail.com:
 I know that pa_streq() is defined with an extra parenthesis, but everytime I
 look at it, it makes me nervous. :D

 So it's better to add the parenthesis here.
 ---
  src/modules/bluetooth/module-bluetooth-policy.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/src/modules/bluetooth/module-bluetooth-policy.c 
 b/src/modules/bluetooth/module-bluetooth-policy.c
 index 665185d..7f19447 100644
 --- a/src/modules/bluetooth/module-bluetooth-policy.c
 +++ b/src/modules/bluetooth/module-bluetooth-policy.c
 @@ -65,7 +65,7 @@ static pa_hook_result_t source_put_hook_callback(pa_core 
 *c, pa_source *source,
  if (!s)
  return PA_HOOK_OK;

 -if pa_streq(s, a2dp_source)
 +if (pa_streq(s, a2dp_source))
  role = music;
  else {
  pa_log_debug(Profile %s cannot be selected for loopback, s);
 --
 1.7.11.1

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] man/pulse-cli-syntax: document option `set-log-target`

2012-07-10 Thread rong deng
2012/7/10 David Henningsson david.hennings...@canonical.com:
 On 07/09/2012 07:01 PM, rong deng wrote:

 How to add the nicely v2 just before
 the email subject? :)


 You edit the patch file with your favorite editor right before you send it
 with git send-email.

Oh, thanks for the tips.



 2012/7/10 Deng Zhengrong dzro...@gmail.com:

 ---
   man/pulse-cli-syntax.5.xml.in | 5 +
   1 file changed, 5 insertions(+)

 diff --git a/man/pulse-cli-syntax.5.xml.in
 b/man/pulse-cli-syntax.5.xml.in
 index 9d3f278..d7f3f11 100644
 --- a/man/pulse-cli-syntax.5.xml.in
 +++ b/man/pulse-cli-syntax.5.xml.in
 @@ -258,6 +258,11 @@ USA.
   /option

   option
 +  poptset-log-target/opt argtarget/arg/p
 +  optdescpChange the log
 target(null,auto,syslog,stderr,file:PATH)./p/optdesc
 +/option


 What about the newfile: thing?

The new file thing is not implemented for pacmd set-log-target yet.
Because I don't see the usage for this tool to use newfile. When we
want to use this pacmd, we can just set file to another new file by
ourselves.

If you think it's useful, I can help port that part of implementation
to pacmd set-log-target as well. Just say it and I'll do the rest of
the porting. ;)
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] OT: Adapting the subject tag `PATCH` in Git (was: [PATCH] man/pulse-cli-syntax: document option `set-log-target`)

2012-07-10 Thread rong deng
2012/7/10 Paul Menzel paulepan...@users.sourceforge.net:
 Am Dienstag, den 10.07.2012, 22:17 +0800 schrieb rong deng:
 2012/7/10 David Henningsson david.hennings...@canonical.com:
  On 07/09/2012 07:01 PM, rong deng wrote:
 
  How to add the nicely v2 just before the email subject? :)
 
  You edit the patch file with your favorite editor right before you send it
  with git send-email.

 Oh, thanks for the tips.

 `git format-patch` has the option `--subject-prefix=PATCH v2`. The
 option is explained in the manual: `git help format-patch`.

I thought there was such an option in `git send-email`, but I haven't
found it. Well, it is in `git format-patch` :D Thanks!



 Thanks,

 Paul

 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] core: add ring buffer for log

2012-07-09 Thread rong deng
Hi Peter,

2012/7/9 Peter Meerwald pme...@pmeerw.net:
 Hello Deng Zhengrong,

 The usage model for this ring buffer is that we can peek into what's going on
 under the hood without restarting pulseaudio daemon, we enable this via 
 logging
 all level's messages.

 what is the expected memory usage? 512*200 bytes + 200 timestamps? is this
 per thread?

 can this be made compile-time configurable?


Thanks for your interests in this usage. Yes. It's per thread and the
memory usage is quite low right now. It's a good idea to make it
compile time configurable. I'll add that support. :)

-deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] core: add ring buffer for log

2012-07-09 Thread rong deng
2012/7/9 Peter Meerwald pme...@pmeerw.net:

  The usage model for this ring buffer is that we can peek into what's 
  going on
  under the hood without restarting pulseaudio daemon, we enable this via 
  logging
  all level's messages.
 
  what is the expected memory usage? 512*200 bytes + 200 timestamps? is this
  per thread?
 
  can this be made compile-time configurable?

 Thanks for your interests in this usage. Yes. It's per thread and the
 memory usage is quite low right now. It's a good idea to make it
 compile time configurable. I'll add that support. :)

 100KB times ?? threads... there are probably better ways to waste memory
 on an embedded device :)

Ah, you're concerned of embedded devices. Sorry that I haven't thought
about it yet. I'm developing on desktop devices. :) So making it
configurable seems to be a must.


 hope the patch doesn't get too ugly with tons of #ifdefs

My new code doesn't add any #ifdef. They're brought into this patch
via the diff tool...

-deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] man: add man documents to set-log-target

2012-07-09 Thread rong deng
Hi Paul,

2012/7/10 Paul Menzel paulepan...@users.sourceforge.net:
 Dear Rong,


 thank you for the patch.


 Am Montag, den 09.07.2012, 23:52 +0800 schrieb dzrongg:

 Please set up Git with your first and last name.

 $ git config --global user.name Rong Deng

 I hope I spelled that correctly. You can also some other transcription
 in brackets after that.

 Also please use the following commit summary (`git commit --amend`).

 man/pulse-cli-syntax: document option `set-log-target`


Thanks for suggesting the title.

 ---
  man/pulse-cli-syntax.5.xml.in | 5 +
  1 file changed, 5 insertions(+)

 diff --git a/man/pulse-cli-syntax.5.xml.in b/man/pulse-cli-syntax.5.xml.in
 index 9d3f278..db93b96 100644
 --- a/man/pulse-cli-syntax.5.xml.in
 +++ b/man/pulse-cli-syntax.5.xml.in
 @@ -248,6 +248,11 @@ USA.

section name=Log Commands
  option
 +  poptset-log-target/opt argtarget/arg/p
 +  optdescpChange the log target./p/optdesc
 +/option
 +

 1. Should that be sorted alphabetically?

Hmm, some of the current one are not sorted. But anyway, I'll change
it between set-log-meta and set-log-time.

 2. What log targets are there? Maybe add some information about how to
 find out.

Will add it. Thanks!
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] man/pulse-cli-syntax: document option `set-log-target`

2012-07-09 Thread rong deng
The new version is sent. BTW: How to add the nicely v2 just before
the email subject? :)

2012/7/10 Deng Zhengrong dzro...@gmail.com:
 ---
  man/pulse-cli-syntax.5.xml.in | 5 +
  1 file changed, 5 insertions(+)

 diff --git a/man/pulse-cli-syntax.5.xml.in b/man/pulse-cli-syntax.5.xml.in
 index 9d3f278..d7f3f11 100644
 --- a/man/pulse-cli-syntax.5.xml.in
 +++ b/man/pulse-cli-syntax.5.xml.in
 @@ -258,6 +258,11 @@ USA.
  /option

  option
 +  poptset-log-target/opt argtarget/arg/p
 +  optdescpChange the log 
 target(null,auto,syslog,stderr,file:PATH)./p/optdesc
 +/option
 +
 +option
poptset-log-time/opt argboolean/arg/p
optdescpShow timestamps in log messages./p/optdesc
  /option
 --
 1.7.11.1

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] GSoC weekly status report logging and testing facilities (Deng Zhengrong)

2012-07-07 Thread rong deng
Hi list,

This week, I've crafted the basic test framework and use it to
implement a cpu test for intel x86 architecture, I've uploaded this
patch to this mailing list. So hopefully I'll translate more and more
test cases using this new test framework.

I've also helped Tanu to change pa_bool_t to bool type. Patches are
sent to the mailing list for review. But it seems that some people
have some concerns about this change and thinks that it might break
Microsoft compilers as its compiler doesn't support C99 features.

I've also changed my original ring buffer log to log all level's data.
Because the usage for this ring log is to help developers or users to
know what's going on under the hood without restarting the pulseaudio
daemon again. So with this change it would log all level's data, even
debug's. Hopefully it would ease developers' and users' debugging a
lot.

In this week, I also spent 3~4 days for vacation. :)

Here's my this week's status report. Thanks, any comments are welcome.

-deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] change pa_bool_t to bool

2012-07-05 Thread rong deng
2012/7/4 rong deng dzro...@gmail.com:
 Hi Tanu,

 2012/7/2 Tanu Kaskinen ta...@iki.fi:
 On Sun, 2012-07-01 at 23:46 +0800, Deng Zhengrong wrote:
 According to Tanu's suggestion, we should change pa_bool_t to bool.  And 
 here
 are my patches. Now when you do git grep pa_bool_t, here's nothing... 
 Please
 help to review. :)

 Thanks a lot! Assuming that you didn't do the changes by hand, could you
 put the command line that was used to generate the changes to the commit
 message? Also, could you change TRUE to true and FALSE to false at the
 same time? And remove the now-unused definitions from
 src/pulsecore/macro.h.

 OK. I'll change the TRUE and FALSE value accordingly. However, I'm on
 vacation today, I'll do this tomorrow afternoon :)

Hi Tanu,

During the translation, I find that there's also a similar type called
dbus_bool_t, should we change it as well?

-deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Transitioning from pa_bool_t to C99 bool

2012-07-05 Thread rong deng
2012/7/5 Arun Raghavan arun.ragha...@collabora.co.uk:
 On Thu, 2012-07-05 at 15:19 +0800, rong deng wrote:
 2012/7/2 David Henningsson david.hennings...@canonical.com:
  I don't think there is any reason to not do s/pa_bool_t/bool/g. Probably 
  the
  reason for this might be historical, as some compilers may have supported
  some C99 features but not all of them (Microsoft compilers come to mind).

 Does pulseaudio work on Windows? If it doesn't work at all, why should
 we bother ;)

 It does. :) People use it for streaming, and there's also a waveout
 sink/source.

Great. It's good to know.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] change pa_bool_t to bool

2012-07-03 Thread rong deng
Hi Tanu,

2012/7/2 Tanu Kaskinen ta...@iki.fi:
 On Sun, 2012-07-01 at 23:46 +0800, Deng Zhengrong wrote:
 According to Tanu's suggestion, we should change pa_bool_t to bool.  And here
 are my patches. Now when you do git grep pa_bool_t, here's nothing... 
 Please
 help to review. :)

 Thanks a lot! Assuming that you didn't do the changes by hand, could you
 put the command line that was used to generate the changes to the commit
 message? Also, could you change TRUE to true and FALSE to false at the
 same time? And remove the now-unused definitions from
 src/pulsecore/macro.h.

OK. I'll change the TRUE and FALSE value accordingly. However, I'm on
vacation today, I'll do this tomorrow afternoon :)
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] about the size of the mail (Was Your message to pulseaudio-discuss awaits moderator approval)

2012-07-01 Thread rong deng
Hi list,

Can we make the limit a little bigger? When we do some overall
refactoring, we often hit the limit of the patch size...

Thanks!

2012/7/1  pulseaudio-discuss-boun...@lists.freedesktop.org:
 Your mail to 'pulseaudio-discuss' with the subject

     [PATCH 6/8] modules: change pa_bool_t to bool

 Is being held until the list moderator can review it for approval.

 The reason it is being held:

     Message body is too big: 139870 bytes with a limit of 100 KB

 Either the message will get posted to the list, or you will receive
 notification of the moderator's decision.  If you would like to cancel
 this posting, please visit the following URL:

     
 http://lists.freedesktop.org/mailman/confirm/pulseaudio-discuss/0517f36be83047c3d96a81c1e124027ac91a767d

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH 1/8] utils: change pa_bool_t to bool

2012-07-01 Thread rong deng
Hi list,

According to Tanu's suggestion, I've changed pa_bool_t to bool. Now,
when we do git grep pa_bool_t, here's nothing. :) Please help to
review. Thanks!

2012/7/1 Deng Zhengrong dzro...@gmail.com:
 ---
  src/utils/pacat.c |   10 +-
  src/utils/pacmd.c |    2 +-
  src/utils/pactl.c |   10 +-
  src/utils/padsp.c |    2 +-
  4 files changed, 12 insertions(+), 12 deletions(-)

 diff --git a/src/utils/pacat.c b/src/utils/pacat.c
 index ec360f7..0f564c8 100644
 --- a/src/utils/pacat.c
 +++ b/src/utils/pacat.c
 @@ -66,19 +66,19 @@ static char *device = NULL;

  static SNDFILE* sndfile = NULL;

 -static pa_bool_t verbose = FALSE;
 +static bool verbose = FALSE;
  static pa_volume_t volume = PA_VOLUME_NORM;
 -static pa_bool_t volume_is_set = FALSE;
 +static bool volume_is_set = FALSE;

  static pa_sample_spec sample_spec = {
      .format = PA_SAMPLE_S16LE,
      .rate = 44100,
      .channels = 2
  };
 -static pa_bool_t sample_spec_set = FALSE;
 +static bool sample_spec_set = FALSE;

  static pa_channel_map channel_map;
 -static pa_bool_t channel_map_set = FALSE;
 +static bool channel_map_set = FALSE;

  static sf_count_t (*readf_function)(SNDFILE *_sndfile, void *ptr, sf_count_t 
 frames) = NULL;
  static sf_count_t (*writef_function)(SNDFILE *_sndfile, const void *ptr, 
 sf_count_t frames) = NULL;
 @@ -88,7 +88,7 @@ static pa_stream_flags_t flags = 0;
  static size_t latency = 0, process_time = 0;
  static int32_t latency_msec = 0, process_time_msec = 0;

 -static pa_bool_t raw = TRUE;
 +static bool raw = TRUE;
  static int file_format = -1;

  static uint32_t cork_requests = 0;
 diff --git a/src/utils/pacmd.c b/src/utils/pacmd.c
 index a2492fd..421de08 100644
 --- a/src/utils/pacmd.c
 +++ b/src/utils/pacmd.c
 @@ -99,7 +99,7 @@ int main(int argc, char*argv[]) {
      char *obuf = NULL;
      size_t buf_size, ibuf_size, ibuf_index, ibuf_length, obuf_size, 
 obuf_index, obuf_length;
      char *cli;
 -    pa_bool_t ibuf_eof, obuf_eof, ibuf_closed, obuf_closed;
 +    bool ibuf_eof, obuf_eof, ibuf_closed, obuf_closed;
      struct pollfd pollfd[3];
      struct pollfd *watch_socket, *watch_stdin, *watch_stdout;

 diff --git a/src/utils/pactl.c b/src/utils/pactl.c
 index 3a5066c..93b16ef 100644
 --- a/src/utils/pactl.c
 +++ b/src/utils/pactl.c
 @@ -65,10 +65,10 @@ static uint32_t
      source_output_idx = PA_INVALID_INDEX,
      sink_idx = PA_INVALID_INDEX;

 -static pa_bool_t short_list_format = FALSE;
 +static bool short_list_format = FALSE;
  static uint32_t module_index;
 -static pa_bool_t suspend;
 -static pa_bool_t mute;
 +static bool suspend;
 +static bool mute;
  static pa_volume_t volume;
  static enum volume_flags {
      VOL_UINT     = 0,
 @@ -88,7 +88,7 @@ static pa_channel_map channel_map;
  static size_t sample_length = 0;
  static int actions = 1;

 -static pa_bool_t nl = FALSE;
 +static bool nl = FALSE;

  static enum {
      NONE,
 @@ -850,7 +850,7 @@ static void volume_relative_adjust(pa_cvolume *cv) {
  }

  static void unload_module_by_name_callback(pa_context *c, const 
 pa_module_info *i, int is_last, void *userdata) {
 -    static pa_bool_t unloaded = FALSE;
 +    static bool unloaded = FALSE;

      if (is_last  0) {
          pa_log(_(Failed to get module information: %s), 
 pa_strerror(pa_context_errno(c)));
 diff --git a/src/utils/padsp.c b/src/utils/padsp.c
 index f6a3520..0be5ede 100644
 --- a/src/utils/padsp.c
 +++ b/src/utils/padsp.c
 @@ -1513,7 +1513,7 @@ int open(const char *filename, int flags, ...) {
      return real_open(filename, flags, mode);
  }

 -static pa_bool_t is_audio_device_node(const char *path) {
 +static bool is_audio_device_node(const char *path) {
      return
          pa_streq(path, /dev/dsp) ||
          pa_streq(path, /dev/adsp) ||
 --
 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] add a new log target that enables to create new log file if it exists

2012-07-01 Thread rong deng
Hi David,

Could you help to review this patch? Does this patch solve your
feature request about logging? If this patch is OK for you, could you
please help to commit this patch for me? :D Thanks!

2012/7/1 Deng Zhengrong dzro...@gmail.com:
 ---
  src/daemon/cmdline.c     |    4 ++--
  src/daemon/daemon-conf.c |   33 +
  2 files changed, 35 insertions(+), 2 deletions(-)

 diff --git a/src/daemon/cmdline.c b/src/daemon/cmdline.c
 index 2c4c4b5..8fffda1 100644
 --- a/src/daemon/cmdline.c
 +++ b/src/daemon/cmdline.c
 @@ -141,7 +141,7 @@ void pa_cmdline_help(const char *argv0) {
                                                     this time passed\n
                   --log-level[=LEVEL]               Increase or set 
 verbosity level\n
               -v                                    Increase the verbosity 
 level\n
 -                 --log-target={auto,syslog,stderr,file:PATH}\n
 +                 --log-target={auto,syslog,stderr,file:PATH,newfile:PATH}\n
                                                     Specify the log target\n
                   --log-meta[=BOOL]                 Include code location in 
 log messages\n
                   --log-time[=BOOL]                 Include timestamps in 
 log messages\n
 @@ -315,7 +315,7 @@ int pa_cmdline_parse(pa_daemon_conf *conf, int argc, char 
 *const argv [], int *d

              case ARG_LOG_TARGET:
                  if (pa_daemon_conf_set_log_target(conf, optarg)  0) {
 -                    pa_log(_(Invalid log target: use either 'syslog', 
 'stderr' or 'auto' or a valid file name 'file:path'.));
 +                    pa_log(_(Invalid log target: use either 'syslog', 
 'stderr' or 'auto' or a valid file name 'file:path', 'newfile:path'.));
                      goto fail;
                  }
                  break;
 diff --git a/src/daemon/daemon-conf.c b/src/daemon/daemon-conf.c
 index dd2e7b6..74ae26d 100644
 --- a/src/daemon/daemon-conf.c
 +++ b/src/daemon/daemon-conf.c
 @@ -176,6 +176,8 @@ void pa_daemon_conf_free(pa_daemon_conf *c) {
      pa_xfree(c);
  }

 +#define PA_LOG_MAX_SUFFIX_NUMBER 100
 +
  int pa_daemon_conf_set_log_target(pa_daemon_conf *c, const char *string) {
      pa_assert(c);
      pa_assert(string);
 @@ -203,6 +205,37 @@ int pa_daemon_conf_set_log_target(pa_daemon_conf *c, 
 const char *string) {
              printf(Failed to open target file %s, error : %s\n, file_path, 
 pa_cstrerror(errno));
              return -1;
          }
 +    } else if (pa_startswith(string, newfile:)) {
 +        char file_path[512];
 +        int log_fd;
 +        int version = 0;
 +        int left_size;
 +        char *p;
 +
 +        pa_strlcpy(file_path, string + 8, sizeof(file_path));
 +
 +        left_size = sizeof(file_path) - strlen(file_path);
 +        p = file_path + strlen(file_path);
 +
 +        do {
 +            memset(p, 0, left_size);
 +
 +            if (version  0)
 +                pa_snprintf(p, left_size, .%d, version);
 +        } while (++version = PA_LOG_MAX_SUFFIX_NUMBER 
 +                 (log_fd = open(file_path, O_RDWR|O_TRUNC|O_CREAT|O_EXCL, 
 S_IRUSR | S_IWUSR))  0);
 +
 +        if (version  PA_LOG_MAX_SUFFIX_NUMBER) {
 +            memset(p, 0, left_size);
 +            printf(Tried to open target files '%s', '%s.1', '%s.2' ... 
 '%s.%d', but all failed.\n,
 +                   file_path, file_path, file_path, file_path, 
 PA_LOG_MAX_SUFFIX_NUMBER - 1);
 +            return -1;
 +        } else {
 +            printf(Opened target file %s\n, file_path);
 +            c-auto_log_target = 0;
 +            c-log_target = PA_LOG_FD;
 +            pa_log_set_fd(log_fd);
 +        }
      } else
          return -1;

 --
 1.7.7.6

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Logging startup of the first instance...

2012-06-29 Thread rong deng
2012/6/29 David Henningsson david.hennings...@canonical.com:
 On 06/29/2012 07:48 AM, rong deng wrote:

 Hi David,

 Sorry for the top posting, I've added the O_EXCL flag and please
 review again. Thanks!


 I meant that if opening with O_EXCL fails, you should redo the test to see
 if the file has now showed up, and if so, pick the next number, then try
 again with O_EXCL, and so on.

Thanks for your suggestion, please review it again. Much cleaner, I think. :)


0001-add-a-new-log-target-that-enables-to-create-new-log-.patch
Description: Binary data
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] GSoC: status report: logging and testing facilities

2012-06-29 Thread rong deng
Hi list,

This week, I've been investigating existing test frameworks such as
check, cmockery, gtests etc. Some of quite powerful, but they're
implemented in C++ language, some are simple enough for our projects.
However, after some investigation, I decided to write our own test
framework, which would fits our needs much more. I've already come up
with the framework and I'm in the process of translating one old test
case into my new test framework. I'll post the patch in the next two
days hopefully.

In the meantime, I've started looking around for HDMI displays, trying
to do some other interesting stuff for pulse audio community.

Some other time are spent for implementing David's feature request for
logging, which is not to override the current existing log file. The
approach I come up with is to add some suffix number into the user
specified log file. e.g. if user specifies pa-log. Then it would try
use the pa-log file first, and then pa-log.1, pa-log.2 ... until it
finds a non-existent file name. I think this method is simple and
useful. This patch is still in the process of review. If anyone has
some ideas for it. Speak it out. :)

Thanks!
-deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] status report from Deng Zhengrong Jun 15th

2012-06-15 Thread rong deng
Hi list,

This week, I've mainly done two things:

1. integrate the coverage test tool 'gcov' into our pulseaudio
compiling system and make it work. With my hack into Makefile and
configure.ac, if we use './configure --enable-gcov' and then make and
make install, the pulseaudio program would create additional coverage
data file to be processed further. I have an idea to visualize our
coverage metrics through these generated coverage data files. But
according to Arun's suggestion, it can be put into low priority.

2. write a first version of ring buffer log support. Now we have a per
thread log pool. So therefore different threads would not be blocked
for a long time. However, as in the current (first) implementation,
the log reading has to block other log writing. But remember, the log
reading doesn't happen much often, so I think we can bear with it.
Besides, in order to make it an advanced option to use, I've also
added another log target called ring. The default log target is to
send the logs to stderr, but after we call pacmd set-log-target ring
we can make it log all the logs into the new ring buffer. and to read
the log, we can use pactl log to get the all the logs. Nice? :)

Oh, I've created a profile on github and the pulseaudio project page
is here: https://github.com/dzrongg/pulseaudio
Generally I create a new feature in each branch, so don't look into
master branch. :)

Nice weekend for all!
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Logging startup of the first instance...

2012-06-10 Thread rong deng
2012/6/4 David Henningsson david.hennings...@canonical.com:
 Sometimes I have users who complain about some problem, but after a
 pulseaudio -k the problem is gone. Therefore asking them to restart
 pulseaudio with - switch will not give any information about the error.

  * I could log to syslog (the default), but once I enable debug level log,
 the syslog daemon can start to ratelimit, especially during the startup
 phase of pulseaudio.

  * I could log to file, but then that file would quickly get overwritten, as
 soon as pulseaudio restarts.

 Is there a trick I'm missing here? Or would it be possible to add some kind
 of expansion to the log file name to make the files unique?

Hi David,

I'm doing the GSoC to enhance the logging functionality in pulseaudio,
I could take a look at this issue and try to improve it a little bit.
:)
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] fix the wrong parameter sequence in pax11publish

2012-06-08 Thread rong deng
2012/6/8 Arun Raghavan arun.ragha...@collabora.co.uk

 On Tue, 2012-06-05 at 20:30 +0800, rong deng wrote:
  Hi Arun,
 
  Could you help review this patch?

 Done, thanks. BTW, please avoid top-posting and HTML email (GMail allows
 you to compose plain-text messages as well).

 -- Arun


OK. Thanks. I'll get used to the rules in open source community. :)
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] gsoc 2012 status report about logging and testing

2012-06-08 Thread rong deng
Hi list,

This week I've finished the implementation of log category support.
The core part incorporate changes in log.c and log.h, but the most
part of this patch is to add the category definition to each c file.
The interface is quite simple, we just need to add one line similar to
this #define PA_LOG_CATEGORY_DEFAULT module-loopback  at the first
line of the implementation file.

During the implementation, I've also spotted a simple error which
mixed the wrong parameters, and so a patch is cooked and set out for
review.

The next step I would do is to refine the categories' name, and start
using 'gcov' tool to get the coverage of pulseaudio. How to implement
the ring buffer is still undergoing.

-deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH 1/2] add log category

2012-06-07 Thread rong deng
diff --git a/src/daemon/caps.c b/src/daemon/caps.c
index 3759388..49a0690 100644
--- a/src/daemon/caps.c
+++ b/src/daemon/caps.c
@@ -20,6 +20,8 @@
   USA.
 ***/

+#define PA_LOG_CATEGORY_DEFAULT daemon
+


The above #define is duplicated below in various files.
Will it be better to have it #define'ed in a header file and inclued that
wherever required ?

[deng] Yes, I'll make damon a macro in log.h and then use something
similar to the below:
#DEFINE PA_LOG_CATEGORY_DEFAULT PA_LOG_CATEGORY_DAEMON

See previous comment, applies to above #define as well.
Please check all such occurrences below.

[deng] About the granularity of the category, I'm afraid I'm still in the
first stage which is to make it as simple as possible. e.g. bluetooth
module has different c files, and in the current implementation I make
different files into different categories, but yes, we can make it one big
category. We just need to reach a consensus on this one.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] fix the wrong parameter sequence in pax11publish

2012-06-05 Thread rong deng
Hi Arun,

Could you help review this patch?


2012/6/3 Deng Zhengrong dzro...@gmail.com

 ---
  src/utils/pax11publish.c |2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)

 diff --git a/src/utils/pax11publish.c b/src/utils/pax11publish.c
 index 0f9a030..16cf866 100644
 --- a/src/utils/pax11publish.c
 +++ b/src/utils/pax11publish.c
 @@ -195,7 +195,7 @@ int main(int argc, char *argv[]) {

 pa_client_conf_free(conf);

 -if (pa_authkey_load_auto(cookie_file, cookie, TRUE,
 sizeof(cookie))  0) {
 +if (pa_authkey_load_auto(cookie_file, TRUE, cookie,
 sizeof(cookie))  0) {
 fprintf(stderr, _(Failed to load cookie data\n));
 goto finish;
 }
 --
 1.7.7.6


___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] fix wrong parameter sequence

2012-06-05 Thread rong deng
Please review. Thanks!


0001-fix-the-wrong-parameter-sequence-in-pax11publish.patch
Description: Binary data
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] status report of gsoc

2012-06-01 Thread rong deng
Hi PulseAudio community,

This is Deng Zhengrong, a member of this year's GSoC. I'll send the status
report every Friday, as this is my first status report, I'll write about
what I've done till now.

I've mainly focused on enhancement of logging facilities lately. One part
is about adding a category support just as gstreamer does. I've done a
first version, and the draft is sent to this mailing list. What it does is
to register the category upfront and then specify the category in pa_log()
related functions. However with the detailed discussion with my mentor
Arun, he suggests we should do it in a dynamica way which checks whether
the currect category specified exists or not, if it doesn't exist, we
created it on the fly. This advice is good and it could simplify the
implementation in some degree. Then the user could use 'pacmd' or 'pactl'
tool to change the category's log level correspondingly. One massive part
of my code is to add one line to each C file to specify what the current
category this file wants to be in. Overall, this feature could ease the
debugging of developers and make users focuses on what they care about.

Another part of my work is to add the circular buffer to pulseaudio. A
patch is already sent to this mailing list for review. But one drawback it
has is that it uses a mutex lock. So the recent work is to remove the lock.
Discussion with Arun on IRC (also the reply on my proposal from Colin)
suggests we could leverage some work from systemd journal. Therefore, I've
tried to install systemd journal on my old Fedora Core distribution, the
journal is not happy though, after I intalled it and rebooted my linux
machine, it hangs... So some work has been done to recover my Linux system,
quite sad. However, the idea of using one log for each slot is good and I'd
investigate more to see if we can borrow it into pulseaudio.

Other simple contribution include a) replacing strcmp with pa_streq and b)
adding the feature of dynamically changing the log target. The second one
is a simple feature, but its nice to have, at least for me. Sometimes I
don't like the current log target of the running pulseaudio, if we don't
have this feature, we have to kill pulseaudio and restart it again with the
correct log target we want.

So that's all for my status report, my next report would be next Friday,
stay tuned. :D

PS: If someone is interested in each part and has some comments, feel free
to contact me.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] add set-log-target command for pacmd

2012-05-28 Thread rong deng
Hi,

Can someone review this? Is it OK to be accepted?



2012/5/25 rong deng dzro...@gmail.com


 2012/5/25 Dalleau, Frederic frederic.dall...@intel.com

 Hi Rong Deng,



 This helps to change log target on the fly.



 You don't need to copy and truncate file_path as a truncated file path is
 useless !
 Instead you can use directly m+5. If the path is too long, open() will
 simply fail.


 Nice catch! I missed this one.

 new path attached.


___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] [PATCH] use pa_streq instead of plain strcmp in daemon-conf.c

2012-05-24 Thread rong deng
Please review and hopefully got accepted. :)

I did a simple grep and saw there are lots of other usages of strcmp, but
let's translate it bit by bit...

--deng


0001-use-pa_streq-instead-of-plain-strcmp.patch
Description: Binary data
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] About My Blog Space

2012-05-21 Thread rong deng
Hi Col,

According to your advice, I'm setting my blog up, to track my status and
some thoughts during this GSoC project. The URL is
http://zhengrong.wordpress.com

I'll make everything related to PulseAudio into the category PulseAudio,
so hopefully it would only output the correct RSS.

There's already one post there. :D

--deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] about log level configuration

2012-05-16 Thread rong deng
Hi list,

I'm implementing 'category' feature in pulseaudio, the 'category' feature
mimics the feature in gstreamer, i.e. we can use something like
'ENV_LOG_DEBUG=loopback:5 pulseaudio' to setup the level of module loopback
to 5.

During my implementation, I found there's already an environment variable
called 'ENV_LOG_LEVEL' used, then my question is how to setup the log level
when both 'ENV_LOG_LEVEL' is set and 'ENV_LOG_DEBUG=*:4' is set? I'm afraid
we can deprecate the usage of the original 'ENV_LOG_DEBUG' and advocate
users to use the new one. How's the community's take on this one?

Any thoughts are welcome.

--deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] My Blog URL for GSoC 2012

2012-05-01 Thread rong deng
Hi Colin,

I've setup one blog space here: http://pulseaudio.blog.com and later I'll
use this blog to publish my status report and my current work. Please help
add this url into pulseaudio's planet.

As long as it's added to pulseaudio's planet, the blog's content would
automatically be sent to this mailing list, right?

deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] thank you letter

2012-04-24 Thread rong deng
Hi PulseAudio community,

It's my first close contact with this community and it's quite positive,
it's a great honor for me to join this year's Google Summer of Code. I'll
start coding these days.

To keep you informed of my status, I would write a biweekly (if it's too
long a time, I can write weekly) status report to this mailing list.

Thanks a lot!
--deng
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] Fwd: [PATCH] proof of concept: use pactl log to get the buffer log

2012-04-02 Thread rong deng
I clicked Reply instead of Reply to All, So I forward my reply mail to
mailing list again.
Sorry for the noises.

-- 已转发邮件 --
发件人: rong deng dzro...@gmail.com
日期: 2012年4月3日 上午10:41
主题: Re: [pulseaudio-discuss] [PATCH] proof of concept: use pactl log to get
the buffer log
收件人: Tanu Kaskinen ta...@iki.fi


Hi Tanu,

Thanks for your detailed comments, my reply is inline:

在 2012年4月3日 上午1:07,Tanu Kaskinen ta...@iki.fi写道:

 Hi Deng[1],


About the chinese name, it's OK to call me either Deng or Zhenrong. :)
Generally speaking, the family name is often matched with Mr/Miss.

Very nice patch, I'm impressed! If it weren't for the threading issues,
 it's almost merge-quality; I found only minor things to complain about.
 Or well, there seems to be a quite bad bug in get_log_buffer(), but that
 should be easy to fix.

 Have you tried if it works with a full buffer? One megabyte sounds like
 something that the tagstruct system might reject. I didn't find any code
 that would limit the tag size, though, except for proplists, so probably
 it will work just fine. (Sidenote: if there are no string size
 limitations in the protocol, I think that's a bug, because clients can
 fool the server, and vice versa, into allocating unlimited amounts of
 memory.)


To be honest, I haven't tried a full buffer yet, I waited a few minutes and
hoped there's enough stuff in the log buffer, and then I did 'pactl log' to
check what's in it. I'm so thrilled when I see some correct output from
this command, so I sent this patch out. :D

As you say, the code isn't really safe to be used from multiple threads.
 It's not obvious to me how this should be solved, because logging from
 realtime threads should be lock-free. Needs some thinking...


I'm thinking about it: how about this?
1. we add another thread called log thread, and this thread solely handles
the operations of putting stuff into log buffer and getting data out of it.
2. the interface between this log thread and other thread is maintained
like some message systems. Other thread simply sends the log message to log
thread and go on with its own work.

Do you think it makes some senses?


 Please read [2], it contains documentation about the coding style rules.


Thanks for your references, I'll follow the coding styles in my later
patches.


 [1] Do you prefer to be called Deng or Zhengrong (or something
 else)? AFAIK Chinese names have different conventions than western
 names, so I don't know if it's correct to just pick the first name...

 [2]
 http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/CodingStyle

 -- Tanu
 [...]



  +memcpy(result, log_buffer[log_start_index], log_used_length);
  +result[log_used_length] = '\0';
  +
  +return result;
  +}

 Shouldn't this copy the buffer in two parts: from log_start_index to the
 end of the buffer, and then from the beginning of the buffer to
 log_end_index?


Nice catch! It should be corrected.


  +
  +static void write_to_circular_buffer(const char *p, size_t len) {
  +const char *base = p;
  +
  +while (len  0) {

 Instead of looping, wouldn't it make sense to just write the tail of the
 log message if it can't fully fit in the buffer? The end result would
 anyway be the same.


You're right, we could do some optimization here to only write the last
part of log message when the overall length is bigger than log buffer.


  +size_t first_chunk;

 I'd prefer first_chunk_len.

  +size_t min = len;

 I don't quite get this variable name. But if you get rid of the looping,
 this shouldn't be needed anyway.


In this version, it's intended to ensure the length copied is not bigger
than the buffer's length. When we do the optimization above, this could be
eliminated.


  +char *get_log_buffer();

 Should have pa_log prefix, i.e. pa_log_get_buffer(). Oh, another thing
 came to my mind: I believe it's not a good idea to declare functions
 with an empty argument list, because that gets translated (for legacy
 reasons) to ..., i.e. any number of arguments. The declaration should
 be pa_log_get_buffer(void);


I've never thought of the translation issue, good to know.


 Also, pa_log_get_buffer_copy(void) would make it more obvious that the
 function is returning a new string that the caller has to free.


Thanks for your suggestion and gives me the idea of how a function name
should be in pulseaudio.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] use CLOCK_MONOTONIC_COARSE to reduce the system call

2012-03-31 Thread rong deng
在 2012年3月30日 下午12:48,Arun Raghavan arun.ragha...@collabora.co.uk写道:

 Hi,

 On Thu, 2012-03-29 at 21:31 +0800, Deng Zhenrong wrote:
  According to the description below:
 
  http://lkml.org/lkml/2009/7/17/258
 
  There are two benefits:
  a) it doesn't need to access the hardware.
  b) avoid the syscall by using vdso clock_gettime().
 
  The cons is the CLOCK_MONOTONIC_COARSE returns the time at the last
  tick.

 As Pierre mentions, we actually _want_ high resolution time sources for
 our uses. We use these timers to predict when the audio buffer will be
 nearing being empty so that we can wake up and fill the buffer again.
 Having a coarse timer for this purpose would mean that we can be woken
 up late, causing the device to underrun and users to hear glitches.


Maybe I'm testing this patch in an idle state, so there's no underrun seen,
I'll take that into account.  Thanks for your clarification here. It helps
me understand pulseaudio better.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] more thoughts about my GSoC plan

2012-03-25 Thread rong deng
Hi all,

I would like to apply for logging/testing project. Here's my attempt to
write more about my thoughts on how this should be done:

First about logging:

1. pulseaudio has already had some support for log level, but it may need
some improvements.
2. the category support is not yet. for this aspect, gstreamer does a much
better job. So I would add similar mechanisms for pulseaudio. For every
plugin, we can advocate developers declare a separate category. And then,
we can something familiar as mymodule:4 to log what we want.
3. the idea of a circle buffer is good. therefore, we can create a new
interface pactl log to display the log. The same as dmesg, that would
be great. However, about the details, Lennart has the idea of using
compression for logging for the whole system, we could do the same if want
to put more stuff in the circular buffer.
4. filtering the logs and display the output with colors are nice features.
color output is available right now in pulseaudio, but we may need to adapt
it into different situations, e.g. circular buffer.

Then about testing:

1. gcov is all about coverage testing. I'm reading more documents about
this tool.
2. As I skim through the code of pulseaudio, it seems it lacks the support
for a testing framework. Many unit tests are made by developers themselves,
and are ad hoc. E.g. the testing and benching program for resampling.
3. I'm not quite sure about what kind of test framework do we want? unit
test framework? Overall functional framework? For unit testing, googletest
seems to be an option. Or we could write our own?

Any thoughts would be welcome.

As Arun pointed out, this project might not be enough for GSoC, I'm also
looking for another project.
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] express my interests in applying GSoC 2012

2012-03-22 Thread rong deng
Thanks all for replying and giving suggestions. I've sent two patches in
another thread, and I've already setup git send-email, cool! It's way easy
to send patches on command lines.

Personally, I'd like to use PRI-prefix, because it looks more standard. But
casting and stick it with %llx should be OK for all platforms.

Thanks!

在 2012年3月22日 下午8:08,John Haxby j...@thehaxbys.co.uk写道:

 On 22/03/12 08:58, Tanu Kaskinen wrote:
  On Wed, 2012-03-21 at 16:21 +0100, David Henningsson wrote:
 
  
   A quick grep through the code shows that this is how we've been doing
 it
   up till now, so we should probably keep it that way for consistency.
  
   So, just for education, would you mind resending the patch with git
   send-email, and using %llx ? Thanks!
  At the risk of turning this into prolonged bikeshedding, IMO the PRI
  constants would be the better solution (with a small margin). I have
  myself used the casting solution in the past to get rid of compiler
  warnings, but that has been because I didn't know about the PRI
  constants.

 Just sticking my oar in here :)

 The PRI constants are the right way to do it.   You can get away with
 casts and %llx (or whatever) almost all the time.

 The trouble is the almost all.   Sooner or later you're going to get
 something breaking either because %llx turns out to be wrong or because
 the cast turns out to be wrong and the compiler has explicitly been told
 not to notice.   Change it to PRI and let the compiler do its job; you
 won't regret it in the long run.

 jch
 ___
 pulseaudio-discuss mailing list
 pulseaudio-discuss@lists.freedesktop.org
 http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] express my interests in applying GSoC 2012

2012-03-21 Thread rong deng
在 2012年3月21日 下午3:21,David Henningsson david.hennings...@canonical.com写道:

 On 03/20/2012 03:48 PM, rong deng wrote:

 Hi all,

 This is Deng Zhenrong from Shanghai China, I've already used Linux as my
 main desktop for several years. Now I would like to express my interests
 in applying pulseaudio's projects for this  year's GSoC in this mail.


 Hi Deng and welcome to PulseAudio! :-)


Hi David,

Thanks for replying this message.


 More contributors are always welcome. As for GSoC, I have never mentored
 anyone and won't be able to do so this summer either, so I'll let somebody
 else answer to that.


No problem. :-)


  Glancing through the ideas, I find I'm interested in several few
 already. :) But I'd like to focus on one thing which is test/log
 facilities for now. I'm still doing my homework on this topic and I'll
 come up with more detailed info in later days.

 So to get my hands dirty, I've already downloaded pulseaudio source code
 and compile it and set it up. Now I find there's a compilation warning,
 and here's my patch to fix it, cool :)

 I'm attaching the patch generated from git format-patch, I'm not sure
 whether it's OK, as I see it from the mailing list, other developers
 send patches directly in mails. This patch is my first one to get
 familiar with the workflow, if there's anything wrong, please tell me. :)


 As for the patch, I believe you did most things right. :-) Some people
 prefer you send the patch using git send-email, but for me, it does not
 matter much.


OK. I'll try to use git send-email for later patches. I haven't set up
this mail system yet, I'll try to figure it out...


 As for using the PRI-prefixes, it seems we do not use this anywhere else
 in the code. Therefore I have two questions:

 1) Do you think there is a risk that some compiler that we want to build
 PulseAudio under, does not support these prefixes (remember, this is not
 only used in Linux, but in Windows, Mac OS, OS/2 IIRC and others)?


No, I don't think it's a risk, as this PRI-prefix is defined in inttypes.h
header file, and according to manual, it is a standard.


 2) Would %llx solve this warning equally well?


On 32-bit system, yes, but then, it's not portable.
To print uin64_t on 32 bit system, we should use %llx,
but to print it on 64 bit system, we should use %lx instead. PRI-prefix
help us handle this.

Yes, there IS another way to handle, we can explicitly
cast 'pa_channel_position_mask_t'  to 'unsigned long long' and use %llx.

It's up to you guys whether it should use PRI-prefix or use this cast. I'm
OK with these both methods. :)

--rong
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


[pulseaudio-discuss] express my interests in applying GSoC 2012

2012-03-20 Thread rong deng
Hi all,

This is Deng Zhenrong from Shanghai China, I've already used Linux as my
main desktop for several years. Now I would like to express my interests in
applying pulseaudio's projects for this  year's GSoC in this mail.

Glancing through the ideas, I find I'm interested in several few already.
:) But I'd like to focus on one thing which is test/log facilities for now.
I'm still doing my homework on this topic and I'll come up with more
detailed info in later days.

So to get my hands dirty, I've already downloaded pulseaudio source code
and compile it and set it up. Now I find there's a compilation warning, and
here's my patch to fix it, cool :)

I'm attaching the patch generated from git format-patch, I'm not sure
whether it's OK, as I see it from the mailing list, other developers send
patches directly in mails. This patch is my first one to get familiar with
the workflow, if there's anything wrong, please tell me. :)

--rong
From 9ee64a319b43f493730d320038fa7f87108fa5e0 Mon Sep 17 00:00:00 2001
From: Deng Zhenrong dzro...@gmail.com
Date: Tue, 20 Mar 2012 22:35:19 +0800
Subject: [PATCH] fix compilation warning

modules/alsa/alsa-mixer.c:3110:21:
warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type 'pa_channel_position_mask_t' [-Wformat]
modules/alsa/alsa-mixer.c:3110:21:
warning: format '%lx' expects argument of type 'long unsigned int', but argument 8 has type 'pa_channel_position_mask_t' [-Wformat]

pa_channel_position_mask_t is type defined to uint64_t, and to display
uint64_t, it's better to use PRIx64 primitives.
---
 src/modules/alsa/alsa-mixer.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index 102ec82..2e768e9 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -3107,7 +3107,7 @@ static pa_bool_t element_is_subset(pa_alsa_element *a, pa_alsa_element *b, snd_m
 return FALSE;
 for (s = 0; s  SND_MIXER_SCHN_LAST; s++)
 if (a-masks[s][a-n_channels-1] != b-masks[s][b-n_channels-1]) {
-pa_log_debug(Element %s is not a subset - mask a: 0x%lx, mask b: 0x%lx, at channel %d,
+pa_log_debug(Element %s is not a subset - mask a: 0x% PRIx64 , mask b: 0x% PRIx64 , at channel %d,
 a-alsa_name, a-masks[s][a-n_channels-1], b-masks[s][b-n_channels-1], s);
 return FALSE;
}
-- 
1.7.6.5

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss