Commit graph

6320 commits

Author SHA1 Message Date
Wim Taymans
544aa9773a Merge branch 'master' into 0.11 2011-10-04 17:39:17 +02:00
Edward Hervey
314a24c4ac gstevent: specify (transfer) for gst_event_new_segment 2011-10-04 15:56:28 +02:00
Wim Taymans
4f8bb4085f Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstbaseparse.c
2011-10-03 10:06:17 +02:00
Edward Hervey
a7f8e4a230 gstquery: Make debugging message more informative
For all the newcomers out there who still don't know the values of
GstQueryType enum by heart...
... and old-timers who've got better things to do :)
2011-10-03 09:31:59 +02:00
Tim-Philipp Müller
eeed491170 gst.h: include header for atomic queue 2011-09-30 14:52:01 +01:00
Wim Taymans
eda44fbc22 memory: fix memory alignment
Fix compilation when POSIX_MEMALIGN is not set.
Debug the configured alignment.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=660300
2011-09-28 18:47:02 +02:00
Wim Taymans
422d1245c1 pad: improve debug 2011-09-28 18:44:12 +02:00
Wim Taymans
8a1f401dfd docs: fix docs 2011-09-26 20:47:35 +02:00
Wim Taymans
52cb649834 Merge branch 'master' into 0.11 2011-09-26 19:25:22 +02:00
Wim Taymans
dc8b6a555d segment: improve API docs a little 2011-09-26 19:24:19 +02:00
Raimo Järvi
6637d983d3 gst: Fix compiler warnings on 64 bit mingw-w64
Fixes bug #660083.
2011-09-26 12:17:30 +02:00
Edward Hervey
10e7159cf8 Merge branch 'master' into 0.11
Conflicts:
	gst/gstcaps.c
	gst/gstpad.c
	libs/gst/base/gstbasesink.c
	libs/gst/base/gstbasesink.h
	libs/gst/base/gstbasetransform.c
2011-09-23 13:09:25 +02:00
Stas Sergeev
b090a376d4 pad: Set caps on pad before checking if the pad is linked
This allows the setcaps handler and notify::caps to link
the pad downstream and doesn't require hacks to always
provide a peer to the pad, like in decodebin2.
2011-09-19 14:08:16 +02:00
Fabrizio (Misto) Milo
7be3899653 caps: use g_value_take_string() and gst_value_get_caps() instead of accessing internal fields 2011-09-19 09:50:11 +02:00
Tim-Philipp Müller
b15ae28ad2 pad: add more debug logging for other chain function code path as well 2011-09-16 13:38:41 +01:00
Tim-Philipp Müller
a08402bdfd pad: fix up printf format in debug message
Which I messed up.
2011-09-16 13:13:30 +01:00
Vincent Penquerc'h
91c217c714 pad: make some debug traces more useful
https://bugzilla.gnome.org/show_bug.cgi?id=659139
2011-09-16 12:07:21 +01:00
Tim-Philipp Müller
98ee2979d1 caps: move log messages for caps creation/freeing into TRACE category
Reduce SPAM for GST_CAPS:5.
2011-09-10 18:24:49 +01:00
Sebastian Dröge
22ba786807 pad: Only do the subset check in gst_pad_accept_caps() if the pad claims to accept the caps 2011-09-09 12:56:20 +02:00
Sebastian Dröge
7476186217 Revert "Revert "pad: Check for subsets, not non-empty intersections to check if caps are compatible""
This reverts commit 2bfada5581.

Conflicts:

	gst/gstpad.c

For 0.11 we want to enforce that only subsets of the pad
caps are allowed. This breaks backward compatibility for
some elements, which is why we only print a warning in
0.10.
2011-09-08 14:32:26 +02:00
Sebastian Dröge
7a82ed41f8 Revert "pad: Use gst_pad_accept_caps() instead of manually checking when configuring a sinkpad"
This reverts commit d3cad28da9.

It causes performance problems because acceptcaps() propagates downstream.
2011-09-08 14:29:00 +02:00
Sebastian Dröge
43538e2e75 Merge branch 'master' into 0.11
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
2011-09-08 14:28:23 +02:00
Sebastian Dröge
d3cad28da9 pad: Use gst_pad_accept_caps() instead of manually checking when configuring a sinkpad 2011-09-08 13:42:53 +02:00
Sebastian Dröge
79b5e89015 pad: Print a g_warning() if pad accept caps that are not a subset of its caps
In 0.11 only subsets are supported again as documented instead of also
allowing non-empty intersections.
2011-09-08 13:42:53 +02:00
Sebastian Dröge
2bfada5581 Revert "pad: Check for subsets, not non-empty intersections to check if caps are compatible"
This reverts commit 0c5d502073.

See bug #658541.
2011-09-08 13:42:52 +02:00
Piotr Fusik
14f5518f3d docs, gst: typo fixes
https://bugzilla.gnome.org/show_bug.cgi?id=658449
2011-09-07 18:03:17 +01:00
Stefan Sauer
83eb2d42fa docs: escape % in docblob 2011-09-07 14:08:35 +02:00
Stas Sergeev
fcadf09779 ghostpad: Use gst_pad_set_caps() instead of manually changing caps
gst_pad_set_caps() does essentially the same but additionally calls
the pad's setcaps function.

Fixes bug #658076.
2011-09-07 13:38:47 +02:00
Sebastian Dröge
0c5d502073 pad: Check for subsets, not non-empty intersections to check if caps are compatible
Pads should only accept caps that are a subset of the pad caps, e.g.
they should accept only caps that have a non-empty intersection and
at least all fields of the pad caps.

Without this a pad that wants for example
  "video/x-h264,stream-format=byte-stream"
will be happy to accept
  "video/x-h264".
2011-09-06 12:35:41 +02:00
Wim Taymans
a952de69dd miniobject: change to GST_DEFINE_MINI_OBJECT_TYPE
Append _TYPE to the macro for consistency with other similar macros.
2011-08-29 17:06:18 +02:00
Wim Taymans
f3b0d3cdbe init: add _get_type() functions
Remove gst_mini_object_register() and add a GST_DEFINE_MINI_OBJECT macro to
define a _get_type() function for the boxed miniobject.
Remove a bunch of custom _get_type() functions and replace them with the
miniobject macro.
Rename some _init method to _priv_*_initialize() like the rest of them.

