Wim Taymans [Tue, 24 May 2011 07:48:44 +0000 (09:48 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstpad.h
Kipp Cannon [Mon, 23 May 2011 21:26:40 +0000 (00:26 +0300)]
clock: improve the GST_TIME_FORMAT/ARGS docs
Stefan Kost [Mon, 23 May 2011 20:40:20 +0000 (23:40 +0300)]
docs: hide this from the docs
Wim Taymans [Mon, 23 May 2011 16:30:19 +0000 (18:30 +0200)]
event: use GST_SEGMENT_FORMAT for segments
Wim Taymans [Mon, 23 May 2011 16:15:00 +0000 (18:15 +0200)]
transform: fixes for bufferpool handling
Don't error out when the allocation query returns success.
Do bufferpool query after we pushed the caps event downstream so that we can get
a good bufferpool suggestion.
Also proxy the bufferpool query downstream when we operate in in_place mode.
Wim Taymans [Mon, 23 May 2011 16:14:27 +0000 (18:14 +0200)]
pad: improve debugging
Wim Taymans [Mon, 23 May 2011 14:53:01 +0000 (16:53 +0200)]
transform: reset reconfigure state
When we negotiate new caps, reset the reconfigure state.
Wim Taymans [Fri, 20 May 2011 16:56:37 +0000 (18:56 +0200)]
basetransform: WIP handle bufferpool
Wim Taymans [Sat, 21 May 2011 17:06:08 +0000 (19:06 +0200)]
basesrc: avoid calling _set_caps() on the srcpad
Avoid installing a setcaps function on the srcpad and calling the setcaps
function, we can do more efficiently with sending the event ourself and calling
our vmethod.
Wim Taymans [Fri, 20 May 2011 14:03:10 +0000 (16:03 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstpad.h
gst/gstplugin.h
Wim Taymans [Fri, 20 May 2011 13:58:10 +0000 (15:58 +0200)]
basetransform: remove some more code
Remove some more unused code from basetransform.
Prepare for implementing bufferpools.
Stefan Kost [Fri, 20 May 2011 12:50:05 +0000 (15:50 +0300)]
win32: add new api
Stefan Kost [Fri, 20 May 2011 12:48:09 +0000 (15:48 +0300)]
deprecation-guards: fixup for commit
9ff4ec3104d2510b8f379ff38c671682ff795e33
Remove the deprecation guards for GST_PLUGIN_DEFINE_STATIC again (even though it
is deprecated) as we use it in the tests. Remove "_" for intlinkfunc.
Sebastian Dröge [Fri, 20 May 2011 11:06:57 +0000 (13:06 +0200)]
Merge branch 'master' into 0.11
Sebastian Dröge [Fri, 20 May 2011 11:03:51 +0000 (13:03 +0200)]
basesink: Only reinit the cached GstClockID if it is for the same clock
The clock might have changed since the clock ID was created and in
that case we have to request a new one.
Wim Taymans [Fri, 20 May 2011 10:43:24 +0000 (12:43 +0200)]
element: add method to get metadata
Add a method to get the metadata from a klass.
Wim Taymans [Fri, 20 May 2011 10:43:02 +0000 (12:43 +0200)]
factory: fix typo
Sebastian Dröge [Fri, 20 May 2011 10:18:48 +0000 (12:18 +0200)]
inputselector: Always send a SEGMENT event when the active pad changes
Sebastian Dröge [Fri, 20 May 2011 10:16:59 +0000 (12:16 +0200)]
inputselector: Fix copy&paste mistake in the srcpad event function
Wim Taymans [Fri, 20 May 2011 10:07:45 +0000 (12:07 +0200)]
Merge branch 'master' into 0.11
Conflicts:
docs/plugins/gstreamer-plugins.hierarchy
Sebastian Dröge [Fri, 20 May 2011 10:00:11 +0000 (12:00 +0200)]
inputselector: Send upstream events to all sinkpads, not only the selected one
This makes sure that SEEK events are sent to all upstream elements, which is
required if different streams are completely distinct pipeline parts. Also this
allows QoS to be done on deselected streams, flushes to be handled correctly,
etc.
Wim Taymans [Fri, 20 May 2011 09:36:25 +0000 (11:36 +0200)]
pad: add pending event for sticky events
Change the sticky event array so that it contains a pending and an active event.
Events on the sinkpad are copied to the pending array and after the eventfunc
returned TRUE, moved to the active event. This allows us to queue new events
like when we do per-pad offsets without removing the currently active event.
Remove the active argument from the gst_pad_get_sticky_event() method, the
pending events are not something we want to expose.
Stefan Kost [Thu, 19 May 2011 21:39:10 +0000 (00:39 +0300)]
preset: include cleanup
Only have include in the installed header we need to use it. Move the includes
needed by the implementation to the c file.
Stefan Kost [Thu, 19 May 2011 20:19:30 +0000 (23:19 +0300)]
docs: update plugin introspection data
Now more files are merged and produced in a canonical fashion, which hopefully
creates less or no delta in the future.
Stefan Kost [Thu, 19 May 2011 19:56:28 +0000 (22:56 +0300)]
Automatic update of common submodule
From
9e5bbd5 to
69b981f
Wim Taymans [Thu, 19 May 2011 17:07:29 +0000 (19:07 +0200)]
tests: caps are not stored on flushing pads
Caps are now also stored on flushing pads in the inactive state.
Wim Taymans [Thu, 19 May 2011 17:01:09 +0000 (19:01 +0200)]
pad: apply pad offset on sinkpad events too
Apply the pad offset in the send_event() function as well.
Wim Taymans [Thu, 19 May 2011 16:27:55 +0000 (18:27 +0200)]
pad: add per-pad offsets
When linking pads and when copying a segment event from the sourc pad to the
sinkpad, apply the src and sinkpad offsets to the segment base. Make sure that
we only modify the event stored on the sinkpad and never the one on the source
pad.
When changing the pad offset, perform the segment copy with the updated offsets.
When pushing a segment event, apply the srcpad offset before sending the event
to the peer pad.
This part is missing the adjustment of the segment event on the sinkpad, which
is for a later patch.
Wim Taymans [Thu, 19 May 2011 14:26:06 +0000 (16:26 +0200)]
pad: add methods to adjust the offset
Add methods to adjust the offset. This will be used to change the segment events
with an offset so that we can tweak the timing of the stream on a per-pad base.
Sebastian Dröge [Thu, 19 May 2011 10:11:43 +0000 (12:11 +0200)]
inputselector: Port to the new segment API
The switch action signal with the stop and start running times
is not necessary anymore. Closing of segments is not necessary
and adjusting the start running time of a segment can later be
done with new GstPad API.
Wim Taymans [Thu, 19 May 2011 09:30:06 +0000 (11:30 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstghostpad.h
Wim Taymans [Wed, 18 May 2011 17:43:44 +0000 (19:43 +0200)]
pad: store sticky events on flushing sinkpads too
First store the sticky event on the sinkpad in the inactive state, then check
for the flushing flag. We want to have the events on sinkpads at all times,
ready to be activated when the pad becomes active.
Wim Taymans [Wed, 18 May 2011 16:53:35 +0000 (18:53 +0200)]
pad: move caps check to central location
Make a function to call the eventfunc and perform a caps check when we are
dispatching a caps event.
This makes sure that all code paths correctly check that the caps are
acceptable before sending the caps to the eventfunction.
Wim Taymans [Wed, 18 May 2011 16:52:22 +0000 (18:52 +0200)]
ghostpad: avoid calling setcaps too many times
Don't call setcaps, the caps event will take care of propagating the caps on all
pads.
Wim Taymans [Wed, 18 May 2011 16:48:03 +0000 (18:48 +0200)]
query: add allocation query name
Add ALLOCATION query name and guard some functions against invalid queries.
Sebastian Dröge [Wed, 18 May 2011 14:56:13 +0000 (16:56 +0200)]
event: Make SEGMENT event parsing API more consistent with the others
Wim Taymans [Wed, 18 May 2011 14:47:44 +0000 (16:47 +0200)]
basetransform: relax caps check
Also run the caps transform function on ANY caps, like we used to do before.
This makes sure that capsfilter has a chance to filter ANY caps as well.
Sebastian Dröge [Wed, 18 May 2011 14:29:10 +0000 (16:29 +0200)]
pad: Don't forget to take the object lock when getting a sticky event
Sebastian Dröge [Wed, 18 May 2011 14:26:31 +0000 (16:26 +0200)]
pad: Add function to get sticky events from a pad
API: gst_pad_get_sticky_event()
Wim Taymans [Wed, 18 May 2011 13:43:20 +0000 (15:43 +0200)]
event: fix event copy
Fix parent refcount on event copy.
Fix unit test.
Wim Taymans [Wed, 18 May 2011 13:29:25 +0000 (15:29 +0200)]
pad: notify caps property change in callsetcaps
Notify the caps property change in the backwards compatible function to call the
setcaps function.
Stefan Kost [Wed, 18 May 2011 13:09:19 +0000 (16:09 +0300)]
Automatic update of common submodule
From
fd35073 to
9e5bbd5
Stefan Kost [Wed, 18 May 2011 12:04:48 +0000 (15:04 +0300)]
docs: remove GstProxyPad from private section
Stefan Kost [Wed, 18 May 2011 12:02:02 +0000 (15:02 +0300)]
docs: use the same name for the argument in prototype and docs
Stefan Kost [Wed, 18 May 2011 11:59:45 +0000 (14:59 +0300)]
manual: put generated sources to BUILT_SOURCES and clean them on make clean
Wim Taymans [Wed, 18 May 2011 11:19:31 +0000 (13:19 +0200)]
Merge branch 'master' into 0.11
Wim Taymans [Wed, 18 May 2011 11:14:57 +0000 (13:14 +0200)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstminiobject.c
gst/gstpad.c
gst/gstpad.h
gst/gstplugin.h
libs/gst/base/gstbaseparse.c
Stefan Kost [Wed, 18 May 2011 11:10:12 +0000 (14:10 +0300)]
manual: reinsert missing space to fix previous commit
Stefan Kost [Wed, 18 May 2011 10:54:42 +0000 (13:54 +0300)]
manual: simplify the snipet extraction rules
Use $< instead of repeating the name of the dependency.
Stefan Kost [Wed, 18 May 2011 07:59:38 +0000 (10:59 +0300)]
manual: don't extract the xml example anymore, its gone
As a followup for commit
cda5a353d27326c0272a79c92c11c221a4092da4 don't try
extracting an example that has been removed.
Stefan Kost [Wed, 18 May 2011 09:23:39 +0000 (12:23 +0300)]
Automatic update of common submodule
From
46dfcea to
fd35073
Wim Taymans [Wed, 18 May 2011 09:21:52 +0000 (11:21 +0200)]
docs: update docs some more
Wim Taymans [Wed, 18 May 2011 09:08:52 +0000 (11:08 +0200)]
pad: rework sticky events a little
Update the design docs with some clear rules for how sticky events are
handled.
Reimplement the sticky tags, use a small structure to hold the event and its
current state (active or inactive).
Events on sinkpads only become active when the event function returned success
for the event.
When linking, only update events that are different.
Avoid making a copy of the event array, use the object lock to protect the event
array and release it only to call the event function. This will need to check
if something changed, later.
Disable a test in the unit test, it can't work yet.
Mark Nauwelaerts [Tue, 17 May 2011 20:17:14 +0000 (22:17 +0200)]
baseparse: maintain frame state during frame parsing round
See #650093.
Mark Nauwelaerts [Thu, 12 May 2011 09:55:20 +0000 (11:55 +0200)]
baseparse: provide latency query support
Mark Nauwelaerts [Tue, 17 May 2011 20:15:38 +0000 (22:15 +0200)]
baseparse: make minimum frame size handling more efficient and convenient
While some formats allow subclass to determine a specific subsequent
needed frame size, others may to need to scan for markers and can only
request 'additional data' by whatever reasonable available step.
In push mode, trying to minimize additional latency leads to step size
being the next input buffer. In pull mode, any reasonable step size
(such as already used by buffer caching) can be applied.
Mark Nauwelaerts [Tue, 17 May 2011 20:38:14 +0000 (22:38 +0200)]
baseparse: set correct buffer size
Stefan Kost [Fri, 6 May 2011 07:54:08 +0000 (10:54 +0300)]
inspect: show flags the same way they need to be entered
The (de)serialisation uses "+" and not " | ".
Stefan Kost [Thu, 28 Apr 2011 08:34:39 +0000 (11:34 +0300)]
pluginfeature: avoid duplicating feature->name
The feature name is not supposed to change over time anyway. In order to enforce
this parentize features to the registry and make the feature->name pointing to
GstObject:name. In 0.11 we could consider of removing the feature->name variable
(FIXME comment added).
Fixes: #459466
Stefan Kost [Mon, 2 May 2011 12:36:14 +0000 (15:36 +0300)]
docs: add deprecation guards
Move GstPadIntLinkFunction to private header to avoid a dozen #ifdefs. Use a
gpointer in public header instead.
Wim Taymans [Tue, 17 May 2011 17:03:30 +0000 (19:03 +0200)]
pad: don't push sticky events on flush
Only allow serialized and non-flush events forward the sticky events.
Wim Taymans [Tue, 17 May 2011 16:23:22 +0000 (18:23 +0200)]
test: reset pad caps properly
Wim Taymans [Tue, 17 May 2011 16:23:06 +0000 (18:23 +0200)]
pad: add more debug
Wim Taymans [Tue, 17 May 2011 16:21:38 +0000 (18:21 +0200)]
ghostpad: remove unused code
The code to make sure that caps are properly set on both pads, it now happens
automatically with the caps event.
Wim Taymans [Tue, 17 May 2011 15:53:00 +0000 (17:53 +0200)]
tests: fix tests
Remove the tests that handle incompatible formats, we don't want that anymore.
Wim Taymans [Tue, 17 May 2011 15:51:58 +0000 (17:51 +0200)]
segment: handle wraparound better
Now that we use unsigned values for the segment, handle wraparound when seeking
better.
Wim Taymans [Tue, 17 May 2011 14:50:53 +0000 (16:50 +0200)]
pad: remove unref, the object is NULL
Sebastian Dröge [Tue, 17 May 2011 12:01:05 +0000 (14:01 +0200)]
event: The RECONFIGURE element only exists in 0.11
Implementing it properly in 0.10 seems to be impossible.
Sebastian Dröge [Tue, 17 May 2011 11:13:11 +0000 (13:13 +0200)]
tests: Update for caps/pad template related API changes
Sebastian Dröge [Tue, 17 May 2011 10:25:22 +0000 (12:25 +0200)]
base: Update for caps/pad template related API changes
Sebastian Dröge [Tue, 17 May 2011 10:04:27 +0000 (12:04 +0200)]
gst: Update for caps/pad template related API changes
Sebastian Dröge [Tue, 17 May 2011 10:12:23 +0000 (12:12 +0200)]
element: Consider GstPadTemplate as immutable
Don't copy the templates when creating subclasses but only increase
their refcount.
Sebastian Dröge [Tue, 17 May 2011 10:10:27 +0000 (12:10 +0200)]
padtemplate: Create pad templates with floating refs
And take ownership of the floating ref in gst_element_add_pad_template()
Sebastian Dröge [Tue, 17 May 2011 10:07:03 +0000 (12:07 +0200)]
padtemplate: Improve reference handling of the template's caps
gst_pad_template_new() does not take ownership of the caps anymore.
Tim-Philipp Müller [Mon, 16 May 2011 12:39:25 +0000 (13:39 +0100)]
miniobject: delay private data initialisation until actually needed
We only use the private instance data for weak references for now,
so can delay initialisation until actually needed (microoptimisation)
Sebastian Dröge [Tue, 17 May 2011 09:59:00 +0000 (11:59 +0200)]
pad: Let template related functions return new references
gst_pad_template_get_caps(), gst_pad_get_pad_template_caps()
and gst_pad_get_pad_template() return a new reference of the
caps or template now and the return value needs to be
unreffed after usage.
Sebastian Dröge [Tue, 17 May 2011 09:45:46 +0000 (11:45 +0200)]
Revert "event: example of how to optimize events"
This reverts commit
fa28e2c5e6e5e172be308c0c50f44ed6f39e1a71.
The optimization only has minimal impact on the performance and
makes everything more complex.
Sebastian Dröge [Tue, 17 May 2011 09:45:42 +0000 (11:45 +0200)]
Revert "event: update the structure when needed"
This reverts commit
905100cdbe580d4d182bfd9d5ec9b368a110f464.
Sebastian Dröge [Tue, 17 May 2011 09:22:58 +0000 (11:22 +0200)]
structure: Fix compilation
Sebastian Dröge [Tue, 17 May 2011 09:20:05 +0000 (11:20 +0200)]
Revert "query: allow _make_writable on query handlers"
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.
Sebastian Dröge [Tue, 17 May 2011 09:19:16 +0000 (11:19 +0200)]
Revert "bin: Dereference GstQuery** before passing it to GST_QUERY_TYPE_NAME"
This reverts commit
437c92b403e0c7da9b9d4509ef4ffbd05710df2b.
Sebastian Dröge [Tue, 17 May 2011 09:19:14 +0000 (11:19 +0200)]
Revert "ghostpad: fix g_return_* with new query"
This reverts commit
877c1c28ff957ca92911eadfc785f8661d9e0127.
Sebastian Dröge [Tue, 17 May 2011 07:40:38 +0000 (09:40 +0200)]
Merge branch 'master' into 0.11
Conflicts:
win32/common/libgstreamer.def
Sebastian Dröge [Tue, 17 May 2011 07:35:54 +0000 (09:35 +0200)]
structure: Make both parameters to gst_structure_is_equal() const
Sebastian Dröge [Tue, 17 May 2011 07:33:47 +0000 (09:33 +0200)]
structure: Update Since markers to the correct version
Sebastian Dröge [Tue, 17 May 2011 07:33:04 +0000 (09:33 +0200)]
structure: Add gst_structure_intersect()
API: gst_structure_intersect()
Edward Hervey [Fri, 10 Sep 2010 16:33:34 +0000 (18:33 +0200)]
gststructure: Add gst_structure_can_intersect API
Allows checking if two structures can intersect without having to
go through GstCaps
API: gst_structure_can_intersect
https://bugzilla.gnome.org/show_bug.cgi?id=629300
Edward Hervey [Fri, 10 Sep 2010 16:14:05 +0000 (18:14 +0200)]
gstructure: New API: gst_structure_is_equal
Allows checking equality of GstStructure without having to create
intermediary GstCaps.
API: gst_structure_is_equal
https://bugzilla.gnome.org/show_bug.cgi?id=629300
Wim Taymans [Mon, 16 May 2011 17:09:54 +0000 (19:09 +0200)]
tests: set elements in PAUSED
Set elements in PAUSED before trying to set caps on pads.
Wim Taymans [Mon, 16 May 2011 17:05:23 +0000 (19:05 +0200)]
test: fix ghostpad test
We need to have activated pads before we can pass around caps.
Don't set NULL caps on pads.
Wim Taymans [Mon, 16 May 2011 17:04:35 +0000 (19:04 +0200)]
pad: avoid setting NULL caps on pads
Wim Taymans [Mon, 16 May 2011 16:48:20 +0000 (18:48 +0200)]
basetransform: fix buffer refcounting
When we fail to allocate an output buffer, set the buffer pointer to NULL or
else the calling function will try to unref it.
Remove some old comments
Wim Taymans [Mon, 16 May 2011 16:29:29 +0000 (18:29 +0200)]
capsfilter: allow NULL filters and fix refcounting
Wim Taymans [Mon, 16 May 2011 16:12:33 +0000 (18:12 +0200)]
caps: only add the structure when we could set the parent
Wim Taymans [Mon, 16 May 2011 15:53:48 +0000 (17:53 +0200)]
ghostpad: fix g_return_* with new query
Sebastian Dröge [Mon, 16 May 2011 15:24:11 +0000 (17:24 +0200)]
win32: Update list of exported symbols
Wim Taymans [Mon, 16 May 2011 14:59:20 +0000 (16:59 +0200)]
inputselector: handle more formats
Use the segment format instead of a hardcoded _TIME.
Wim Taymans [Mon, 16 May 2011 14:57:48 +0000 (16:57 +0200)]
basesink: handle more formats
Don't hardcode GST_FORMAT_TIME in places, we can work with many formats.
Sebastian Dröge [Mon, 16 May 2011 14:54:02 +0000 (16:54 +0200)]
Merge branch '0.11' of ssh://git.freedesktop.org/git/gstreamer/gstreamer into 0.11
Sebastian Dröge [Mon, 16 May 2011 14:53:04 +0000 (16:53 +0200)]
Merge branch 'master' into 0.11
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