Wim Taymans [Wed, 14 Mar 2012 20:32:22 +0000 (21:32 +0100)]
memory: Add 0 padding
Change gst_allocator_alloc() so that we can also spicify flags and padding.
Add 2 new flags to mark the memory 0 prefixed/padded. This allows us to
remove some resizes in the base classes.
When allocating memory, memset prefix and padding with 0 when the flags tell
us to.
On resize, clear the zero padding flags if we can't guarantee the memory is
still 0 filled.
Update tests.
Wim Taymans [Wed, 14 Mar 2012 18:37:22 +0000 (19:37 +0100)]
query: also include padding in ALLOCATION query
Negotiating padding is needed on second thought so include it in the
ALLOCATION query.
Make the bufferpool take padding into account when allocating.
Make basesrc take padding into account.
Use padding and prefix when allocating in basetransform.
Wim Taymans [Wed, 14 Mar 2012 17:45:55 +0000 (18:45 +0100)]
basesrc: take prefix into account when allocating
Take into account the prefix that we received from the allocation query and use
it to allocate and resize a larger buffer.
Mark Nauwelaerts [Wed, 14 Mar 2012 16:16:36 +0000 (17:16 +0100)]
bufferpool: free owned discarded pool config
Wim Taymans [Wed, 14 Mar 2012 15:27:31 +0000 (16:27 +0100)]
pad: implement DRAIN handling
When we forward the DRAIN query and there is nothing to forward it to, assume we
are drained.
When a basesink receives a drain query, reply with TRUE.
Wim Taymans [Wed, 14 Mar 2012 15:14:12 +0000 (16:14 +0100)]
query: add new drain query
With the new serialized downstream queries we can implement a drain query that
makes an element waits until a downstream element replies to the query.
Wim Taymans [Wed, 14 Mar 2012 15:01:15 +0000 (16:01 +0100)]
pad: make serialized queries push sticky events first
Before we can proceed with a serialized query, we need to be sure that all
sticky events were pushed.
Wim Taymans [Wed, 14 Mar 2012 14:42:47 +0000 (15:42 +0100)]
queues: warn when receiving a serialized event
.. until we implement it.
Wim Taymans [Wed, 14 Mar 2012 14:42:33 +0000 (15:42 +0100)]
queue: add support for serialized queries
Wim Taymans [Wed, 14 Mar 2012 14:29:12 +0000 (15:29 +0100)]
pad: take stream lock on serialized queries
Wim Taymans [Wed, 14 Mar 2012 14:16:56 +0000 (15:16 +0100)]
pad: enforce correct query direction
Wim Taymans [Wed, 14 Mar 2012 13:51:16 +0000 (14:51 +0100)]
query: register queries like events
Also register queries with a QueryType that allows us to check if the event is
sent in the right direction. Add a serialized query type because we will need
this for the allocation query.
Remove the QueryTypeDefinition stuff, it is not used anymore and we now use
custom queries and separate API for them.
Update defs.
Wim Taymans [Wed, 14 Mar 2012 11:42:00 +0000 (12:42 +0100)]
adapter: add more debug
Wim Taymans [Tue, 13 Mar 2012 14:40:37 +0000 (15:40 +0100)]
bin: remove old compat mode
Wim Taymans [Tue, 13 Mar 2012 14:40:23 +0000 (15:40 +0100)]
caps: small docs update
Wim Taymans [Tue, 13 Mar 2012 09:04:36 +0000 (10:04 +0100)]
caps: remove gst_caps_union()
Remove gst_caps_union(), use gst_caps_merge(). This function was not used
anymore and it is unclear what the difference is with _merge().
Wim Taymans [Mon, 12 Mar 2012 18:52:03 +0000 (19:52 +0100)]
basetransform: get template caps only once
Get the template caps of the pads only once, avoids unecessary ref
and unrefs.
Wim Taymans [Mon, 12 Mar 2012 17:34:30 +0000 (18:34 +0100)]
caps: delay _make_writable() until needed in _normalize()
Delay _make_writable() until we actually found a list and need to update the
caps.
Wim Taymans [Mon, 12 Mar 2012 17:25:38 +0000 (18:25 +0100)]
caps: shortcut simplify earlier
A simple caps is already simplified, no need to check for fixedness.
Wim Taymans [Mon, 12 Mar 2012 17:22:05 +0000 (18:22 +0100)]
caps: small cleanup, remove const
Wim Taymans [Mon, 12 Mar 2012 17:02:27 +0000 (18:02 +0100)]
caps: small cleanups
Wim Taymans [Mon, 12 Mar 2012 15:40:38 +0000 (16:40 +0100)]
caps: small doc improvement
Sreerenj Balachandran [Mon, 12 Mar 2012 14:18:45 +0000 (16:18 +0200)]
configure.ac: bump required GLib to 2.31.14
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=671911
Tim-Philipp Müller [Mon, 12 Mar 2012 13:50:45 +0000 (13:50 +0000)]
docs: update porting-to-0.11.txt a little
Wim Taymans [Mon, 12 Mar 2012 11:35:07 +0000 (12:35 +0100)]
caps: fix some 0.11 FIXMEs
Wim Taymans [Mon, 12 Mar 2012 11:21:34 +0000 (12:21 +0100)]
caps: make _normalize take ownership of input
Make gst_caps_normalize() take ownership of the input so that it can more
intelligently decide when to copy or not.
Wim Taymans [Mon, 12 Mar 2012 10:38:37 +0000 (11:38 +0100)]
caps: _do_simplify() -> _simplify()
Rename _do_simplify() to _simplify(). The name was introduced as a replacement
method for a deprecated method but we can now rename it again.
Fix some docs.
Wim Taymans [Mon, 12 Mar 2012 09:42:23 +0000 (10:42 +0100)]
caps: improve _do_simplify
Make gst_caps_do_simplify() take ownership of the input caps and produce a
simplified output caps. This removes the requirement of having writable input
caps and the method can make the caps writable only when needed.
Wim Taymans [Mon, 12 Mar 2012 09:41:28 +0000 (10:41 +0100)]
tests: fix unit test
with the new caps API, there is more sharing and less copying going on so the
unit test refcounts are different.
Wim Taymans [Sun, 11 Mar 2012 17:57:44 +0000 (18:57 +0100)]
caps: avoid using in-place oprations
Rework some caps operations so they don't rely on writable caps but instead take
ownership of the input caps and do _make_writable() only when needed.
Remove some const from caps functions, it does not make much sense for
refcounted objects and does not allow us to return a refcount to the const input
caps.
Rework the base classes fixate vmethods to not operate on the caps in-place.
All this saves us around 30% of caps and structure copy and new operations.
Wim Taymans [Sun, 11 Mar 2012 16:22:01 +0000 (17:22 +0100)]
structure: add allocation debug
Wim Taymans [Sat, 10 Mar 2012 08:25:43 +0000 (09:25 +0100)]
typefind: remove const from refcounted GstCaps
Having const on refcounted objects require us to make copies instead of simply
taking a ref, don't do that.
Wim Taymans [Sat, 10 Mar 2012 08:15:43 +0000 (09:15 +0100)]
registry: avoid copy when caps are fixed
Avoid doing a useless copy when the caps are fixed and simplify will not do
anything.
Wim Taymans [Fri, 9 Mar 2012 15:14:02 +0000 (16:14 +0100)]
buffer: small optimizations
shortcut heavy work when buffer_resize does nothing.
Avoid an extra _ref when mapping a buffer.
Add some G_LIKELY.
Wim Taymans [Fri, 9 Mar 2012 14:03:11 +0000 (15:03 +0100)]
bufferpool: fix array types
Wim Taymans [Fri, 9 Mar 2012 13:30:01 +0000 (14:30 +0100)]
docs: update docs
Wim Taymans [Fri, 9 Mar 2012 10:53:54 +0000 (11:53 +0100)]
pad: also push sticky events on new event
Make a helper function check_sticky to check and push pending sticky events.
Move the handling of the result of pushing the sticky event inside the
push_event function, we need to mark the event as received when it was pushed
correctly.
Move the sticky events code outside of gst_pad_push_event_unchecked and
make it purely handle sending the event to the peer.
when pushing a sticky event, first store it on the pad. Then check and push any
pending sticky events when we get a serialized or sticky event on a srcpad. This
fixes the issue where sticky events are not pushed when an event is pushed.
Wim Taymans [Fri, 9 Mar 2012 10:52:29 +0000 (11:52 +0100)]
pad: store the received result from _foreach
If the foreach function changes the received state of the sticky event, make
sure we remember that.
Wim Taymans [Fri, 9 Mar 2012 10:52:11 +0000 (11:52 +0100)]
pad: add comment
Wim Taymans [Fri, 9 Mar 2012 10:49:08 +0000 (11:49 +0100)]
test: add test to check sticky events order
Sticky events pushed on an unlinked pad should be stored on the pad. When the
pad is then linked and an event is pushed, the event should be merged with the
already existing sticky events and then the sticky events should be pushed in
the order that they were originally pushed.
Wim Taymans [Fri, 9 Mar 2012 10:48:40 +0000 (11:48 +0100)]
test: fix typo in comment
Tim-Philipp Müller [Thu, 8 Mar 2012 20:08:20 +0000 (20:08 +0000)]
tests: port pipeline/seek test to 0.11
Doesn't fail in 0.11 of course, at least not on my machine.
Tim-Philipp Müller [Thu, 8 Mar 2012 19:55:30 +0000 (19:55 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
common
gst/gstpad.h
gst/gsttask.c
libs/gst/base/gstcollectpads2.h
Tim-Philipp Müller [Thu, 8 Mar 2012 16:30:49 +0000 (16:30 +0000)]
pad, task: improve debug logging
Tim-Philipp Müller [Thu, 8 Mar 2012 16:26:44 +0000 (16:26 +0000)]
pads, collectpads2: get rid of superfluous brackets around static rec mutex calls
Makes it possible to define those calls to something for tracing.
Tim-Philipp Müller [Thu, 8 Mar 2012 16:25:20 +0000 (16:25 +0000)]
common: update common module
For make foo/bar.check-norepeat target.
Tim-Philipp Müller [Thu, 8 Mar 2012 15:23:56 +0000 (15:23 +0000)]
tests: add minimal basesrc ! sink seeking unit test
Should reproduce 'GStreamer-WARNING **: wrong STREAM_LOCK count 0'
warnings (with make pipelines/seek.torture or pipelines/seek.forever
anyway, since it appears to be racy).
https://bugzilla.gnome.org/show_bug.cgi?id=670846
Tim-Philipp Müller [Mon, 26 Dec 2011 00:18:29 +0000 (00:18 +0000)]
value: remove gst_value_register_{subtract,union,intersect}_func() API
There isn't really any need to provide public API for that. It's not
used anywhere in practice, and we aim to provide an API that works
for GstCaps, not some kind of generic set manipulation API based on
GValue. Making this private also makes it easier to optimise this
later. We can always put it back if someone actually needs it.
Wim Taymans [Thu, 8 Mar 2012 09:47:39 +0000 (10:47 +0100)]
tee: fix refcount error
Wim Taymans [Thu, 8 Mar 2012 08:45:06 +0000 (09:45 +0100)]
pad: return ANY for a pad without template
Because gst_pad_get_pad_template_caps() returns ANY when there is no template,
the query caps function should also return ANY when there is no template (and no
pad current caps) instead of EMPTY.
Wim Taymans [Thu, 8 Mar 2012 08:44:21 +0000 (09:44 +0100)]
pad: small cleanup
Wim Taymans [Wed, 7 Mar 2012 14:34:36 +0000 (15:34 +0100)]
memory: add comment
Sebastian Dröge [Thu, 8 Mar 2012 09:32:02 +0000 (10:32 +0100)]
baseparse: Fix merge mistake
Sebastian Dröge [Thu, 8 Mar 2012 09:19:52 +0000 (10:19 +0100)]
Merge branch 'master' into 0.11
Conflicts:
libs/gst/base/gstbaseparse.c
libs/gst/base/gstbasetransform.c
plugins/elements/gsttee.c
Mark Nauwelaerts [Wed, 7 Mar 2012 10:23:56 +0000 (11:23 +0100)]
baseparse: arrange for properly disjoint frame flags
Wim Taymans [Tue, 6 Mar 2012 14:17:05 +0000 (15:17 +0100)]
basetransform: delay pool activation
Delay the activation of the bufferpool until we actually need a buffer from the
pool.
Sebastian Dröge [Tue, 6 Mar 2012 11:28:02 +0000 (12:28 +0100)]
baseparse: Fix 'self-comparison always evaluates to true'
This was really a bug.
Sebastian Dröge [Tue, 6 Mar 2012 11:24:53 +0000 (12:24 +0100)]
tee: Fix 'use of logical '&&' with constant operand' compiler warning
This is actually a real bug.
Sebastian Dröge [Tue, 6 Mar 2012 11:23:15 +0000 (12:23 +0100)]
basetransform: Fix 'equality comparison with extraneous parentheses' compiler warning
Sebastian Dröge [Tue, 6 Mar 2012 11:16:19 +0000 (12:16 +0100)]
gst: Fix 'comparison of unsigned enum expression >= 0 is always true' compiler warning
Wim Taymans [Mon, 5 Mar 2012 14:23:46 +0000 (15:23 +0100)]
basetransform: don't propose_allocation before negotiation
Answer the allocation query with FALSE when we are not negotiated yet because at
that point we have no idea if we need to proxy the allocation query or not.
Sebastian Dröge [Mon, 5 Mar 2012 13:41:12 +0000 (14:41 +0100)]
baseparse: Fix handling of multiple newsegment events
Previously only the last would be pushed, which would cause
invalid running times downstream. This also fixes the handling
of update newsegment events.
Sebastian Dröge [Mon, 5 Mar 2012 13:25:57 +0000 (14:25 +0100)]
baseparse: Also flush the close_segment
Pushing this after flushing will confuse downstream.
Sebastian Dröge [Mon, 5 Mar 2012 13:23:17 +0000 (14:23 +0100)]
baseparse: Remove obsolete code and move gap handling to the correct place
The segment start adjustment code in pull mode should never trigger
anymore because the bisection code earlier would have already made
sure that we're at the desired position.
Also move the gap handling some lines below after sending the currently
configured segments. Otherwise we might fill gaps in a segment that is
not configured downstream yet.
Sebastian Dröge [Mon, 5 Mar 2012 12:12:18 +0000 (13:12 +0100)]
baseparse: Clear some more state when receiving FLUSH_STOP
Like pending serialized events and the currently cached buffer.
Sebastian Dröge [Mon, 5 Mar 2012 12:00:38 +0000 (13:00 +0100)]
baseparse: Only queue serialized events for sending them later
Tim-Philipp Müller [Mon, 5 Mar 2012 00:34:36 +0000 (00:34 +0000)]
libgstcheck: export gst_consistency_checker_add_pad()
Fix build of the adder unit test in -base again.
Wim Taymans [Fri, 2 Mar 2012 16:32:28 +0000 (17:32 +0100)]
basetransform: refine metadata filter and transform
Add a vmethod to filter metadata that should be passed upstream. By default,
don't pass anything.
Add a vmethod to transform metadata from the input buffer to the output buffer.
By default, nothing is transformed or copied.
Wim Taymans [Fri, 2 Mar 2012 16:04:05 +0000 (17:04 +0100)]
gst: include gstmeta.h
Wim Taymans [Fri, 2 Mar 2012 16:03:49 +0000 (17:03 +0100)]
bufferpool: add more debug info
Wim Taymans [Fri, 2 Mar 2012 12:02:46 +0000 (13:02 +0100)]
defs: update
Wim Taymans [Fri, 2 Mar 2012 12:02:37 +0000 (13:02 +0100)]
tests: improve metadata test
Wim Taymans [Fri, 2 Mar 2012 11:45:23 +0000 (12:45 +0100)]
meta: add boolean to signal a region copy
Add a boolean to the metadata copy transform that signals if a only a
region is copied.
Stefan Sauer [Fri, 2 Mar 2012 11:16:03 +0000 (12:16 +0100)]
consitencychecker: don't fail on multiple flush_start events
This seems to be okay after a irc discussion.
Wim Taymans [Fri, 2 Mar 2012 10:57:52 +0000 (11:57 +0100)]
meta: transform docs
Use gst- prefix for metadata transform types.
Wim Taymans [Fri, 2 Mar 2012 10:04:21 +0000 (11:04 +0100)]
basetrans: fix comment
Sebastian Dröge [Fri, 2 Mar 2012 10:05:48 +0000 (11:05 +0100)]
gst: Remove gstmarshal.[ch] completely and use the generic marshaller
Fixes bug #671130.
Sebastian Dröge [Fri, 2 Mar 2012 09:51:42 +0000 (10:51 +0100)]
gst: Don't install gstmarshal.h
The generic, FFI based marshaller should be used instead of these
and we definitely shouldn't export the marshallers in our public API.
Wim Taymans [Thu, 1 Mar 2012 16:39:17 +0000 (17:39 +0100)]
meta: improve debugging
Add category for metadata debug
Wim Taymans [Thu, 1 Mar 2012 16:38:54 +0000 (17:38 +0100)]
basetransform: improve debugging
Wim Taymans [Thu, 1 Mar 2012 16:38:27 +0000 (17:38 +0100)]
pad: improve debugging
Wim Taymans [Thu, 1 Mar 2012 14:18:04 +0000 (15:18 +0100)]
basetransform: remove metadata tagged with the memory tag
Remove metadata that describes the particular memory of the buffer it is
attached to. We need to do this because in non-passthrough mode we will allocate
new memory for our output buffer.
Wim Taymans [Thu, 1 Mar 2012 14:17:37 +0000 (15:17 +0100)]
meta: add tag for memory metadata
Wim Taymans [Thu, 1 Mar 2012 13:49:38 +0000 (14:49 +0100)]
query: add method to remove allocation_meta
Also g_return_if_fail for out-of-bounds access instead of silently failing.
Wim Taymans [Thu, 1 Mar 2012 13:30:58 +0000 (14:30 +0100)]
basetransform: improve propose_allocation
Improve the propose allocation vmethod by passing the downstream allocation
query to it. This way the vmethod implementation can use properties of the
downstream allocation to generate the upstream query result. If there is no
downstream quety, it means that the element is working in passthrough mode.
Implement a default decide_allocation.
Wim Taymans [Thu, 1 Mar 2012 10:11:43 +0000 (11:11 +0100)]
basetransform: clear allocation parameters in passthrough
Clear the allocation parameters when we operate in passthrough.
Wim Taymans [Thu, 1 Mar 2012 10:06:49 +0000 (11:06 +0100)]
tests: fix old caps in tests now that core warns
Sebastian Dröge [Thu, 1 Mar 2012 13:51:26 +0000 (14:51 +0100)]
libs: Fix some merge mistakes
Sebastian Dröge [Thu, 1 Mar 2012 13:43:01 +0000 (14:43 +0100)]
Merge branch 'master' into 0.11
Conflicts:
libs/gst/base/gstcollectpads2.c
libs/gst/check/gstconsistencychecker.c
Mark Nauwelaerts [Tue, 28 Feb 2012 11:03:46 +0000 (12:03 +0100)]
pad: fix some debug message typos
Stefan Sauer [Wed, 29 Feb 2012 20:57:00 +0000 (21:57 +0100)]
consitencychecker: add handling for sink-pads
Add a pad-probe for sink-pads. One can now add extra pads (belonging to the same
element) to a checker. This allows us to extend the checks.
Wim Taymans [Wed, 29 Feb 2012 16:20:23 +0000 (17:20 +0100)]
meta: split registration of API and implementation
Split out the registration of the metadata API and its implementation. Make a
GType for each metadata API. This allows us to store extra information with the
API type such as the tags.
Change the buffer API so that we can get the metadata using the API GType.
Change the query API so that we use the metadata API GType in the allocation
query instead of a string.
Update netaddress and unit tests
Wim Taymans [Wed, 29 Feb 2012 15:00:22 +0000 (16:00 +0100)]
minobject: small .h indent fix
Tim-Philipp Müller [Wed, 29 Feb 2012 12:41:44 +0000 (12:41 +0000)]
structure: print a g_warning() if someone tries to construct 0.10-style raw audio/video caps
Stefan Sauer [Wed, 29 Feb 2012 07:44:04 +0000 (08:44 +0100)]
consistencychecker: also check for duplicated flush_starts
Stefan Sauer [Tue, 28 Feb 2012 19:36:59 +0000 (20:36 +0100)]
collectpads2: add more logging
Wim Taymans [Tue, 28 Feb 2012 15:17:47 +0000 (16:17 +0100)]
meta: add return vale to transform
Add a boolean return value so that we can see when a transform fails.
Wim Taymans [Tue, 28 Feb 2012 11:52:00 +0000 (12:52 +0100)]
meta: add method to check for a tag
Wim Taymans [Tue, 28 Feb 2012 11:51:27 +0000 (12:51 +0100)]
tests: fix unit test
Wim Taymans [Tue, 28 Feb 2012 10:34:48 +0000 (11:34 +0100)]
meta: add support to tagging the metadata
Add support for adding tags to the metadata. with some standard keys, this
should make it possible to describe what the metadata refers to. We should be
able to use this information to decide if a transformation destroys the metadata
or not.