Inspired by patch from Johan Dahlin and see bug #657603
2011-08-29 15:34:30 +02:00
Wim Taymans
4145598972 gst: add some _priv prefixes to private methods 2011-08-29 13:27:26 +02:00
Wim Taymans
1e59b651ba mini-object: use ref/unref directly in boxed copy/free
GLib will not call our copy/free with a NULL object
2011-08-29 12:38:54 +02:00
Wim Taymans
5cf8e68944 Merge branch 'master' into 0.11
Conflicts:
	gst/gstmessage.c
	gst/gstquery.c
	gst/gstregistrychunks.c
	gst/gstsegment.c
	libs/gst/base/gstbasetransform.c
	libs/gst/base/gstbasetransform.h
	libs/gst/base/gsttypefindhelper.c
	plugins/elements/gsttypefindelement.c
2011-08-26 14:37:54 +02:00
Wim Taymans
cc1686352d buffer: improve flags
Rename DROP to DECODE_ONLY.
Add DROPPABLE flag to mark buffers that can be dropped to save bandwidth without
destroying the stream.
2011-08-26 14:17:23 +02:00
Josep Torra
185ab7f325 docs: add since 0.10.36 on the new _NONE enum values 2011-08-26 14:11:15 +02:00
Josep Torra
306e317ae9 typefind: add GST_TYPE_FIND_NONE and use it
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:15 +02:00
Josep Torra
1db007e5bb parse: use GST_PARSE_FLAG_NONE instead of 0
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
b26c5b99f2 value: explicitly cast to the enum type
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
b57683d258 utils: minor changes related to enum types
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
c0749e7762 trace: add GST_ALLOC_TRACE_NONE for consistency and use it
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
97442ad1a3 task: explicitly cast to the enum type
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
95b96b57a2 tagsetter: use GST_TAG_MERGE_UNDEFINED instead of FALSE
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
c0b0b977d7 segment: use GST_SEEK_FLAG_NONE instead of 0
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
9f8fe424c7 registrychunks: explicitly cast to the enum types
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:14 +02:00
Josep Torra
ec157ebed9 query: minor changes related to enum types
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:13 +02:00
Josep Torra
480d415419 padtemplate: explicitly cast to the enum types
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:13 +02:00
Josep Torra
746813344d pad: explicitly cast to the enum type
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:13 +02:00
Josep Torra
c27ce79ba1 message: explicitly cast to the right enum types
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:13 +02:00
Josep Torra
2a6ba0b29d info: explicitly cast to the enum type
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:13 +02:00
Josep Torra
e5d00246cf index: explicitly cast to the enum type
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:13 +02:00
Josep Torra
11e287529d format: use GST_FORMAT_UNDEFINED and few casts to GstFormat
Fixes warning #188: enumerated type mixed with another type reported by ICC.
2011-08-26 14:11:13 +02:00
Wim Taymans
4b3ffbc14d buffer: rename _CLIP to _DROP flag
We can also use a flag to indicate that a frame should be decoded but not
displayed regardless of the the segment boundaries so we use the more generic
_DROP.
2011-08-26 13:40:44 +02:00
Wim Taymans
3d87984db3 uri: some doc fixes 2011-08-26 10:57:37 +02:00
Wim Taymans
0a3aede5a8 buffer: add clip flag 2011-08-25 18:04:28 +02:00
Wim Taymans
fa8f9b50ea buffer: rework flags a little
Reorder buffer flags and add some new ones.
Remove the media specific flags, we can now easily do this with the FLAG_LAST
flag because we don't extend from GstBuffer anymore.
2011-08-25 16:21:18 +02:00
Wim Taymans
b5ef693e88 buffer: always copy all buffer flags when asked
Don't try to be smart and copy only a subset of buffer flag
2011-08-25 16:20:21 +02:00
Wim Taymans
7ee57702a8 buffer: pluralize the buffer flags 2011-08-25 14:09:37 +02:00
Wim Taymans
6f295dc239 Merge branch 'master' into 0.11
Conflicts:
	gst/gstobject.c
2011-08-24 10:43:09 +02:00
Stefan Kost
febde0c19f gstobject: also remove the cast as this is causing the trouble 2011-08-23 11:55:17 +02:00
Stefan Kost
df099959fd gstobject: use the atomic macros to deal with the glib change in the impl. 2011-08-23 11:43:44 +02:00
Wim Taymans
655f1b9c57 object: make _replace like the miniobject version 2011-08-22 12:49:04 +02:00
Wim Taymans
8170c34c94 Merge branch 'master' into 0.11
Conflicts:
	gst/gstbuffer.h
	gst/gstcaps.c
	gst/gstcaps.h
	gst/gstevent.c
2011-08-22 12:33:35 +02:00
Wim Taymans
405a5d2a92 value: remove our FOURCC GType
Remove our custom fourcc GValue.
2011-08-22 12:19:19 +02:00
David Schleef
ec6e452f63 object: make gst_object_replace() atomic 2011-08-21 14:07:08 -07:00
Stefan Kost
cce32ba0a2 docs: more clarification for element docs
Don't suggest deprecated method in the desction docs and try to be more helpful
in other places by suggesting related functions.
2011-08-20 14:07:55 +02:00
Stefan Kost
a3611c139a docs: small clarification in the gst_element_get_request_pad docs
Make it more obvious that one should pass the template name.
2011-08-20 09:57:14 +02:00
Wim Taymans
b1573e9865 structure: add method to fixate one field 2011-08-17 17:56:40 +02:00
Wim Taymans
e4db8d0f55 docs: improve some docs 2011-08-17 09:25:04 +02:00
Wim Taymans
aefa1c67f8 buffer: return processed number of bytes
Make _fill, _extract and _memset return the actual number of bytes that were
handled in case the buffer size is less than the specified size.
2011-08-16 18:29:29 +02:00
Tim-Philipp Müller
eb08ed6ed0 docs: fix typo in element factory documentation 2011-08-16 17:19:29 +01:00
Wim Taymans
8698a8c94e buffer: rename PREROLL -> LIVE flag
Rename the GST_BUFFER_FLAG_PREROLL to GST_BUFFER_FLAG_LIVE and give the new flag
a meaning. The old PREROLL flag never had a clear meaning.
2011-08-16 17:32:20 +02:00
Tim-Philipp Müller
4985d2a954 caps: fix compiler warning reported by ICC
The MAX macro expands to code that checks if an unsigned integer is < 0.

