From: Jyri Sarha <jyri.sarha@xxxxxxxxx> On Wed, 22 Dec 2010, Colin Guthrie wrote: > 'Twas brillig, and oku at iki.fi at 20/12/10 16:47 did gyre and gimble: ... >> >> + pa_xfree(l->name); >> pa_xfree(l); >> } > > The assert on l->name on free is probably overkill as pa_xfree will > silently ignore nulls anyway, so it would do no harm. That and it's > pretty much impossible for l->name to be null anyway... > > OK to drop that assert? Assert dropped. On Wed, 22 Dec 2010, Colin Guthrie wrote: > 'Twas brillig, and oku at iki.fi at 20/12/10 16:47 did gyre and gimble: >> From: Jyri Sarha <jyri.sarha at nokia.com> ... >> } > > While I'm not 100% sure here, I think the mixer_callback is needed when > u->sink->flags & PA_SINK_HW_MUTE_CTRL, but you now only activate this > when u->sink->flags & PA_SINK_HW_VOLUME_CTRL. While it's quite unlikely > that some h/w exsist that has PA_SINK_HW_MUTE_CTRL but not > PA_SINK_HW_VOLUME_CTRL I think this should either be set unconditionally > (as before) or at least within an if block that checks for either flag. > Yes, you are right about that. I changed the condition to check for the both flags. I also rebased the patches against the lastest and run couple of brief tests with it. Cheers, Jyri The old cover letter contents: > These are all pretty obvious fixes, but maybe the "core: Use > volume_change_safety_margin when rewinding sync-volume events" > > A volume change always triggers a rewinding on the sink. This is > sometimes a problem when the flat-volume is turning HW volume down and > compensating with SW volume. The rewind gets the samples with the new > SW-volume very close to HW-pointer and we may not have enough headroom > to process rewinding on the streams and monitor source before the > first samples are played out. > > With the patch I first of all rewind the volume changes differently > depending on whether volume is going up or down. The volume events are > rewound as soon as possible after DMA-buffer rewinding and immediately > after it there is a check if we should write something to HW. Jyri Sarha (5): core: Change sematics of pa_flist_new_with_name() (v1.1) core: Use volume_change_safety_margin when rewinding sync-volume events core: Use pa_sink_get_latency_within_thread() in sync-volume code alsa-sink: Fix double use of string alsa-sink: Don't assume we were able to enable hw-volume or sync-volume (v1.1) src/modules/alsa/alsa-sink.c | 56 +++++++++++++++++++++-------------------- src/pulsecore/flist.c | 4 ++- src/pulsecore/flist.h | 4 +- src/pulsecore/sink.c | 33 +++++++++++++----------- 4 files changed, 52 insertions(+), 45 deletions(-)