Set channels and channel-layout on the right structure; that is, the
structure we are going to append to the caps we are building, and not
the structure we are using as a template for all the structures. Fixes
first structure of the returned caps not having any channel info set
on it.
A list of things in caps is something where one is picked in the
course of negotiation. An array is always something that only makes
sense as a whole in that order.
It's not clear why the pad object lock is taken here. But
gst_pad_{has,get}_current_caps() will try to take the lock
as well and deadlock, since it's not recursive.
Local variables are now unused, and the values from the segment copy
are used instead, so remove the now useless local variables and write
to the segment where appropriate.
This requires SHOUT_FORMAT_WEBM, added in libshout 2.3.0,
so video/webm support is contingent on that symbol being
defined.
Also an indentation change required by the pre-commit hook.
https://bugzilla.gnome.org/show_bug.cgi?id=669590
Move common code to jackclient. There we can also handle the request state
message in a better way, as the element callbacks are only run if the element is
active.
pulseaudiosink breaks visualisations in its current form, so let's
prevent it from being autoplugged for the time being.
The best we can hope to do in the 0.10 series is query the list of
available sinks and their formats, and expose these as the bin's sinkpad
caps. While this is not a comprehensive solution, it will make sure that
we're only trying to support compressed formats if we're certain that
one exists.
The long-term fix for this will be in the form of proper upstream
renegotiation support in the 0.11/1.0 series.
https://bugzilla.gnome.org/show_bug.cgi?id=666361
pa_stream_* functions return negative on error, despite the defines
for error codes being positive.
I only got to repro the error twice, so I'm not sure 100% sure this
fixes the issue (the negative var being uninitialized after returning
from pa_stream_get_latency).
Clients can configure the desired behaviour via "transport" property. The
default behaviour is ignoring the transport state. Other modes are master and
slave.