Fixes warning #186: pointless comparison of unsigned integer reported by ICC.

https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:15:29 +01:00
Josep Torra
c56881a026 buffer: explicitly cast to the enum type
Fixes warning #188: enumerated type mixed with another type reported by ICC.

https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:15:22 +01:00
Josep Torra
2271b6dc9a gststate: explicitly cast to the enum type
Fixes warning #188: enumerated type mixed with another type reported by ICC.

https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:15:12 +01:00
Josep Torra
89239d85cc event: explicitly cast to the right enum types
Fixes warning #188: enumerated type mixed with another type reported by ICC.

https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:14:55 +01:00
Josep Torra
7b434c44bf gsterror: explicitly cast to the right GstGError code enum types
Fixes warning #188: enumerated type mixed with another type reported by ICC.

https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:14:22 +01:00
Josep Torra
b30b78c505 debugutils: use GST_STATE_VOID_PENDING for GstState instead of 0
Fixes a warning reported by ICC.

https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:13:47 +01:00
Josep Torra
d99d270a69 caps: define GST_CAPS_FLAGS_NONE for consistency with other enumerations
Use them to fix warnings when building with ICC.

API: GST_CAPS_FLAGS_NONE

https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:13:29 +01:00
Josep Torra
abda75bcf5 gst: use GstDebugLevel enum type to fix a warning building with ICC
https://bugzilla.gnome.org/show_bug.cgi?id=656265
2011-08-15 21:13:03 +01:00
Wim Taymans
d22192474a pad: make fixate caps behave like other functions
Install a default fixate caps function on pads like all the other pad functions.
2011-08-15 16:45:33 +02:00
Wim Taymans
e01b5c0f46 Merge branch 'master' into 0.11 2011-08-15 14:43:14 +02:00
Wim Taymans
49fc4249e5 caps: add fixate function
Add a fixate function and use it in gstpad.c
2011-08-15 14:40:38 +02:00
Wim Taymans
bd20d2d199 structure: add function to fixate
Add a function to fixate a structure and use it for the default fixate function
in gstpad.c.
2011-08-15 14:32:17 +02:00
Wim Taymans
d12738b4fa pad: fix default acceptcaps
Make the acceptcaps function behave like all the other functions with a default
implementation. Don't try to chain up to the default implementation when it was
set to NULL explicitly but return FALSE instead.
Fix some docs
2011-08-15 14:19:09 +02:00
Wim Taymans
cbccf7d5bf pad: fix some macros
Remove a rather usless macro to check if a pad mode is active and
add GST_PAD_IS_ACTIVE().
2011-08-15 13:24:11 +02:00
Wim Taymans
1c16ff94fc pad: remove gst_pad_get_negotiated_caps()
Remove gst_pad_get_negotiated_caps(), it does not realy do what it says,
gst_pad_get_current_caps() returns the currently negotiated caps on the pad
correctly.
2011-08-15 12:16:30 +02:00
Peteris Krisjanis
59bf122584 iterator: Fix gst_iterator_next() element annotation 2011-08-12 11:48:49 +02:00
Stefan Kost
d8c0bd45a7 debugutils: removed non-sense comment 2011-08-11 10:09:41 +02:00
Edward Hervey
bdc1710be5 Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	gst/gstdebugutils.c
	gst/gstelementdetails.h
	gst/gstregistrychunks.c
	tools/gst-run.c
2011-08-10 17:07:54 +02:00
Stefan Kost
20618b4c28 registry: move utf-8 validation to registry saving time
Instead of checking for valid utf-8 element-details every time we create
elements (from plugin-init or registry), do it before we save the registry.
Fixes #656193.
2011-08-10 13:45:49 +02:00
Josep Torra
178bdccb76 Fix and clarify debug statements
Fixes build on MacOSX

Signed-off-by: Edward Hervey <edward.hervey@collabora.co.uk>
2011-08-10 11:01:58 +02:00
Edward Hervey
2d4ddc3a08 gstbuffer: Clarify doc 2011-08-08 11:51:26 +02:00
Shaun Hoopes
3029a222e8 debugutils: improve dot file flow layout
Iterate source- and sink-pads separately to ensure that the graph reflects the
upstream/downstream order. Fixes #643269
2011-08-06 18:26:39 +02:00
Wim Taymans
99d4880f31 pad: add method to mark reconfigure 2011-08-04 17:12:21 +02:00
Wim Taymans
aa97daaf0e fix default alignment
A 0 alignment is the default.
2011-08-04 11:00:57 +02:00
Wim Taymans
7c9be852bc bufferpool: add gst_buffer_pool_is_active() 2011-08-04 10:54:29 +02:00
Wim Taymans
9324824853 bufferpool: don't add the same option twice
Make sure that we only add an option to the array once.
2011-08-01 18:12:12 +02:00
Wim Taymans
60cb9cddd4 bufferpool: add method to check for an option
Add a method to check if an option is supported on the bufferpool.
2011-07-30 14:04:43 +02:00
Wim Taymans
733e94ada8 bufferpool: add options API to bufferpool
Make it possible to query the supported options of a bufferpool and enable
options. This is a bit more generic than the API to enable metadata. The purpose
is to make it possible to add new custom config options to the configuration of
the bufferpool when supported.
2011-07-29 17:10:09 +02:00
Tim-Philipp Müller
388548222d element: don't use G_CONST_RETURN
It's been deprecated in newer GLib versions
2011-07-28 12:11:36 +01:00
Tim-Philipp Müller
ef8ca3549e gst: fix awkward dest_format inout parameter in query utility functions
The idea was originally that if one passed &dest_fmt with
dest_fmt=GST_FORMAT_DEFAULT, then the code answering the query
could change dest_fmt to the actual default format used. However,
in more than half a decade of GStreamer 0.10 no piece of code in
GStreamer has ever used that feature, nor are there that many
users of this API that actually check whether the format returned
is the original format passed before using the values returned.
Also, it's just annoying-to-use API in its own right.

