summaryrefslogtreecommitdiffstats
path: root/gst/selector/gstinputselector.c
AgeCommit message (Collapse)AuthorFilesLines
2009-05-03input-selector: Forward segment events for the active pad immediately.Jan Schmidt1-5/+10
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
2009-03-24selector: merge the tagsWim Taymans1-8/+10
Merge the tags received on the input-selector sinkpads instead of only keeping the last one we saw.
2009-02-25docs: various doc fixesStefan Kost1-2/+5
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.
2009-02-11inputselector: Fix compilation, activate_sinkpad() has no notify parameterSebastian Dröge1-3/+4
2009-02-10input-selector: Activate and notify pad before processing events.Michael Smith1-8/+13
Events should trigger pad selection if we don't already have an explicitly selected pad, so that events prior to first buffer don't get lost.
2009-01-30Unref event if we don't forward it, unref pads when done with them.Michael Smith1-0/+5
2008-12-04gst/selector/gstinputselector.c: Ensure we emit notify::active-pad when ↵Michael Smith1-0/+11
auto-selecting a pad due to it having activit... Original commit message from CVS: * gst/selector/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
2008-10-15gst/selector/gstinputselector.c: Gracefully handle the cases when we dont' ↵Edward Hervey1-7/+10
have otherpad. Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_input_selector_event), (gst_input_selector_query): Gracefully handle the cases when we dont' have otherpad. Fixes #556430
2008-09-08gst/selector/gstinputselector.c: Reset the selector state when going to READY.Wim Taymans1-0/+37
Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_reset), (gst_input_selector_reset), (gst_input_selector_change_state): Reset the selector state when going to READY.
2008-09-01gst/selector/gstinputselector.c: Reuse the get_linked_pads for both source ↵Wim Taymans1-16/+24
and sinkpads because they are the same. Original commit message from CVS: * gst/selector/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.
2008-08-27gst/selector/gstinputselector.c: Implement the LATENCY query in a better way ↵Wim Taymans1-0/+80
by taking the latency of all sinkpads an... Original commit message from CVS: * gst/selector/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.
2008-08-05gst/selector/gstinputselector.c: Move the select-all logic into the ↵Wim Taymans1-12/+16
activation of the currently selected pad. We want... Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_bufferalloc), (gst_selector_pad_chain), (gst_input_selector_getcaps), (gst_input_selector_activate_sinkpad): Move the select-all logic into the activation of the currently selected pad. We want to remember the last pad with activity in select-all mode. Fix the getcaps function, we can produce the union of the upstream caps in select-all mode, not the intersection like proxy_getcaps() does.
2008-06-12Do not use short_description in section docs for elements. We extract them ↵Stefan Kost1-1/+0
from element details and there will be war... Original commit message from CVS: * ext/dc1394/gstdc1394.c: * ext/ivorbis/vorbisdec.c: * ext/jack/gstjackaudiosink.c: * ext/metadata/gstmetadatademux.c: * ext/mythtv/gstmythtvsrc.c: * ext/theora/theoradec.c: * gst-libs/gst/app/gstappsink.c: * gst/bayer/gstbayer2rgb.c: * gst/deinterlace/gstdeinterlace.c: * gst/rawparse/gstaudioparse.c: * gst/rawparse/gstvideoparse.c: * gst/rtpmanager/gstrtpbin.c: * gst/rtpmanager/gstrtpclient.c: * gst/rtpmanager/gstrtpjitterbuffer.c: * gst/rtpmanager/gstrtpptdemux.c: * gst/rtpmanager/gstrtpsession.c: * gst/rtpmanager/gstrtpssrcdemux.c: * gst/selector/gstinputselector.c: * gst/selector/gstoutputselector.c: * gst/videosignal/gstvideoanalyse.c: * gst/videosignal/gstvideodetect.c: * gst/videosignal/gstvideomark.c: * sys/oss4/oss4-mixer.c: * sys/oss4/oss4-sink.c: * sys/oss4/oss4-source.c: Do not use short_description in section docs for elements. We extract them from element details and there will be warnings if they differ. Also fixing up the ChangeLog order.
2008-03-20gst/selector/gstinputselector.c: Do g_object_notify() only when not holding ↵Wim Taymans1-5/+12
the lock to get the property because othe... Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_input_selector_set_active_pad), (gst_input_selector_switch): Do g_object_notify() only when not holding the lock to get the property because otherwise we run into a deadlock with the deep-notify handlers that are possibly installed.
2008-03-20gst/selector/gstinputselector.c: Release the selector lock when pad alloc ↵Wim Taymans1-0/+2
happens on a non selected pad. Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_class_init), (gst_selector_pad_event), (gst_selector_pad_bufferalloc), (gst_selector_pad_chain), (gst_input_selector_set_active_pad): Release the selector lock when pad alloc happens on a non selected pad.
2008-03-20gst/selector/gstinputselector.c: Add pad property to configure behaviour of ↵Wim Taymans1-22/+69
the unselected pad, it can return OK or N... Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_class_init), (gst_selector_pad_init), (gst_selector_pad_set_property), (gst_selector_pad_get_property), (gst_selector_pad_event), (gst_selector_pad_bufferalloc), (gst_selector_pad_chain), (gst_input_selector_set_active_pad): Add pad property to configure behaviour of the unselected pad, it can return OK or NOT_LINKED, based on the use case.
2008-03-20gst/selector/gstinputselector.*: Figure out the locking a bit more.Wim Taymans1-106/+187
Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_get_running_time), (gst_selector_pad_reset), (gst_selector_pad_event), (gst_selector_pad_bufferalloc), (gst_input_selector_wait), (gst_selector_pad_chain), (gst_input_selector_class_init), (gst_input_selector_init), (gst_input_selector_dispose), (gst_segment_set_start), (gst_input_selector_set_active_pad), (gst_input_selector_set_property), (gst_input_selector_get_property), (gst_input_selector_get_linked_pad), (gst_input_selector_is_active_sinkpad), (gst_input_selector_activate_sinkpad), (gst_input_selector_request_new_pad), (gst_input_selector_release_pad), (gst_input_selector_change_state), (gst_input_selector_block), (gst_input_selector_switch): * gst/selector/gstinputselector.h: Figure out the locking a bit more. Mark buffers with discont after switching. Fix initial segment forwarding, make sure to only forward one segment regardless of what the sequence of buffers/segments is. See #522203. Improve flushing when blocked. Return NOT_LINKED when a stream is not selected. Not API change for the switch signal in the docs. Fix start/time/accum values of the new segment. Correctly unlock and flush a blocking selector when going to READY.
2008-03-14gst/selector/gstinputselector.c: Add lots of debugging.Wim Taymans1-12/+41
Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_event), (gst_selector_pad_bufferalloc), (gst_selector_pad_chain), (gst_input_selector_class_init), (gst_input_selector_set_active_pad), (gst_input_selector_set_property), (gst_input_selector_push_pending_stop): Add lots of debugging. Fix time member in the newsegment event.
2008-03-13gst/selector/gstinputselector.*: Various cleanups.Wim Taymans1-47/+101
Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_class_init), (gst_selector_pad_finalize), (gst_selector_pad_get_property), (gst_selector_pad_event), (gst_input_selector_class_init), (gst_input_selector_init), (gst_input_selector_set_active_pad), (gst_input_selector_set_property), (gst_input_selector_get_property), (gst_input_selector_request_new_pad), (gst_input_selector_release_pad), (gst_input_selector_push_pending_stop), (gst_input_selector_switch): * gst/selector/gstinputselector.h: Various cleanups. Added tags to the pads. Select active pad based on the pad object instead of its name. Fix refcount in set_active_pad. Add property to get the number of pads. * gst/selector/gstoutputselector.c: (gst_output_selector_class_init), (gst_output_selector_set_property), (gst_output_selector_get_property): Various cleanups. Select the active pad based on the pad object instead of its name. Fix locking when setting the active pad. * gst/selector/gstselector-marshal.list: * tests/check/elements/selector.c: (cleanup_pad), (selector_set_active_pad), (run_input_selector_buffer_count): Fixes for pad instead of padname for pad selection.
2008-02-25gst/selector/gstinputselector.*: Added "select-all" property to make it work ↵Stefan Kost1-4/+68
like aggregator in 0.8. Original commit message from CVS: * gst/selector/gstinputselector.c: * gst/selector/gstinputselector.h: Added "select-all" property to make it work like aggregator in 0.8. * gst/selector/gstoutputselector.c: Fix resend-latest behavoiur. * tests/check/Makefile.am: * tests/check/elements/.cvsignore: * tests/check/elements/selector.c: Add unit tests for selector.
2008-02-01gst/selector/gstinputselector.c: Don't leak event on pads that are not ↵Wim Taymans1-0/+2
linked. Fixes #512826. Original commit message from CVS: * gst/selector/gstinputselector.c: (gst_selector_pad_event): Don't leak event on pads that are not linked. Fixes #512826.
2008-01-29Replace the switch plugin with the selector plugin. Add output- selector as ↵Stefan Kost1-0/+981
the opposite of input-selectoo (was switc... Original commit message from CVS: * configure.ac: * docs/plugins/Makefile.am: * docs/plugins/gst-plugins-bad-plugins-docs.sgml: * docs/plugins/gst-plugins-bad-plugins-sections.txt: * docs/plugins/gst-plugins-bad-plugins.args: * docs/plugins/gst-plugins-bad-plugins.hierarchy: * docs/plugins/gst-plugins-bad-plugins.interfaces: * docs/plugins/gst-plugins-bad-plugins.signals: * docs/plugins/inspect/plugin-metadata.xml: * docs/plugins/inspect/plugin-selector.xml: * docs/plugins/inspect/plugin-soundtouch.xml: * docs/plugins/inspect/plugin-switch.xml: * gst/selector/.cvsignore: * gst/selector/Makefile.am: * gst/selector/gstinputselector.c: * gst/selector/gstinputselector.h: * gst/selector/gstoutputselector.c: * gst/selector/gstoutputselector.h: * gst/selector/gstselector-marshal.list: * gst/selector/gstselector.c: * gst/selector/selector.vcproj: * gst/switch/.cvsignore: * gst/switch/Makefile.am: * gst/switch/gstswitch-marshal.list: * gst/switch/gstswitch.c: * gst/switch/gstswitch.h: * gst/switch/switch.vcproj: * tests/icles/.cvsignore: * tests/icles/Makefile.am: * tests/icles/output-selector-test.c: Replace the switch plugin with the selector plugin. Add output- selector as the opposite of input-selectoo (was switch). Add a test for output-selector. Add docs for the elements. The vcproj needs update. Fixes #500142.