Wim Taymans [Mon, 28 Nov 2011 14:35:21 +0000 (15:35 +0100)]
event: add sticky custom quark
Wim Taymans [Mon, 28 Nov 2011 13:24:16 +0000 (14:24 +0100)]
caps: _CAPS_FLAGS_ -> CAPS_FLAG_
Wim Taymans [Mon, 28 Nov 2011 12:54:43 +0000 (13:54 +0100)]
pad: Handle sticky event errors
Use GstFlowReturn to internally pass events between pads.
When we sticky events cause an error, translate this error into a GstFlowReturn.
Caps events will, for example, generate a NOT_NEGOTIATED return when the event
function returns an error.
This allows us then to refuse sending buffers if one of the sticky events is
refused and generate a correct error return value.
Wim Taymans [Mon, 28 Nov 2011 12:52:00 +0000 (13:52 +0100)]
tests: don't return FALSE from events
Returning FALSE from the event handler shuts down the sender.
Wim Taymans [Mon, 28 Nov 2011 12:51:11 +0000 (13:51 +0100)]
test: fix refcount error
Edward Hervey [Mon, 28 Nov 2011 10:15:27 +0000 (11:15 +0100)]
gstmeta: Some more docs
Wim Taymans [Mon, 28 Nov 2011 09:55:28 +0000 (10:55 +0100)]
event: add custom downstream sticky event
Tim-Philipp Müller [Mon, 28 Nov 2011 01:12:48 +0000 (01:12 +0000)]
queue2: fix up comment after merge from 0.10
Tim-Philipp Müller [Mon, 28 Nov 2011 01:11:47 +0000 (01:11 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Tim-Philipp Müller [Mon, 28 Nov 2011 01:10:20 +0000 (01:10 +0000)]
queue2: fix refactoring of draining-on-eos, munge flow return to FLOW_OK
Tim-Philipp Müller [Mon, 28 Nov 2011 01:00:28 +0000 (01:00 +0000)]
queue2: fix up new bufferlist code for 0.11
Tim-Philipp Müller [Mon, 28 Nov 2011 00:40:55 +0000 (00:40 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
plugins/elements/gstqueue2.c
Tim-Philipp Müller [Thu, 3 Nov 2011 10:34:49 +0000 (10:34 +0000)]
queue2: add bufferlist support
We want to maintain buffer lists if possible.
Tim-Philipp Müller [Thu, 3 Nov 2011 13:02:36 +0000 (13:02 +0000)]
queue2: split out draining of queue on FLOW_UNEXPECTED into separate function
Tim-Philipp Müller [Thu, 3 Nov 2011 08:55:20 +0000 (08:55 +0000)]
queue2: pass item type enum to _enqueue instead of simple isbuffer boolean
Avoids some unnecessary GST_IS_EVENT()
Matej Knopp [Sun, 27 Nov 2011 19:32:14 +0000 (20:32 +0100)]
caps: fix compilation warning
GST_STATIC_CAPS is missing initializer for GstMiniObject's n_weak_refs and
weak_refs resulting in compilation warning (llvm-gcc -Wall)
https://bugzilla.gnome.org/show_bug.cgi?id=664927
Tim-Philipp Müller [Sun, 27 Nov 2011 22:26:12 +0000 (22:26 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Stefan Sauer [Sun, 27 Nov 2011 19:36:31 +0000 (20:36 +0100)]
warnings: avoid set-but-unused warnings with load-save disabled
Matej Knopp [Sat, 26 Nov 2011 16:34:12 +0000 (17:34 +0100)]
baseparse: fix broken default caps query
https://bugzilla.gnome.org/show_bug.cgi?id=664880
Tim-Philipp Müller [Sat, 26 Nov 2011 19:51:37 +0000 (19:51 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Tim-Philipp Müller [Sat, 26 Nov 2011 19:45:48 +0000 (19:45 +0000)]
uri: fix wrong G_GNUC_MALLOC
_get_protocols() points to const memory in 0.10
despite the non-const return value.
Tim-Philipp Müller [Sat, 26 Nov 2011 19:44:23 +0000 (19:44 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
gst/gstbuffer.h
gst/gstbufferlist.h
gst/gstcaps.h
gst/gstdatetime.h
gst/gstelementfactory.h
gst/gstevent.h
gst/gstghostpad.h
gst/gstindexfactory.h
gst/gstiterator.h
gst/gstmessage.h
gst/gstminiobject.h
gst/gstpipeline.h
gst/gstquery.h
gst/gstsegment.h
gst/gststructure.h
gst/gsttaglist.h
gst/gsturi.h
gst/gstvalue.h
libs/gst/base/gstbitreader.h
libs/gst/base/gstbytereader.h
libs/gst/base/gstbytewriter.h
Note: can't use G_GNUC_MALLOC with GstCaps return
values in 0.11 because of the EMPTY+ANY singletons.
Tim-Philipp Müller [Sat, 26 Nov 2011 18:58:38 +0000 (18:58 +0000)]
libs: sprinkle some G_GNUC_MALLOC
Maybe gcc can do something clever with that, or at least
warn us if we don't save the return value somewhere.
Tim-Philipp Müller [Sat, 26 Nov 2011 18:57:44 +0000 (18:57 +0000)]
gst: sprinkle some G_GNUC_MALLOC
Maybe gcc can do something clever with that, or at least
warn us if we don't save the return value somewhere.
Tim-Philipp Müller [Fri, 25 Nov 2011 23:54:57 +0000 (23:54 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Stefan Sauer [Fri, 25 Nov 2011 22:15:23 +0000 (23:15 +0100)]
docs: update porting docs.
Tim-Philipp Müller [Wed, 16 Nov 2011 01:04:45 +0000 (01:04 +0000)]
buffer: add gst_buffer_{set,get}_qdata()
Allows people/us to attach arbitrary metadata to buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=664720
API: gst_buffer_set_qdata()
API: get_buffer_get_qdata()
Wim Taymans [Fri, 25 Nov 2011 06:11:24 +0000 (07:11 +0100)]
pad: fix blocking probe emission
If we are dealing with a blocking probe, only then check if one the
blocking flags of the hook matches.
Add some more debug.
Make the pad unit test less racy.
Matej Knopp [Thu, 24 Nov 2011 16:47:09 +0000 (17:47 +0100)]
Add test for PAD_PROBE_TYPE_BLOCK and PAD_PROBE_TYPE_BLOCKING
Wim Taymans [Fri, 25 Nov 2011 04:54:09 +0000 (05:54 +0100)]
utils: fix debug of query result
René Stadler [Thu, 24 Nov 2011 21:52:19 +0000 (22:52 +0100)]
query: fix typo in doc
Causes a warning from the introspection scanner.
René Stadler [Thu, 24 Nov 2011 20:36:12 +0000 (21:36 +0100)]
check: drop caps argument from gst_check_setup_{src,sink}_pad
Calling set_caps at that point is not useful in 0.10 (FIXME comment!), and in
0.11 it is totally pointless: the caps event doesn't stick to a flushing pad.
René Stadler [Thu, 24 Nov 2011 13:07:14 +0000 (14:07 +0100)]
defs: update for byte_writer_put_buffer
Sebastian Dröge [Thu, 24 Nov 2011 10:23:07 +0000 (11:23 +0100)]
Merge branch 'master' into 0.11
Conflicts:
gst/gstpad.c
libs/gst/base/gstbaseparse.c
Sebastian Dröge [Thu, 24 Nov 2011 10:15:29 +0000 (11:15 +0100)]
pad: Remove g_warning() if pad accepted caps that are not a subset of the pad caps
This check is correct but unfortunately it's impossible to implement
in a threadsafe way because the caps could have changed in the meantime.
Fixes bug #659606.
Vincent Penquerc'h [Mon, 3 Oct 2011 11:34:20 +0000 (12:34 +0100)]
multiqueue: check filled state of queues even if another one is empty
This will avoid a case where overrun is never signalled if some
stream never produces any data, causing playbin2 to not end preroll.
https://bugzilla.gnome.org/show_bug.cgi?id=660778
Edward Hervey [Thu, 24 Nov 2011 08:31:14 +0000 (09:31 +0100)]
tests: Check for dataflow with incompatible caps
This test currently fails, but is there to ensure we fix this issue
and keep it fixed, since it completely breaks delayed negotiation
use-cases.
This behaviour started breaking since
dd65aae9a177f7b11dcef0f690a78d698f667cd4
Edward Hervey [Thu, 24 Nov 2011 08:31:02 +0000 (09:31 +0100)]
tests: Add comments to gstpad tests
Edward Hervey [Thu, 24 Nov 2011 08:30:14 +0000 (09:30 +0100)]
tests: Remove "#if 0" block for behaviour that now works
Edward Hervey [Thu, 24 Nov 2011 08:28:32 +0000 (09:28 +0100)]
tests: Remove commented block
This behaviour is actually tested in test_push_unlinked
Tim-Philipp Müller [Thu, 24 Nov 2011 01:06:52 +0000 (01:06 +0000)]
tools: make gst-inspect print a nasty debug message for non-grata property type
Try to eradicate properties of long/ulong/char/uchar type.
Wim Taymans [Wed, 23 Nov 2011 16:50:17 +0000 (17:50 +0100)]
event: add STICKY_MULTY events
Add a new event flag for sticky events so that multiple events of that type can
be stored on a pad at the same time. Change the _get_sticky_event() function to
loop over the multiple events of a type.
Change the foreach function to make it possible to removed and modify the sticky
events on a pad.
Use an variable size array now to store the events. This could later be
optimized some more.
Wim Taymans [Wed, 23 Nov 2011 16:39:43 +0000 (17:39 +0100)]
bus: handle NULL message src in debug
Wim Taymans [Wed, 23 Nov 2011 16:38:24 +0000 (17:38 +0100)]
bufferlist: avoid reading past the array
When the foreach function told us to remove the buffer from the list, decrease
the length of the array or else we might read past the last item in the array.
Sebastian Dröge [Wed, 23 Nov 2011 12:42:56 +0000 (13:42 +0100)]
baseparse: Return template caps instead of other side's peer caps if get_sink_caps vfunc is not implemented
Using gst_pad_proxy_get_caps() breaks backwards compatibility with old
parsers because it will propagate the other side's fields like "parsed"
and "framed" and also breaks parser/converters.
Fixes bug #664221.
René Stadler [Wed, 23 Nov 2011 10:03:19 +0000 (11:03 +0100)]
bytewriter: add method to write out a buffer
In 0.10, this can be done with a one-liner by using GST_BUFFER_DATA/SIZE with
put_data. A 0.11 user has to resort to gst_buffer_map, which is less convenient
and might require a memcpy internally.
API: gst_byte_writer_put_buffer()
Wim Taymans [Wed, 23 Nov 2011 07:17:36 +0000 (08:17 +0100)]
pad: take peerpad correctly
Don't take the peerpad too early, it might change because of the
probes.
Wim Taymans [Tue, 22 Nov 2011 17:32:51 +0000 (18:32 +0100)]
pad: rework sticky events
Rewrite sticky events, trying to make it a bit more simple.
When sticky events are pushed on a srcpad, store them in the sticky event
array and mark the event with received = FALSE.
When the sticky event is successfully sent to the peer pad, make
received = TRUE.
Keep a PENDING_EVENTS pad flag that is set when one of the events is in
the received = FALSE state for some reason.
when activating a sinkpad, mark all events received = FALSE on the peer
srcpad.
When pushing a buffer, check the PENDING_EVENTS flag and if it is set, push all
events to the peer pad first.
Wim Taymans [Tue, 22 Nov 2011 17:32:23 +0000 (18:32 +0100)]
baseparse: also let caps events go through
Wim Taymans [Tue, 22 Nov 2011 15:43:34 +0000 (16:43 +0100)]
gst: add new flags
Matej Knopp [Mon, 21 Nov 2011 17:56:19 +0000 (18:56 +0100)]
adapter: fix return type of _map() to gconstpointer
Fixes compiler warnings on OSX:
gstadapter.h:82: warning: type qualifiers ignored on function return type
gstadapter.c:412: warning: type qualifiers ignored on function return type
const gpointer is not the same as gconstpointer or const void *.
https://bugzilla.gnome.org/show_bug.cgi?id=664491
Wim Taymans [Tue, 22 Nov 2011 11:46:39 +0000 (12:46 +0100)]
defs: update defs files
Wim Taymans [Tue, 22 Nov 2011 11:45:41 +0000 (12:45 +0100)]
padd return value from _mini_object_replace()
Matej Knopp [Mon, 21 Nov 2011 17:56:19 +0000 (18:56 +0100)]
Fix printf format compiler warnings on OSX/64bit
https://bugzilla.gnome.org/show_bug.cgi?id=664491
Wim Taymans [Mon, 21 Nov 2011 16:46:45 +0000 (17:46 +0100)]
tests: improve pad tests
Wim Taymans [Mon, 21 Nov 2011 16:43:51 +0000 (17:43 +0100)]
pad: fix locking order error
Wim Taymans [Mon, 21 Nov 2011 16:43:04 +0000 (17:43 +0100)]
ghostpad: fix print format
Wim Taymans [Mon, 21 Nov 2011 14:47:01 +0000 (15:47 +0100)]
pad: Add destroy notify to pad functions
Add _full variants of the pad function setters that take a destroy notify.
Make some macros that make the old method name pass NULL to this new
function.
Wim Taymans [Mon, 21 Nov 2011 12:29:05 +0000 (13:29 +0100)]
pad: Merge pad mode activation functions
Add the pad mode to the activate function so that we can reuse the same function
for all activation modes. This makes the core logic smaller and allows for some
elements to make their activation code easier. It would allow us to add more
scheduling modes later without having to add more activate functions.
Wim Taymans [Fri, 18 Nov 2011 17:08:21 +0000 (18:08 +0100)]
docs: update design doc
also fix default alignment value (0 == no-alignment)
Wim Taymans [Fri, 18 Nov 2011 16:27:16 +0000 (17:27 +0100)]
query: improve scheduling query
Turns some boolean arguments in the scheduling query to flags, which are easier
to extend and makes the code easier to read.
Make extra methods for configuring and querying the supported scheduling modes.
This should make it easier to add new modes later.
Wim Taymans [Fri, 18 Nov 2011 13:08:45 +0000 (14:08 +0100)]
query: move flags closer to buffering query
Wim Taymans [Fri, 18 Nov 2011 12:46:46 +0000 (13:46 +0100)]
pad: add parent to activate functions
Wim Taymans [Fri, 18 Nov 2011 11:35:46 +0000 (12:35 +0100)]
pad: fix scheduling mode enums
GstPadActivateMode -> GstPadMode
GST_PAD_ACTIVATE_* -> GST_PAD_MODE_*
Wim Taymans [Thu, 17 Nov 2011 15:14:34 +0000 (16:14 +0100)]
typefind: fix for new getrange method signature
gst_type_find_helper_get_range_ext -> gst_type_find_helper_get_range
Wim Taymans [Thu, 17 Nov 2011 11:40:45 +0000 (12:40 +0100)]
pad: add parent to other functions
Add parent to chain, chain_list, getrange and event functions.
Stefan Sauer [Thu, 17 Nov 2011 07:21:05 +0000 (08:21 +0100)]
collectpads: move fields out of reserved and restore padding
Do the 0.11 ABI changes. Add extra fields for destroy_notify and drop the qdata
hack. Rename _add_pad_full to _add_pad and remove the old _add_pad.
Wim Taymans [Wed, 16 Nov 2011 16:49:46 +0000 (17:49 +0100)]
add parent to internal links
Wim Taymans [Wed, 16 Nov 2011 16:22:56 +0000 (17:22 +0100)]
pad: add parent to the query function
Wim Taymans [Wed, 16 Nov 2011 11:36:51 +0000 (12:36 +0100)]
GstPadFlags: rename flags GST_PAD_* -> GST_PAD_FLAG_*
Wim Taymans [Wed, 16 Nov 2011 11:10:55 +0000 (12:10 +0100)]
plugins: remove obsolete parent checks
Wim Taymans [Wed, 16 Nov 2011 11:08:22 +0000 (12:08 +0100)]
pad: keep the parent alive when requested
Add a new pad flag NEED_PARENT that ensures that the parent of a pad is
reffed and not NULL when the event, query and internal links functions
are called.
When a pad is added to an element automatically make sure the NEED_PARENT flag
is enabled.
Wim Taymans [Wed, 16 Nov 2011 09:29:47 +0000 (10:29 +0100)]
don't require parent element to proxy
Wim Taymans [Wed, 16 Nov 2011 09:16:55 +0000 (10:16 +0100)]
update porting doc
Wim Taymans [Tue, 15 Nov 2011 17:16:24 +0000 (18:16 +0100)]
pad: move query convenience functions together
Move the caps convenience functions to the other query functions.
Wim Taymans [Tue, 15 Nov 2011 16:50:34 +0000 (17:50 +0100)]
_query_peer_*() -> _peer_query_*()
Wim Taymans [Tue, 15 Nov 2011 16:40:19 +0000 (17:40 +0100)]
_accept_caps() -> _query_accept_caps()
Wim Taymans [Tue, 15 Nov 2011 16:11:46 +0000 (17:11 +0100)]
_peer_get_caps() -> peer_query_caps()
Wim Taymans [Tue, 15 Nov 2011 15:46:37 +0000 (16:46 +0100)]
pad: _get_caps() -> _query_caps()
Wim Taymans [Tue, 15 Nov 2011 15:16:53 +0000 (16:16 +0100)]
utils: fix docs
Wim Taymans [Tue, 15 Nov 2011 15:13:59 +0000 (16:13 +0100)]
utils: fix the proxy functions
fix the proxy functions for query_accept_caps and query_caps to use the pad
forward helper functions which correctly forwards on the internally linked pads.
Wim Taymans [Tue, 15 Nov 2011 15:13:28 +0000 (16:13 +0100)]
pad: improve some flag macros
Wim Taymans [Tue, 15 Nov 2011 15:13:15 +0000 (16:13 +0100)]
pad: fix debug line
Wim Taymans [Tue, 15 Nov 2011 10:20:48 +0000 (11:20 +0100)]
pad: remove getcaps and use caps query
Remove the getcaps function on the pad and use the CAPS query for
the same effect.
Add PROXY_CAPS to the pad flags. This instructs the default caps event and query
handlers to pass on the CAPS related queries and events. This simplifies a lot
of elements that passtrough caps negotiation.
Make two utility functions to proxy caps queries and aggregate the result. Needs
to use the pad forward function instead later.
Make the _query_peer_ utility functions use the gst_pad_peer_query() function to
make sure the probes are emited properly.
Wim Taymans [Mon, 14 Nov 2011 10:26:17 +0000 (11:26 +0100)]
query: add caps query
Tim-Philipp Müller [Mon, 14 Nov 2011 09:57:32 +0000 (09:57 +0000)]
query: remove GST_QUERY_LAST
Wim Taymans [Mon, 14 Nov 2011 09:27:01 +0000 (10:27 +0100)]
fix docs
Stefan Sauer [Sat, 12 Nov 2011 08:29:30 +0000 (10:29 +0200)]
controller: remove functions to add/remove controlled properties
Make that implizit with attaching/detaching controlsources. This is a lot easier
and has less invalid state (controlled property without control source).
Tim-Philipp Müller [Sun, 13 Nov 2011 23:25:23 +0000 (23:25 +0000)]
plugins, tools: update for get_protocols() return value change
Tim-Philipp Müller [Sun, 13 Nov 2011 23:14:15 +0000 (23:14 +0000)]
uri: clean up header files
Tabs to spaces.
Tim-Philipp Müller [Sun, 13 Nov 2011 23:07:58 +0000 (23:07 +0000)]
urihandler: fix return type of get_protocols()
Tim-Philipp Müller [Sun, 13 Nov 2011 20:56:02 +0000 (20:56 +0000)]
urihandler: fix return type of _get_uri_type()
Return a GstURIType and not a plain guint.
Tim-Philipp Müller [Sun, 13 Nov 2011 17:45:19 +0000 (17:45 +0000)]
tests: update unit tests for URI handler API changes
Tim-Philipp Müller [Sun, 13 Nov 2011 17:44:57 +0000 (17:44 +0000)]
elements: update fd + file sources and sinks for GstUriHandler changes
Tim-Philipp Müller [Sun, 13 Nov 2011 17:44:06 +0000 (17:44 +0000)]
urihandler: pass GError argument to gst_uri_handler_set_uri()
Also let gst_uri_handler_set_uri check already if the protocol
is supported, so that not every uri handler has to do that
itself.
Tim-Philipp Müller [Sun, 13 Nov 2011 15:51:44 +0000 (15:51 +0000)]
urihandler: make _get_uri() return a copy
For thread-safety.
Tim-Philipp Müller [Sun, 13 Nov 2011 15:37:40 +0000 (15:37 +0000)]
urihandler: remove "new-uri" signal
No one but filesrc used that API. Should probably be replaced by
requiring an "uri" property instead, and then objects can do a
notify on that. Also removed interface structure padding, it's
not needed.
Tim-Philipp Müller [Sun, 13 Nov 2011 13:23:09 +0000 (13:23 +0000)]
Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
tools/gst-inspect.c
Tim-Philipp Müller [Sat, 12 Nov 2011 16:42:14 +0000 (16:42 +0000)]
gst-inspect: print current value as default value
Instead of printing separate 'Current' and 'Default' values
(the former obtained via g_object_get() and the latter from
the property GParamSpec), simply print the Current value as
the Default value. This is the right thing to do for almost
all elements and avoids confusion if a subclass of a base
class chooses a different default than the base class.
Tim-Philipp Müller [Sat, 12 Nov 2011 14:55:07 +0000 (14:55 +0000)]
gst, controller: replace g_list_prepend + reverse with GQueue