For all these reasons, make it so that the destination format is
passed directly and can't be changed by the element queried.
2011-07-28 11:23:15 +01:00
Wim Taymans
cf18fa9ce5 Merge branch 'master' into 0.11 2011-07-27 12:50:39 +02:00
Tim-Philipp Müller
317fba25a6 elementfactory: fix g-i annotation for _create() and _make() to allow NULL object names 2011-07-27 10:09:11 +01:00
Wim Taymans
5e330fa456 pad: improve the getcaps function
Refactor calling the GETCAPS function and checks.
Move the filter code in one place.
When using fixed pad caps, get the currently configured caps and then fallback
to the GETCAPS function. We used to simply ignore the GETCAPS function, which
resulted in transform elements returning the template caps instead of doing the
caps transform.
2011-07-26 18:48:20 +02:00
Wim Taymans
cea4b4c7d5 pad: only update caps when changed
Only call the event function with the caps event when the caps changed.
2011-07-26 16:10:42 +02:00
Wim Taymans
61481ac9e5 pad: add allocation query just because 2011-07-26 12:20:04 +02:00
Wim Taymans
d54f3f1385 poll: improve debugging 2011-07-25 15:21:21 +02:00
Wim Taymans
ee235a6b07 miniobject: avoid race in bufferpool release
Avoid playing with the refcount to decide when a buffer has been recycled by the
dispose function. The problem is that we then temporarily can have a buffer with
a refcount > 1 being acquired from the pool, which is not writable. Instead use
a simple boolean return value from the dispose function to inform the called
that the object was recycled or not.
2011-07-25 12:53:10 +02:00
Wim Taymans
43f61f5c40 bufferpool: start with raised control socket
In the inactive state, the control socket should be in the raised state, we will
release it when we start.
2011-07-25 12:16:13 +01:00
Wim Taymans
dd045fd0ed bufferpool: add reset_buffer vmethod
Add a vmethod to reset a buffer to its original state. Add a default
implementation that resets the flags, timestamps and offsets.
Add some more docs.
2011-07-21 18:50:25 +02:00
Wim Taymans
92aa4fede9 Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstbaseparse.c
	libs/gst/base/gstbasesink.c
2011-07-21 16:49:13 +02:00
Raluca Elena Podiuc
43f5624334 docs: removed double negation in event/message seq num description
https://bugzilla.gnome.org/show_bug.cgi?id=654751
2011-07-16 23:53:03 +01:00
Wim Taymans
1dddb1f704 bufferpool: call release_buffer after alloc
After we allocated a new buffer, call the release_buffer vmethod to put the new
buffer in the pool instead of assuming that the pool uses the default
release_method implementation.
2011-07-15 13:27:13 +02:00
Wim Taymans
2f429009a3 bufferpool: add macro to check for flushing 2011-07-15 11:52:22 +02:00
Wim Taymans
cc16dd8498 buffer: improve debug message 2011-07-15 11:51:54 +02:00
Wim Taymans
1a3f48f427 buffer: fix resize function some more
Don't remove memory blocks from the buffer when we clip and resize, instead set
the memory offset and size to 0. This allows us to make the buffer larger again
later.
2011-07-12 14:07:57 +02:00
Wim Taymans
a19baf77e7 buffer: improve size handling
Also handle the case where multiple empty memory blocks are in the buffer.
Add unit test for this.
2011-07-12 13:40:35 +02:00
Wim Taymans
a5ee20db3f buffer: fix _resize some more
Add more debug.
Alow resize to 0 bytes.
Do clipping correctly.
Add more unit tests. Also add a failing test: when we resize to 0 and then
try to resize back to the original size it fails because the memory was
removed.
2011-07-12 12:00:58 +02:00
Wim Taymans
8461249f22 buffer: fix negative offsets some more
Allow for negative offsets when doing memory copy and share.
Add fast path in the _get_sizes() function.
Fix resize for negative offset and expanding the buffer.
Add some unit tests.
2011-07-11 18:00:52 +02:00
Wim Taymans
6b3572feab buffer: fix _resize better 2011-07-11 16:42:56 +02:00
Wim Taymans
abf6293639 buffer: add api to get the current memory offset
Also return the offset in a GstMemory block with the get_sizes() method. This
allows us to figure out how much prefix there is unused.
Change the resize function so that a negative offset can be given. This would
make it possible to resize the buffer so that the prefix becomes available.
Add gst_buffer_get_sizes() to return the offset and maxsize as well as the size.
Also change the buffer resize method so that we can specify a negative offset
to remove prefix bytes.
2011-07-11 16:24:16 +02:00
Mark Nauwelaerts
21e0d113cf buffer: add some memory wrapped buffer allocation helpers 2011-07-11 14:43:19 +02:00
Wim Taymans
8cf3fa5c6d miniobject: cleanup headers 2011-07-11 12:11:35 +02:00
Mark Nauwelaerts
b3bf6cdfd8 pad: avoid inadvertently dropping an event
... particularly a non-sticky serialized event that happens to pass
when an event update is pending.
2011-07-11 11:59:18 +02:00
Tim-Philipp Müller
75c81c2120 buffer: make idx argument to gst_buffer_take_memory() signed
Since -1 is acceptable, it should be signed.
2011-07-08 13:53:35 +01:00
Wim Taymans
b171259612 Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstbasesrc.c
2011-07-07 11:13:19 +02:00
Wim Taymans
806cf03fbc buffer: add memset function 2011-07-07 11:02:09 +02:00
Tim-Philipp Müller
a1f6e02149 buffer: fix guards for gst_buffer_take_memory()
Since idx = -1 makes it default to idx=len, len is also
a valid input idx.
2011-07-06 12:09:28 +01:00
Wim Taymans
3bb21e0203 gst: add class ref/unref 2011-07-05 16:38:06 +02:00
Tim-Philipp Müller
0a6ec83336 gst: make compiler warn about unstable API if GST_USE_UNSTABLE_API is not defined
And define it in our own build.
2011-07-05 09:46:43 +01:00
Tim-Philipp Müller
3dbcb73b11 Remove GstImplementsInterface
It was a bit too clever, and didn't really work as an API,
confusing people to no end. Better implement specific methods
whether an interface is usable/available/ready on the interface
itself, or even add GError arguments, rather than try to have
per-instance interfaces.
2011-06-26 22:59:26 +01:00
Emmanuel Pacaud
156583a69c task: Check for PR_SET_NAME before using
Fixes: #653172.

