summaryrefslogtreecommitdiff
path: root/gst/gstghostpad.c
Commit message (Collapse)AuthorAgeFilesLines
* gst: Changed introspection transfer flag to (transfer floating)Peteris Krisjanis2012-01-251-1/+1
| | | | | for gst_pad_new, gst_ghost_pad_new and gst_bin_new constuctors. Fixes segfaults due of transfer full and floating ref problem.
* ghostpad: fix print formatWim Taymans2011-11-211-2/+2
|
* pad: Merge pad mode activation functionsWim Taymans2011-11-211-67/+75
| | | | | | | Add the pad mode to the activate function so that we can reuse the same function for all activation modes. This makes the core logic smaller and allows for some elements to make their activation code easier. It would allow us to add more scheduling modes later without having to add more activate functions.
* pad: add parent to activate functionsWim Taymans2011-11-181-4/+12
|
* pad: add parent to other functionsWim Taymans2011-11-171-5/+10
| | | | Add parent to chain, chain_list, getrange and event functions.
* add parent to internal linksWim Taymans2011-11-161-1/+2
|
* pad: add parent to the query functionWim Taymans2011-11-161-1/+2
|
* pad: remove getcaps and use caps queryWim Taymans2011-11-151-117/+88
| | | | | | | | | | | | Remove the getcaps function on the pad and use the CAPS query for the same effect. Add PROXY_CAPS to the pad flags. This instructs the default caps event and query handlers to pass on the CAPS related queries and events. This simplifies a lot of elements that passtrough caps negotiation. Make two utility functions to proxy caps queries and aggregate the result. Needs to use the pad forward function instead later. Make the _query_peer_ utility functions use the gst_pad_peer_query() function to make sure the probes are emited properly.
* pad: remove GstPadFixateCapsFunctionWim Taymans2011-11-101-35/+0
| | | | | | | | The fixate caps function was not used externally and we have vmethods in the base classes where it is needed. Update some docs. simplify some fixate functions in the base classes. Also pass the untruncated caps to the vmethod.
* pad: make an ACCEPT_CAPS queryWim Taymans2011-11-091-16/+23
| | | | Replace the acceptcaps function with a query.
* remove query typesWim Taymans2011-11-091-37/+0
| | | | It was not really useful
* pad: add more queriesWim Taymans2011-11-091-5/+12
| | | | Add more query functions to prepare for doing more with queries
* Merge branch 'master' into 0.11Wim Taymans2011-11-081-18/+18
|\ | | | | | | | | | | | | Conflicts: gst/gstelement.h gst/gstghostpad.c gst/gstminiobject.c
| * docs: fix Since: markers for API added after 0.10.35Tim-Philipp Müller2011-11-081-22/+22
| |
* | Merge branch 'master' into 0.11Wim Taymans2011-11-031-156/+18
|\ \ | |/ | | | | | | Conflicts: gst/gstghostpad.c
| * ghostpad: Don't cache internal proxy pad targetNicolas Dufresne2011-11-031-166/+33
| | | | | | | | | | | | | | | | | | The internal proxy pad target is simply a cache of the internal proxy pad peer. This patch uses the well implement GstPad peer handling to obtain the target. This fixes issues with target not being set in both direction when two ghostpads are linked together (empty bin). https://bugzilla.gnome.org/show_bug.cgi?id=658517
* | ghostpad: Do not unref the internal pad twiceThiago Santos2011-10-121-1/+0
| | | | | | | | | | g_value_unset should already unref the internal proxypad, no need to do it again
* | ghostpad: If we don't control a pad/template, return proper capsEdward Hervey2011-10-101-0/+6
| | | | | | | | If there's a filter, we can return that in _get_caps()
* | Merge branch 'master' into 0.11Sebastian Dröge2011-09-081-2/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: docs/design/draft-buffer2.txt docs/design/part-TODO.txt docs/design/part-block.txt docs/design/part-bufferlist.txt docs/design/part-caps.txt docs/design/part-element-transform.txt docs/design/part-events.txt docs/design/part-negotiation.txt gst/gstcaps.c gst/gstevent.h gst/gstghostpad.c gst/gstinterface.c gst/gstpad.c gst/gstpad.h gst/gstutils.c libs/gst/base/gstbasesink.c libs/gst/base/gstbasesrc.c libs/gst/base/gstbasetransform.c libs/gst/base/gsttypefindhelper.c plugins/elements/gstcapsfilter.c plugins/elements/gsttee.c tests/check/generic/sinks.c tools/gst-launch.1.in
| * docs, gst: typo fixesPiotr Fusik2011-09-071-2/+2
| | | | | | | | https://bugzilla.gnome.org/show_bug.cgi?id=658449
| * ghostpad: Use gst_pad_set_caps() instead of manually changing capsStas Sergeev2011-09-071-32/+2
| | | | | | | | | | | | | | gst_pad_set_caps() does essentially the same but additionally calls the pad's setcaps function. Fixes bug #658076.
* | ghostpad: improve debugWim Taymans2011-06-201-34/+50
| | | | | | | | | | | | Log a debug line when there is no target pad and when this makes the default implementation fail. Take the internal pads directly when we can.
* | ghostpad: remove setcaps functionsWim Taymans2011-06-021-68/+0
| | | | | | | | Remove the setcaps functions, it is now handled with the caps event.
* | scheduling: port to new scheduling queryWim Taymans2011-05-241-29/+0
| |
* | ghostpad: avoid calling setcaps too many timesWim Taymans2011-05-181-0/+5
| | | | | | | | | | Don't call setcaps, the caps event will take care of propagating the caps on all pads.
* | ghostpad: remove unused codeWim Taymans2011-05-171-120/+0
| | | | | | | | | | The code to make sure that caps are properly set on both pads, it now happens automatically with the caps event.
* | Revert "query: allow _make_writable on query handlers"Sebastian Dröge2011-05-171-1/+1
| | | | | | | | | | | | | | | | | | This reverts commit cf4fbc005c5c530c2a509a943a05b91d6c9af3fb. This change did not improve the situation for bindings because queries are usually created, then directly passed to a function and not stored elsewhere, and the writability problem with miniobjects usually happens with buffers or caps instead.
* | Revert "ghostpad: fix g_return_* with new query"Sebastian Dröge2011-05-171-2/+1
| | | | | | | | This reverts commit 877c1c28ff957ca92911eadfc785f8661d9e0127.
* | ghostpad: fix g_return_* with new queryWim Taymans2011-05-161-1/+2
| |
* | Merge branch 'master' into 0.11Sebastian Dröge2011-05-161-122/+403
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.ac docs/gst/gstreamer-sections.txt gst/gstbin.c gst/gstelement.c gst/gstelement.h gst/gstghostpad.c gst/gstminiobject.c gst/gstminiobject.h libs/gst/base/gstbasesrc.c libs/gst/base/gstbasetransform.c plugins/elements/gstinputselector.c tests/check/gst/gstminiobject.c
| * docs: fix up some Since markers and update for new multiqueue argsTim-Philipp Müller2011-05-141-22/+22
| |
| * ghostpad: Add docs for all the new, public functionsSebastian Dröge2011-05-141-3/+239
| |
| * ghostpad: Add guards against invalid parameters to the new, public functionsSebastian Dröge2011-05-141-15/+81
| |
| * ghostpad: Rename ghostpad/proxypad default functionsSebastian Dröge2011-05-141-70/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | API: gst_ghost_pad_activate_pull_default API: gst_ghost_pad_activate_push_default API: gst_ghost_pad_internal_activate_pull_default API: gst_ghost_pad_internal_activate_push_default API: gst_ghost_pad_link_default API: gst_ghost_pad_setcaps_default API: gst_ghost_pad_unlink_default API: gst_proxy_pad_acceptcaps_default API: gst_proxy_pad_bufferalloc_default API: gst_proxy_pad_chain_default API: gst_proxy_pad_chain_list_default API: gst_proxy_pad_checkgetrange_default API: gst_proxy_pad_event_default API: gst_proxy_pad_fixatecaps_default API: gst_proxy_pad_getcaps_default API: gst_proxy_pad_getrange_default API: gst_proxy_pad_iterate_internal_links_default API: gst_proxy_pad_query_default API: gst_proxy_pad_query_type_default API: gst_proxy_pad_setcaps_default
| * ghostpad: Make all the internal caps functions publicSebastian Dröge2011-05-141-18/+18
| | | | | | | | | | | | This is useful if ghostpad/proxypads should be used but additional code should be executed, e.g. for tracking segments in the event function.
| * ghostpad: Only implement the iterate_internal_links function on proxypadsSebastian Dröge2011-05-141-18/+5
| | | | | | | | ghostpads inherit it from their parent class. Also make it threadsafe.
| * ghostpad: API: Expose gst_proxy_pad_get_internal()Sebastian Dröge2011-05-141-6/+21
| | | | | | | | | | | | | | | | | | This allows to get the internal pad of ghostpads and proxypads without using gst_pad_iterate_internal_links() and is much more convenient. The internal pad of a ghostpad is the pad of the opposite direction that is used to link to the ghostpad target.
* | gst: Add a filter caps parameter to all get_caps() functionsSebastian Dröge2011-05-161-3/+12
| | | | | | | | | | This is used to pass the possible caps and preferences to the pad and to allow better negotiation decisions.
* | query: allow _make_writable on query handlersWim Taymans2011-05-101-1/+1
| | | | | | | | | | | | Pass a GstQuery ** to the query handlers so that they can make the query writable before using a setter on it. Port code to new API.
* | pad: avoid using the old GST_PAD_CAPSWim Taymans2011-05-061-0/+6
| | | | | | | | | | | | Don't use GST_PAD_CAPS but instead use the new gst_pad_get_current_caps() method. Avoid setting caps on buffers.
* | gst: Update everything for the new GstIterator APISebastian Dröge2011-05-051-6/+12
| |
* | Revert "context: use context on buffers instead of caps"Wim Taymans2011-05-051-6/+0
| | | | | | | | | | | | | | | | This reverts commit 9ef1346b1fa0bd2bb42cd991a52ff308a728bdb6. Way to much for one commit and I'm not sure we want to get rid of the pad caps just like that. It's nice to have the buffer and its type in onw nice bundle without having to drag the complete context with it.
* | context: use context on buffers instead of capsWim Taymans2011-05-041-0/+6
| | | | | | | | | | Put the srcpad context on buffers instead of caps. This allows us to associate all the relevant info contained in events with a buffer.
* | Remove pad_alloc, this can now be done betterWim Taymans2011-04-291-18/+0
| | | | | | | | | | | | Remove pad_alloc and all references. This can now be done more efficiently and more flexible with the ALLOCATION query and the bufferpool objects. There is no reverse negotiation yet but that will be done with an event later.
* | Merge branch 'master' into 0.11Sebastian Dröge2011-04-161-5/+26
|\ \ | |/
| * ghostpad: Fix pad callbacks so they handle when parent goes awayOle André Vadla Ravnås2011-04-131-5/+26
| | | | | | | | | | | | | | | | | | | | | | 1) We need to lock and get a strong ref to the parent, if still there. 2) If it has gone away, we need to handle that gracefully. This is necessary in order to safely modify a running pipeline. Has been observed when a streaming thread is doing a buffer_alloc() while an application thread sends an event on a pad further downstream, and from within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing while the streaming thread has its buffer_alloc() in progress.
* | Merge branch 'master' into 0.11Sebastian Dröge2011-03-171-4/+5
|\ \ | |/ | | | | | | Conflicts: gst/gstbufferlist.c
| * ghostpad: The internally linked pad of the proxypad is the ghostpadSebastian Dröge2011-03-161-4/+5
| | | | | | | | | | Previously we were returning the peerpad, which is the target of the ghostpad.
* | Merge branch 'master' into 0.11Wim Taymans2011-02-221-16/+16
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.ac gst/gstelement.c gst/gstelement.h gst/gstpad.c gst/gstutils.c libs/gst/base/Makefile.am libs/gst/check/Makefile.am libs/gst/controller/Makefile.am libs/gst/dataprotocol/Makefile.am libs/gst/net/Makefile.am win32/common/libgstreamer.def
| * docs: gst: more gobject introspection annotationsTim-Philipp Müller2010-12-071-16/+16
| | | | | | | | Many of these are superfluous, added for clarity.