• Jan Schmidt's avatar
    Rewrite the pulse plugin, conditionally enabling new behaviour with · 0037635b
    Jan Schmidt authored
    newer pulseaudio.
    Fixes: #567794
    * Hook pulsesink's volume property up with the stream volume -- not the
      sink volume in PA.
    * Read the device description directly from the sink instead of going
      via the mixer.
    * Properly implement _reset() methods for both sink and source to avoid
      deadlocks when shutting down a pipeline.
    * Replace all simple pa_threaded_mainloop_wait() by proper loops to
      guarantee that we wait for the right event in case multiple events are
      fired.  While this is not strictly necessary in many cases it
      certainly is more correct and makes me sleep better at night.
    * Replace CHECK_DEAD_GOTO macros with proper functions
    * Extend the number of supported channels to 32 since that is the actual
      limit in PA.
    * Get rid of _dispose() methods since we don't need them.
    * Increase the volume property upper limit of the sink to 1000.
    * Reset function pointers after we disconnect a stream/context. Better
      fix for bug 556986.
    * Reset the state of the element properly if open/prepare fails
    * Cork the PA stream when the pipeline is paused. This allows the PA
    * daemon to
      close audio device on pause and thus save a bit of power.
    * Set PA stream properties based on GST tags such as GST_TAG_TITLE,
      GST_TAG_ARTIST, and so on.
    Signed-off-by: Lennart Poettering's avatarLennart Poettering <lennart@poettering.net>
pulsesrc.c 28.4 KB