Signed-off-by: David Schleef <ds@schleef.org>
2011-06-25 13:52:28 -07:00
Wim Taymans
0aa1465bbc query: add method to check for metadata
Add a method to check if a certain metadata is supported in the ALLOCATION
query.
2011-06-23 18:03:22 +02:00
Koop Mast
4fe5dd2b9d segment: cast to right type
See #653137
2011-06-22 16:58:53 +02:00
Wim Taymans
b322a401c7 uri: remove some _full variants 2011-06-22 16:38:04 +02:00
Wim Taymans
6da2a33b7a tags: Remove crazy tag messages
Don't mix messages and pads and tags.
Make the sink post tag messages when a tag event is received.
Since tags are sticky on pads now, they can be retrieved from there
when needed.
2011-06-22 16:16:56 +02:00
Wim Taymans
314a2b961a caps: Hide implementation details
Make the Array of structures private. This should allow us to implement
the array more efficiently or with some preallocated structures when
we want to later.
Add a new method to clean up a static structure so that we can remove some code
that pokes into the private bits of the caps.
2011-06-22 12:28:14 +02:00
Wim Taymans
3884badea6 memory: rename GstMemoryAllocator -> GstAllocator
simplify the name of the allocator object.
2011-06-22 11:42:46 +02:00
Wim Taymans
36c111a844 bufferpool: return empty metadata array
Return a string array with NULL instead of NULL from the default get_metas
function.
2011-06-21 12:32:46 +02:00
Wim Taymans
872e7d52df pad: use event function directly
We will never go in this code path for CAPS events so directly call the event
function.
2011-06-21 12:31:57 +02:00
Wim Taymans
de3b6e733f pad: notify caps after we store the new caps
notify caps after we store the new caps so that the new caps are actually
visible for the app.
2011-06-21 10:29:51 +02:00
Wim Taymans
9177367984 ghostpad: improve debug
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.
2011-06-20 16:53:03 +02:00
Wim Taymans
a22274d7a1 bufferpool: add function to set metadata api
Add a function to retrieve an array of supported metadata apis from the the
bufferpool.
Add functions to configure and query the configured metadata apis in a
bufferpool configuration.
2011-06-20 13:26:06 +02:00
Thiago Santos
00c891a823 gstbuffer: Minor fix to docs
Adds missing parameter to docs of gst_buffer_copy_region
2011-06-19 13:17:06 -03:00
Edward Hervey
a885082a16 gstpad: Remove unused variable do_event_actions
do_event_actions was always used as TRUE
2011-06-18 17:35:41 +02:00
Tim-Philipp Müller
9eee73dcc6 Revert "utils: remove some macros now in glib"
This reverts commit de29ae7b92.

Re-adds GFLOAT_TO_LE, GFLOAT_TO_BE, GDOUBLE_TO_LE, and GDOUBLE_TO_BE.
Turns out these aren't in GLib yet afer all (since we didn't
actually open a bug to get them added..)
2011-06-16 10:55:15 +01:00
Wim Taymans
54fd50bfe1 buffer: add index to _take_memory()
Add an index to gst_buffer_take_memory() so that we can also insert memory at a
certain offset. This is mostly interesting to prepend a header memory block to
the buffer.
2011-06-13 16:31:53 +02:00
Wim Taymans
a59defb90f pad: don't forward scheduling query
The scheduling query should not be forwarded, because elements need to implement
special code to handle different scheduling methods.
2011-06-13 16:30:22 +02:00
Wim Taymans
d837268a77 buffer: add more debug 2011-06-13 12:04:28 +02:00
Wim Taymans
9b9b758688 bufferpool: small indentation fix 2011-06-13 11:51:08 +02:00
Wim Taymans
468dbbbaaf buffer: pass the allocator as const 2011-06-13 11:50:42 +02:00
Wim Taymans
a14623f925 query: add some more checks
Make sure that the alignment is valid.
When we have a 0 size (variable buffer size), we can't have a bufferpool.
2011-06-11 20:45:42 +02:00
Wim Taymans
bb2d7241fa query: set all default values
Fill all query values with good defaults.
2011-06-11 19:54:47 +02:00
Wim Taymans
6ca5d44704 bufferpool: remove postfix parameter
Remove the postfix parameter, it's not used and can be done differently.
2011-06-11 18:52:42 +02:00
Wim Taymans
2b071ea395 bufferpool: use same alignment values as GstMemory
Use the same alignment values for the bufferpool as we use for the GstMemory
API.
2011-06-10 17:50:27 +02:00
Wim Taymans
2d6a59aa83 pad: add _check_reconfigure() method
Add a method to check and clear the RECONFIGURE flag on a pad.
2011-06-10 17:32:20 +02:00
Wim Taymans
eeb07b3f3d buffer: add support for buffer in memory
Fix the code to support allocating the buffer and memory in one memory block.
Add an extra variable to store the memory of the buffer.
This code is disabled still because of complications.
2011-06-10 16:47:29 +02:00
Wim Taymans
3e5c5fb034 memory: expose default alignment
Export the gst_memory_alignment variable so that others can know the default
configured alignment of the system.
2011-06-10 16:46:12 +02:00
Wim Taymans
7c475cc60f memory: fix is_span
Subtract the offset of the parent from is_span.
2011-06-10 16:19:46 +02:00
Wim Taymans
17ff81fc7d memory: respect configured alignment
Move the alignment from GstBuffer to GstMemory.
make sure memory is at least aligned to the configured values.
2011-06-10 13:59:31 +02:00
Wim Taymans
b27ee30a35 buffer: make new _buffer_allocate method
Make a new method to allocate a buffer + memory that takes the allocator and the
alignment as parameters. Provide a macro for the old method but prefer to use
the new method to encourage plugins to negotiate the allocator properly.
2011-06-10 13:49:23 +02:00
Wim Taymans
2d28891528 Merge branch 'master' into 0.11
Conflicts:
	gst/gstelementfactory.c
	gst/gstelementfactory.h
	gst/gstpad.h
	gst/gstpluginfeature.c
	gst/gstpluginfeature.h
