core, alsa: Better drain reporting
authorDavid Henningsson <david.henningsson@canonical.com>
Fri, 1 Mar 2013 10:51:54 +0000 (11:51 +0100)
committerDavid Henningsson <david.henningsson@canonical.com>
Wed, 20 Mar 2013 10:55:42 +0000 (11:55 +0100)
commite87eb85474e0d357d82a9a38097144b607e1ef57
treebb59e3eadbd936480b08238f7b8e0ef3ade44b2d
parentada92732f0086035c850e877c791e23a79bf923d
core, alsa: Better drain reporting

Previously, a drain request was acknowledged up to two hw buffers
too late, causing unnecessary delays.

This implements a new chain of events called process_underrun
which triggers exactly when the sink input has finished playing,
so the drain can be acknowledged quicker.

It could later be improved to give better underrun reporting to
clients too.

Tested-by: Dmitri Paduchikh <dpaduchikh@gmail.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
src/modules/alsa/alsa-sink.c
src/pulsecore/protocol-native.c
src/pulsecore/sink-input.c
src/pulsecore/sink-input.h
src/pulsecore/sink.c
src/pulsecore/sink.h