It can happen that the currently active pad got the EOS event
before it was activated and the previously active pad got the
EOS event after it was deactivated. In that case we have to
send the EOS event from an inactive pad downstream.
This makes sure that during switches at no point in time all pads
have returned not-linked, which can happen when playing an audio-only
file with playbin2 and switching between the streams for example.
Fixes bug #644935.
Using the end time makes it impossible to replace buffers, which is
a big problem for subtitles that could have very long durations.
Merged from gst-plugins-base, 27034be461.
There's not much point in using GST_DEBUG_FUNCPTR with GObject
virtual functions such as get_property, set_propery, finalize and
dispose, since they'll never be used by anyone anyway. Saves a
few bytes and possibly a sixteenth of a polar bear.
Merged from gst-plugins-base, 6f4c1ac583.
Replaced with "GStreamer maintainers
<gstreamer-devel@lists.sourceforge.net>" or just removed,
depending on the number of other authors.
Merged from gst-plugins-base, 0e9bc5125a.
Set the output caps on the srcpad before pushing the buffer because else core
will do a rather expensive check to see if we can actually accept those caps on
the srcpad.
Merged from gst-plugins-base, bdfb4b46d7.
Install a custom acceptcaps function instead of using the default expensive
check. We accept whatever downstream accepts so we pass along the acceptcaps
call to the downstream peer.
Merged from gst-plugins-base, 5b72f2adf9.
When a segment event is received on the active pad, forward it downstream
immediately instead of deferring it until the next data buffer arrives. This
fixes problems with segment updates never being sent downstream, like those
needed for sparse streams, or for closing previously opened segments.
This fixes playback of DVD menus with a still video frame and an audio track,
for example.
Fixes: #577843
No short-desc as we have them in the element details.
Also keep things (Makefile.am and sections.txt) sorted.
Reword ambigous returns. No text after since please.
Original commit message from CVS:
* plugins/elements/gstinputselector.c:
Ensure we emit notify::active-pad when auto-selecting a pad
due to it having activity and us not having an existing active
pad. Fixes#563147
Original commit message from CVS:
* plugins/elements/gstinputselector.c: (gst_input_selector_event),
(gst_input_selector_query):
Gracefully handle the cases when we dont' have otherpad.
Fixes#556430
Original commit message from CVS:
* plugins/elements/gstinputselector.c: (gst_selector_pad_reset),
(gst_input_selector_reset), (gst_input_selector_change_state):
Reset the selector state when going to READY.
Original commit message from CVS:
* plugins/elements/gstinputselector.c: (gst_input_selector_init),
(gst_input_selector_event), (gst_input_selector_query):
Reuse the get_linked_pads for both source and sinkpads because they are
the same.
Implement a custum event handler and get the internally linked pad
directly instead of relying on the default (slower) implementation.
Original commit message from CVS:
* plugins/elements/gstinputselector.c: (gst_input_selector_init),
(gst_input_selector_query):
Implement the LATENCY query in a better way by taking the latency of all
sinkpads and taking the min/max instead of just taking a random pad.