2011-06-10 12:09:49 +02:00
Wim Taymans
bbfec45ecc event: add reset_time boolean to flush_stop event
Add a boolean to the flush_stop event to make it possible to implement flushes
that don't reset_time.
Make basesink post async_done with the reset_time property from the flush stop
event.
Fix some unit tests
2011-06-10 11:55:08 +02:00
Javier Jardón
5d25e4a204 Use "const" instead G_CONST_RETURN
G_CONST_RETURN will be deprecated soon.

https://bugzilla.gnome.org/show_bug.cgi?id=652211
2011-06-09 17:54:27 +01:00
Wim Taymans
ab0ab2fbca pad: use new event methods to replace events
Using the new event methods, we can atomically transfer the event from the
pending list to the active list.
2011-06-09 13:37:28 +02:00
Wim Taymans
1b21f2af8f event: make macros for new miniobject methods 2011-06-09 13:36:52 +02:00
Wim Taymans
1b98eb34d7 miniobject: add new methods to manage miniobject pointers
Add a new method to steal the miniobject stored at a location.
Add a new method to store a miniobject in a location and taking ownership
of the miniobject.
2011-06-09 13:35:08 +02:00
Wim Taymans
9d2953288c pad: fix header 2011-06-09 13:34:19 +02:00
Wim Taymans
98fdfa1815 pad: fix spurious include 2011-06-09 12:31:47 +02:00
Wim Taymans
d8212d941c pad: forward events by default
Always forward all events in the default handler. Previously it used to not
forward caps events by default. It makes more sense to forward the caps events,
if the element is interested in the caps, it will implement an event handler to
retrieve the caps and then it can decide to forward or not. If the element has
no event handler, it probably just doesn't care about caps and it probably is
also not going to modify the data in a way that needs a caps change.
2011-06-09 11:49:20 +02:00
Wim Taymans
4a424c379f buffer: fix typo in docs 2011-06-09 11:13:55 +02:00
Wim Taymans
b0a827cc6b message: rename variable
Rename the new_base_time variable to reset_time, which looks better.
2011-06-08 17:25:43 +02:00
Wim Taymans
3798b5fe5b segment: separate the seek and segment flags
Separate the seek flags and segment flags as separate enums because we might
want to have different flags for both.
2011-06-08 16:41:05 +02:00
Wim Taymans
3cb8b33935 message: move the new_base_time flag to async_done
Move the flag to indicate that a new_base_time should be distributed to the
pipeline, from the async_start to the async_done message. This would allow us to
decide when to reset the pipeline time based on other reasons than the
FLUSH_START event.

