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.
Edward Hervey [Mon, 27 Feb 2012 12:35:10 +0000 (13:35 +0100)]
Suppress deprecation warnings in selected files, for g_value_array_* mostly
Wim Taymans [Mon, 27 Feb 2012 10:46:08 +0000 (11:46 +0100)]
tests: increase bus test timeout
Tim-Philipp Müller [Tue, 21 Feb 2012 20:43:48 +0000 (20:43 +0000)]
tests: make datetime test more reliably when comparing two almost identical nows
Account for rounding errors in some places, and that two nows are
not always entirely identical, so allow some leeway when comparing
microseconds and seconds. Ran into this too often, esp. when the
system is under load.
Wim Taymans [Mon, 27 Feb 2012 08:48:06 +0000 (09:48 +0100)]
remove some useless includes in .h
Wim Taymans [Mon, 27 Feb 2012 08:02:07 +0000 (09:02 +0100)]
clock: make more stuff private
Expose methods to get and set the timeout because subclasses uses this.
Wim Taymans [Sun, 26 Feb 2012 19:45:14 +0000 (20:45 +0100)]
systemclock: make more stuff private
Wim Taymans [Sun, 26 Feb 2012 19:44:50 +0000 (20:44 +0100)]
bufferpool: make more stuff private
Wim Taymans [Sun, 26 Feb 2012 15:32:32 +0000 (16:32 +0100)]
bus: make more fields private
Tim-Philipp Müller [Mon, 27 Feb 2012 00:09:57 +0000 (00:09 +0000)]
fdsink: fix compilation after merge
Tim-Philipp Müller [Mon, 27 Feb 2012 00:08:39 +0000 (00:08 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
NEWS
RELEASE
configure.ac
docs/plugins/gstreamer-plugins.hierarchy
docs/plugins/inspect/plugin-coreelements.xml
libs/gst/base/gstcollectpads.c
libs/gst/base/gstcollectpads2.c
plugins/elements/gstfdsink.c
win32/common/config.h
win32/common/gstenumtypes.c
win32/common/gstversion.h
Stefan Sauer [Sun, 26 Feb 2012 22:11:23 +0000 (23:11 +0100)]
collectpads2: rescue the annotation from collectpads
Stefan Sauer [Sun, 26 Feb 2012 22:10:58 +0000 (23:10 +0100)]
docs: fix a typo in comment
Stefan Sauer [Sun, 26 Feb 2012 21:57:02 +0000 (22:57 +0100)]
collectpads2: move "MT save" tags to doc body
It is not useful to have "MT safe" tags randomly in body, returns or since paragraphs.
Tim-Philipp Müller [Sat, 25 Feb 2012 15:18:00 +0000 (15:18 +0000)]
fdsink: implement GstBaseSink::query instead of messing with the pad
Tim-Philipp Müller [Sat, 25 Feb 2012 15:08:55 +0000 (15:08 +0000)]
fdsink: implement SEEKING query
We may or may not support seeking. stdout to a
terminal doesn't support seeking, for example, but
... ! fdsink > file.foo just might.
Tim-Philipp Müller [Sat, 25 Feb 2012 15:07:43 +0000 (15:07 +0000)]
filesink: implement SEEKING query
We may or may not do seeking, depends on the
output file/device really, it doesn't have to
be a file after all.
Tim-Philipp Müller [Sat, 25 Feb 2012 15:07:05 +0000 (15:07 +0000)]
fakesink: answer SEEKING query
We don't do seeking, in case anyone wants to know.
Tim-Philipp Müller [Fri, 24 Feb 2012 23:39:30 +0000 (23:39 +0000)]
registry: fix lseek() return code handling
lseek() returns the offset if successful, and this is != 0 and
does not indicate an error. And if it does actually fail, don't
return FALSE (0) as an int, but -1. None of these things are
likely to have made a difference, ever. I don't think the offset
seek can ever actually happen, the current file position and the
current offset should always be increased in lock step, unless
there was an error in which case we'd just error out.
Tim-Philipp Müller [Fri, 24 Feb 2012 23:19:51 +0000 (23:19 +0000)]
registry: don't forget to clean up registry temp file in another error case
Also clean up temp file if we get an error during write() rather
than just when doing fsync() or close().
Wim Taymans [Fri, 24 Feb 2012 14:24:42 +0000 (15:24 +0100)]
atomicqueue: fix race
After a writer has written to its reserved write location, it can only make the
location available for reading if all of the writers with lower locations have
finished.
Wim Taymans [Fri, 24 Feb 2012 11:51:24 +0000 (12:51 +0100)]
atomicqueue: fix subtle race
Fix a race where the reader would see the updated the tail pointer before the
write could write the data into the queue. Fix this by having a separate reader
tail pointer that is only incremented after the writer wrote the data.
Wim Taymans [Fri, 24 Feb 2012 10:00:21 +0000 (11:00 +0100)]
basetransform: fix reconfigure methods
Rename gst_base_transform_suggest to gst_base_transform_reconfigure_sink because
that is what it does. Also remove the caps and size because that is not needed.
Rename gst_base_transform_reconfigure to gst_base_transform_reconfigure_src.
Remove some old unused code in capsfilter.
Wim Taymans [Fri, 24 Feb 2012 09:23:27 +0000 (10:23 +0100)]
meta: flesh out the metadata transform
Flesh out the transform method. Add a type and extra info to the transform
function so that implementation can transform the metadata.
Remove the copy function and replace with the more generic transform.
Wim Taymans [Fri, 24 Feb 2012 09:23:17 +0000 (10:23 +0100)]
docs: update docs
David Schleef [Thu, 23 Feb 2012 16:48:22 +0000 (08:48 -0800)]
Fix gap in Makefile
David Schleef [Thu, 23 Feb 2012 16:48:10 +0000 (08:48 -0800)]
spelling fix
David Schleef [Tue, 27 Dec 2011 00:45:20 +0000 (16:45 -0800)]
poll: fix spelling of writable
Wim Taymans [Thu, 23 Feb 2012 14:32:33 +0000 (15:32 +0100)]
memory: add user_data to GstMapInfo
Add extra pointers to GstMapInfo so that implementations can use these to store
extra info.
Wim Taymans [Thu, 23 Feb 2012 14:32:19 +0000 (15:32 +0100)]
bufferpool: improve docs