| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
for gst_pad_new, gst_ghost_pad_new and gst_bin_new constuctors. Fixes
segfaults due of transfer full and floating ref problem.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Add parent to chain, chain_list, getrange and event functions.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Replace the acceptcaps function with a query.
|
|
|
|
| |
It was not really useful
|
|
|
|
| |
Add more query functions to prepare for doing more with queries
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
gst/gstelement.h
gst/gstghostpad.c
gst/gstminiobject.c
|
| | |
|
|\ \
| |/
| |
| |
| | |
Conflicts:
gst/gstghostpad.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
g_value_unset should already unref the internal proxypad, no
need to do it again
|
| |
| |
| |
| | |
If there's a filter, we can return that in _get_caps()
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
https://bugzilla.gnome.org/show_bug.cgi?id=658449
|
| |
| |
| |
| |
| |
| |
| | |
gst_pad_set_caps() does essentially the same but additionally calls
the pad's setcaps function.
Fixes bug #658076.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
Remove the setcaps functions, it is now handled with the caps event.
|
| | |
|
| |
| |
| |
| |
| | |
Don't call setcaps, the caps event will take care of propagating the caps on all
pads.
|
| |
| |
| |
| |
| | |
The code to make sure that caps are properly set on both pads, it now happens
automatically with the caps event.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| | |
This reverts commit 877c1c28ff957ca92911eadfc785f8661d9e0127.
|
| | |
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| | |
This is useful if ghostpad/proxypads should be used but
additional code should be executed, e.g. for tracking
segments in the event function.
|
| |
| |
| |
| | |
ghostpads inherit it from their parent class. Also make it threadsafe.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
This is used to pass the possible caps and preferences to
the pad and to allow better negotiation decisions.
|
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
Don't use GST_PAD_CAPS but instead use the new gst_pad_get_current_caps()
method.
Avoid setting caps on buffers.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
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 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.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
| |
| |
| | |
Conflicts:
gst/gstbufferlist.c
|
| |
| |
| |
| |
| | |
Previously we were returning the peerpad, which is the target
of the ghostpad.
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Many of these are superfluous, added for clarity.
|