The main goal eventually is to make the FLUSH events not reset time at all but
reset the time based on the first buffer or segment that prerolls the pipeline
again.
2011-06-08 13:45:19 +02:00
Edward Hervey
d0b30f01b0 gstbuffer: Remove deprecated GST_BUFFER_* macros
data, size, mallocdata and free_func no longer exist.
2011-06-08 13:30:49 +02:00
Wim Taymans
14a0e31e69 pad: remove setcaps function
Remove the setcaps function, elements should use the caps event to be informed
of the format.
2011-06-08 12:58:29 +02:00
Wim Taymans
b84fff07ea memory: Require implementation to implement _share
Require the memory implementations to implement a share operation. This allows
us to remove the fallback share implementation which uses a different allocator
implementation and complicates things too much.
Update design doc a bit.
2011-06-08 12:04:49 +02:00
Wim Taymans
f6dc8eba34 memory: cleanups and improve docs
Make the fallback copy use the same memory allocator as the original object.
Improve some docs.
Require an alloc function when registering an allocator.
Remove gst_memory_allocator_get_default() and merge the feature in
gst_memory_allocator_find()
Fix locks on the hashtable.
Remove defined but not-implemented gst_memory_span() method.
2011-06-08 11:03:50 +02:00
Wim Taymans
cfd3faef5a memory: pass user_data to the alloc function
Pass the user data that was passed to _register to the alloc function of an
allocator.
2011-06-07 17:54:33 +02:00
Wim Taymans
70e799c8fc memory: fix some typos 2011-06-07 17:34:17 +02:00
Wim Taymans
78ea732149 query: add methods to query allocators
Add API to add and query allocator implementations to/from the ALLOCATION query.
2011-06-07 16:35:07 +02:00
Wim Taymans
acb3ee9b2c memory: use allocators to allocate memory
Rename the GstMemoryImpl to GstMemoryAllocator because that's really what it is.
Add an alloc vmethod to the allocator members.
Improve registration of allocators.
Add methods to get and set the default allocator
Always use an allocator to allocate memory, use the default allocator when NULL
is passed.
Add user_data to the allocator Info so that we can pass extra info to the
allocator new method.
2011-06-07 16:19:33 +02:00
Wim Taymans
b5976339e2 event: move some more defines on top 2011-06-07 13:38:35 +02:00
Wim Taymans
44b4312d96 fix some circular includes
typedef some structs before including other files to avoid circular dependencies
in the header files.
2011-06-07 13:25:26 +02:00
Wim Taymans
016e750a41 utils: remove proxy_setcaps
Remove proxy_setcaps, elements should use the caps event and forward caps
themselves.
2011-06-07 10:52:02 +02:00
Wim Taymans
b5351dadcd pad: Improve pad event forward code
Return TRUE when the pad has no parent or when there are no internally linked
pads.
2011-06-07 10:49:34 +02:00
Wim Taymans
9058499eeb pad: Rename and rework the dispatcher function
Rename gst_pad_dispatcher() to gst_pad_forward() and make it more useful by
iterating the internal links of a pad and handling resync properly.
Add a method gst_pad_event_forward() that unconditionally forwards an event to
all internally linked pads.
Update some pad code to use the new forward function.
2011-06-07 10:02:06 +02:00
Wim Taymans
a767bf2bf9 caps: use the caps event
Use the caps event instead of gst_pad_set_caps() and the setcaps function
2011-06-07 09:43:20 +02:00
Edward Hervey
ba8c8bb2c8 gst: Add enum/flags (de)registration in gst_(de)init 2011-06-06 11:21:23 +02:00
Tim-Philipp Müller
4b920eb5d2 docs: update for API changes
Also remove GST_PAD_CHECKGETRANGEFUNC macro
2011-06-05 18:57:56 +01:00
Tim-Philipp Müller
5a8273e527 Merge branch 'master' into 0.11 2011-06-05 15:48:51 +01:00
Tim-Philipp Müller
6d374e54b9 parse: add prototypes for unused functions to avoid compiler warning
The warning is never fatal, because we don't use -Werror for the
parser helper library build, but the warnings are annoying anyway.
2011-06-05 15:27:19 +01:00
Tim-Philipp Müller
bc69efa7cc info: remove GST_XML debug category as well 2011-06-04 15:23:56 +01:00
Tim-Philipp Müller
a4092cd5c4 Remove everything libxml2- and loadsave-related 2011-06-04 15:22:06 +01:00
David Schleef
f3eac7de22 Work around changes in g_atomic API
See #651514 for details.  It's apparently impossible to write code
that avoids both type punning warnings with old g_atomic headers and
assertions in the new.  Thus, macros and a version check.
2011-06-04 00:36:26 -07:00
Edward Hervey
20d1ee87cb gstpad: Small doc fixup 2011-06-03 18:10:24 +02:00
Wim Taymans
07aca4a698 pad: clean up probe flags 2011-06-03 17:24:45 +02:00
Wim Taymans
f851685f92 pad: check flushing in pullrange too 2011-06-03 16:46:26 +02:00
Wim Taymans
8dda6b462d pad: cleanups
Use defines instead of hardcoded values for masks.
2011-06-03 13:56:04 +02:00
Wim Taymans
7b43f02ed3 structure: fix some more 0.11 fixmes
don't allow spaces in structure names and fix unit tests.
2011-06-03 13:25:54 +02:00
Wim Taymans
89121c18e5 bufferpool: make the default behaviour to wait
The most common case is to not specify any flags when doing the allocation. Make
the allocation from a pool with a maximum amount of buffers block by default for
this reason.
2011-06-03 12:40:56 +02:00
Wim Taymans
5426527b70 ghostpad: remove setcaps functions
Remove the setcaps functions, it is now handled with the caps event.
2011-06-02 19:23:47 +02:00
Wim Taymans
539cceab88 buffer: pass the right alignment 2011-06-02 18:28:54 +02:00
Wim Taymans
b05ee3ddb2 memmory: small cleanup 2011-06-02 18:28:17 +02:00
Wim Taymans
c8fc05743d memory: fix alignment calculations
Fix the alignment calculation.
Improve documentation.
2011-06-02 18:13:33 +02:00
Wim Taymans
d2d23074af pool: debug the config 2011-06-02 18:13:10 +02:00
Wim Taymans
de29ae7b92 utils: remove some macros now in glib
We depend on the right glib now
2011-06-02 15:38:43 +02:00
Wim Taymans
04323a0bb9 structure: fix a FIXME 2011-06-02 15:38:29 +02:00
Wim Taymans
589499c07e utils: use g_printerr() as stated in the FIXME 2011-06-02 15:38:04 +02:00
Wim Taymans
0de2f64e12 element: small cleanups 2011-06-02 15:37:41 +02:00
Wim Taymans
9555a7f8d0 element: inline the recursice state lock 2011-06-02 14:09:46 +02:00
Wim Taymans
b5d35162ae pad: inline the recursive stream lock 2011-06-02 13:46:26 +02:00
Wim Taymans
fde7d867bd pad: remove unused fields and methods and signals 2011-06-02 13:35:52 +02:00
Wim Taymans
d863976e59 pad: use new gst_value_fixate instead
Use the new gst_value_fixate() function instead of our own version.
2011-06-02 13:23:53 +02:00
Wim Taymans
e2b6e88d5f value: add function to fixate a value
Add a function to fixate a GValue. This is the same function as is in GstPad.
2011-06-02 13:21:55 +02:00
Wim Taymans
9553ea1c07 caps: remove some custom refcounting methods
Remove some custom made refcounting methods and use the miniobject ones instead.
2011-06-02 13:18:39 +02:00
Wim Taymans
2b9c34cd70 pad: optimize linking
Optimize linking by only releasing the pad locks when there are link functions
installed on the pads.
Add some G_LIKELY here and there.
Move error paths out of the main code flow.
2011-06-02 12:40:05 +02:00
Wim Taymans
50a8e0431c pad: remove deprecated have-data signal 2011-06-02 12:39:34 +02:00
Wim Taymans
541258f0e9 pad: add idle probe for pull method too 2011-06-02 11:21:09 +02:00
Wim Taymans
e2eae110a9 pad: more cleanups
Use miniobject unref when we can
Reuse existing data type identifier instead of an extra boolean.
2011-06-02 11:01:31 +02:00
Wim Taymans
272b3263aa Merge branch 'master' into 0.11
Conflicts:
	plugins/elements/gstoutputselector.c
