Mark Nauwelaerts [Thu, 22 Mar 2012 14:22:57 +0000 (15:22 +0100)]
basetransform: remove automatic and undocumented setting of always_in_place
... which controls how to (forcibly) deal with (non-)writable data and
is not necessarily related to identical caps.
In particular, it is also not so helpful anymore with a more advanced
GstVideoFilter subclass which always has a transform_ip method currently,
even though its subclass may not have a corresponding _ip method.
Wim Taymans [Thu, 22 Mar 2012 09:45:06 +0000 (10:45 +0100)]
Merge branch 'master' into 0.11
Conflicts:
configure.ac
Wim Taymans [Wed, 21 Mar 2012 11:10:21 +0000 (12:10 +0100)]
dist net directory only once
Sebastian Dröge [Wed, 21 Mar 2012 08:00:45 +0000 (09:00 +0100)]
query: Only allow fixed caps in the accept-caps query
Wim Taymans [Tue, 20 Mar 2012 16:08:28 +0000 (17:08 +0100)]
baseparse: do queries more directly
Just call our internal query function instead of going through the pad and the
query handler etc.
Wim Taymans [Tue, 20 Mar 2012 16:08:00 +0000 (17:08 +0100)]
adapter: add some performance debug
Wim Taymans [Tue, 20 Mar 2012 12:14:55 +0000 (13:14 +0100)]
pad: improve docs of get/pull_range
Improve the docs of the get/pull_range functions, define the lifetime of the
buffer in case of errors and short reads.
Make sure the code does what the docs say.
Wim Taymans [Tue, 20 Mar 2012 09:20:29 +0000 (10:20 +0100)]
buffer: improve gst_buffer_new_wrapped_full()
Make it possible to wrap all kinds of memory by exposing all properties to
gst_buffer_new_wrapped_full(). This makes it possible to also create writable
memory without a free function or memory with extra padding.
Wim Taymans [Mon, 19 Mar 2012 10:45:27 +0000 (11:45 +0100)]
multiqueue: handle serialized queries
Wim Taymans [Fri, 16 Mar 2012 21:51:14 +0000 (22:51 +0100)]
basetransform: make more stuff private
Wim Taymans [Fri, 16 Mar 2012 21:25:38 +0000 (22:25 +0100)]
basetransform: small cleanups
Wim Taymans [Fri, 16 Mar 2012 20:37:10 +0000 (21:37 +0100)]
pad: change the semantics of get/pull_range a little
Make it so that one can specify a buffer for get/pull_range where the downstream
element should write into. When passing NULL, upstream should allocate a buffer,
like in 0.10.
We also need to change the probes a little because before the pull probe, there
could already be a buffer passed. This then allows us to use the same PROBE
macro for before and after pulling.
While we're at the probes, make the query probe more powerful by handling the
GST_PAD_PROBE_DROP return value. Returning _DROP from a query probe will now
return TRUE upstream and will not forward the probe to the peer or handler.
Also handle _DROP for get/pull_range properly by not dispatching to the
peer/handler or by generating EOS when the probe returns DROP and no buffer.
Make filesrc handle the non-NULL buffer passed in the get_range function and
skip the allocation in that case, writing directly into the downstream provided
buffer.
Update tests because now we need to make sure to not pass a random value in the
buffer pointer to get/pull_range
Wim Taymans [Fri, 16 Mar 2012 20:36:33 +0000 (21:36 +0100)]
typefind: proxy allocation query
Wim Taymans [Fri, 16 Mar 2012 17:39:08 +0000 (18:39 +0100)]
event: fix docs a little, alloc_buffer is gone
Wim Taymans [Thu, 15 Mar 2012 21:09:02 +0000 (22:09 +0100)]
bufferpool: split bufferpool configuration
Make separate methods to control the bufferpool and the allocator used by the
bufferpool.
Make it possible to change the allocator of a pool.
Wim Taymans [Thu, 15 Mar 2012 19:23:59 +0000 (20:23 +0100)]
query: rework the ALLOCATION query
Separate the bufferpool and allocator hints in the allocation query, some
of the values don't always make sense together.
Keep the bufferpool and its configuration together.
Keep the allocator and its parameters together.
Allow for multiple bufferpool configurations in the query.
Wim Taymans [Thu, 15 Mar 2012 15:50:31 +0000 (16:50 +0100)]
pad: comment and debug improvement
Wim Taymans [Thu, 15 Mar 2012 15:49:33 +0000 (16:49 +0100)]
utils: improve debug
also fix a potential memory leak
Wim Taymans [Thu, 15 Mar 2012 13:28:22 +0000 (14:28 +0100)]
defs: update
Wim Taymans [Thu, 15 Mar 2012 13:01:44 +0000 (14:01 +0100)]
GstBufferPoolParams -> GstBufferPoolAcquireParams
Because those flags are not from the bufferpool but for the acquire function.
Wim Taymans [Thu, 15 Mar 2012 12:28:28 +0000 (13:28 +0100)]
memory: group allocation parameters in a struct
Group the extra allocation parameters in a GstAllocationParams structure to make
it easier to deal with them and so that we can extend them later if needed.
Make gst_buffer_new_allocate() take the GstAllocationParams for added
functionality.
Add boxed type for GstAllocationParams.
Wim Taymans [Wed, 14 Mar 2012 23:25:50 +0000 (00:25 +0100)]
filesrc: only update buffer size on short read
Wim Taymans [Wed, 14 Mar 2012 23:24:40 +0000 (00:24 +0100)]
query: fix copy function
Copy the structure too.
Wim Taymans [Wed, 14 Mar 2012 23:23:57 +0000 (00:23 +0100)]
memory: fix maxsize after align
when we align the data pointer, make sure to update the maxsize.
Add some more debug
Wim Taymans [Wed, 14 Mar 2012 21:58:34 +0000 (22:58 +0100)]
queue: remove useless PROXY_ALLOCATION flag
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().
Tim-Philipp Müller [Mon, 12 Mar 2012 23:05:01 +0000 (23:05 +0000)]
configure: bump AS_LIBTOOL version
API was added to collectpads2
Tim-Philipp Müller [Mon, 12 Mar 2012 23:02:48 +0000 (23:02 +0000)]
configure: backport AS_LIBTOOL version from 0.10.36 release
Might fix issues with missing symbols for people who install GStreamer
from source and at some point jumped back and forth between git master
and the 0.10.36 release (or 0.10. branch).
Stefan Sauer [Mon, 12 Mar 2012 22:08:00 +0000 (23:08 +0100)]
docs: fix function name and typo
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.
Christian Fredrik Kalager Schaller [Mon, 12 Mar 2012 09:03:42 +0000 (09:03 +0000)]
update license link to point to 2.1 license, instead of just generic lgpl file, which is always the latest and thus not correct for gstreamer
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