2011-06-01 19:47:10 +02:00
Wim Taymans
3f51563319 pad: further improve probes and pad blocking
Keep track of installed number of probes to shortcut emission.
Allow NULL callbacks, this is useful for blocking probes.
Improve probe selection based on the mask, an empty mask for the data or the
scheduling flags equals that all probes match.
Add some more debug info.
Don't check the flushing flag in the probe callback handler, this needs to be
done before calling the handler.
Fix blocking probes.
Fix unit tests
2011-06-01 19:39:20 +02:00
Wim Taymans
8abc457a3b pad: implement pad block with probes 2011-06-01 19:39:16 +02:00
Wim Taymans
a5bbf7f369 utils: remove _full variants of probes
Remove the _full variants and add the destroy notify to the regular methods.
2011-06-01 19:39:11 +02:00
Edward Hervey
c72321b260 gstsegment: Remove dead assignment
base is unconditionally written a couple of lines below
2011-05-31 18:30:50 +02:00
Edward Hervey
ceb86a586e gst: Remove obvious dead assignments 2011-05-31 18:30:30 +02:00
Wim Taymans
fce85f75ff pad: Rework pad blocking, another attempt
Make the PadBlock callback take a GstBlockType parameter to handle the different
kind of stages in the pad block. This provides for more backwards compatibility
in the pad block API.
Separate blocking and unblocking into different methods, only blocking can do a
callback, unblock is always immediately. Also removed synchronous blocking, it
can always be implemented with a callback.
2011-05-30 18:29:06 +02:00
Wim Taymans
565f492af2 Revert "pad: rework pad blocking, first part"
This reverts commit 415da89f3c.

Conflicts:

	gst/gstpad.c
2011-05-30 13:40:04 +02:00
Wim Taymans
9f2424123f pad: improve debugging 2011-05-30 12:27:52 +02:00
Sebastian Dröge
0a80b57d74 value: Consider "1" and "{1}" as equal in gst_value_compare()
Previously this was only done in the is_subset() check but
having it only there brings us into definition-hell where
"1" and "{1}" are subset of each other but not equal.
2011-05-30 11:33:57 +02:00
Sebastian Dröge
58302cedfa Merge branch 'master' into 0.11 2011-05-30 07:41:13 +02:00
Sebastian Dröge
f304196148 caps: Fix subset check for equivalent lists and scalar values
For example "{ 1 }" and "1" are not strictly equal but
both are a subset of each other. Also add a unit test
for this.
2011-05-30 07:38:40 +02:00
Stefan Kost
6c2024f881 docs: xrefs more api around GstStateChange and GstStateChangeReturn. 2011-05-28 10:24:37 +03:00
Stefan Kost
dd6a5d81c4 docs: xref the async messages to GstStateChange 2011-05-28 09:52:55 +03:00
Wim Taymans
415da89f3c pad: rework pad blocking, first part
Make pad block call the callback as soon as the pad is not in use. This makes it
possible to make sure that when the callback is called, no activity is happening
on the pad and that no activity will ever happen until the pad is unblocked
again. This makes pad blocking work when there is no dataflow or after EOS and
greatly helps dynamic pipelines.
Move the probe handling right where we wait on the pad block. The two are
related but not the same and the probe can eventually influence the pad
blocking as we'll se later.
Fix up some broken unit tests or tests that fail with the new behaviour.
2011-05-27 17:37:20 +02:00
Sebastian Dröge
30a7fd7b4d Merge branch 'master' into 0.11 2011-05-27 13:58:26 +02:00
Sebastian Dröge
57df188757 caps: Add gst_caps_is_subset_structure()
API: gst_caps_is_subset_structure()

This allows to check if a structure is a subset of given
caps without allocating a new caps instance for it.
2011-05-27 13:55:31 +02:00
Sebastian Dröge
da58834884 structure: Add gst_structure_is_subset()
API: gst_structure_is_subset()
2011-05-27 13:47:11 +02:00
Sebastian Dröge
d98e9acb0f caps: Optimize gst_caps_is_subset()
..and as a result gst_caps_is_equal() and others.

This now only checks if for every subset structure there is
a superset structure in the superset caps. Previously we were
subtracting one from another, creating completely new caps
and then even simplified them.

The new implemention now is about 1.27 times faster and doesn't
break the -base unit tests are anything anymore.
2011-05-27 13:38:51 +02:00
Sebastian Dröge
0cf2dfd0ba caps: Fix subset check in gst_caps_merge()
Caps A are a subset of caps B even if caps B doesn't
have all fields of caps A.

Also add a unit test for this.
2011-05-27 13:37:06 +02:00
Sebastian Dröge
d706ca0859 Revert "caps: Optimize gst_caps_is_subset()"
This reverts commit 32248a9b85.

This breaks some tests in -base and the failures should
be fixed first.
2011-05-27 12:56:43 +02:00
Sebastian Dröge
32248a9b85 caps: Optimize gst_caps_is_subset()
..and as a result gst_caps_is_equal() and others.

This now only checks if for every subset structure there is
a superset structure in the superset caps. Previously we were
subtracting one from another, creating completely new caps
and then even simplified them.

The new implemention now is about 1.27 times faster.
2011-05-27 12:45:59 +02:00
Sebastian Dröge
26ca7546a7 pad: Drop sticky events pushed on flushing srcpads instead of activating them immediately 2011-05-27 11:45:16 +02:00
Wim Taymans
86c8b721b2 pad: refactor _push_event
Rework _push_event() a little so that it drops events on blocking pads.
Make sure that events are forwarded when we unblock.
Add counter on the pad to keep track of busy pads.
2011-05-26 19:45:14 +02:00
Wim Taymans
dd9fb5ebfd pad: refactor pre and post chain code 2011-05-26 18:21:09 +02:00
Wim Taymans
af42e44af5 pad: keep counter for active pads
Keep a counter to mark the amount of threads currently pushing data on the pad.
2011-05-26 17:50:15 +02:00
Wim Taymans
40228b4aa5 pad: refactor pre push code
Refactor the code that is executed as the first step of a push operation where
we check the probes and blocking and resolve the peer.
2011-05-26 17:39:17 +02:00
Wim Taymans
118e325a03 pad: remove pad cache
Remove the pad cache as this is going to be reworked for new pad blocking and
probes.
2011-05-26 17:08:03 +02:00
Wim Taymans
aaba029298 pad: simplify handling of buffer lists
Implement a default buffer-list function in case the element doesn't implement
one.
Also pass buffer-lists to the have-data signal, this allows us to remove some
backward compatibility code.
2011-05-26 16:48:14 +02:00