Sebastian Dröge
0dc232e114
multiqueue: only block serialized query when it's safe
...
We must be certain that we don't cause a deadlock when blocking the serialized
queries. One such deadlock can happen when we are buffering and downstream is
blocked in preroll and a serialized query arrives. Downstream will not unblock
(and allow our query to execute) until we complete buffering and buffering will
not complete until we can answer the query..
https://bugzilla.gnome.org/show_bug.cgi?id=702840
2013-07-16 11:36:50 +02:00
Sebastian Dröge
ab6a1085ee
(multi)queue: Don't access query items during flushing
2013-05-27 16:38:18 +02:00
Sebastian Dröge
e472d9d261
multiqueue: Don't do serialized queries when we're flushing
...
Just immediately fail the query, otherwise we would wait forever
for the query to be answered.
2013-05-27 16:22:00 +02:00
Sebastian Dröge
b6fac17502
queue/queue2/multiqueue: When flushing, make sure to not lose any sticky events
...
https://bugzilla.gnome.org/show_bug.cgi?id=688824
2013-05-27 13:01:43 +02:00
Sebastian Dröge
a79d3a0220
multiqueue: Initialize all GstMultiQueueItem fields in both code paths
2013-05-24 18:42:55 +02:00
Sebastian Dröge
1c6341e6a4
multiqueue: Don't access the query after signalling the waiting thread
...
It might've free'd the query already.
2013-05-24 18:38:40 +02:00
Sebastian Dröge
3b44a44a01
multiqueue: Make sure to always signal any possible pending serialized queries
...
And don't unref them when flushing the queue, they're owned by the caller!
https://bugzilla.gnome.org/show_bug.cgi?id=700342
2013-05-24 18:30:44 +02:00
Wim Taymans
fa371dad6d
multiqueue: ignore empty not-linked queues
...
We need to ignore the not-linked queues in the underrun and overrun callbacks
because they are expected to be empty.
2013-04-05 10:15:37 +02:00
Wim Taymans
bda406c42f
multiqueue: start pushing again on RECONFIGURE
...
When we got NOT_LINKED before and we receive a RECONFIGURE event, start pushing
again on the source pad.
See https://bugzilla.gnome.org/show_bug.cgi?id=676304
2013-04-04 19:16:23 +02:00
Branko Subasic
17bff49262
multiqueue: correct overrun handling
...
The control of wheteher a SingleQueue is full is not correct.
Rewrote single_queue_overrun_cb() so it checks the correct variables
when checking if the queue has reached the hard limits, and to
increase the max buffer limit once for each call.
https://bugzilla.gnome.org/show_bug.cgi?id=690557
2012-12-20 15:34:01 +01:00
Tim-Philipp Müller
666c8c11c6
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:44:48 +00:00
Jan Schmidt
698324d48b
multiqueue: Add EOS status to debug output about filled/unfilled
2012-10-30 10:04:14 +11:00
Sebastian Dröge
09982c3c13
dataqueue/queuearray: Make public API again
...
These are actually used outside of coreelements nowadays.
Also hide lots of internals and add padding and documentation.
2012-10-25 14:03:01 +02:00
Josep Torra Valles
111fcc6e31
Make intel compiler happier
...
https://bugzilla.gnome.org/show_bug.cgi?id=552657
2012-09-25 00:56:26 +01:00
Edward Hervey
d3ffa82639
Remove 0.10-related documentation and "Since" markers
2012-07-10 12:03:27 +02:00
Wim Taymans
76e8b2ecda
task: add GDestroyNotify to _new
...
Add a GDestroyNotify to the user_data we pass to gst_task_new()
Change gst_pad_start_task() to also take the notify
2012-06-20 10:31:49 +02:00
Matej Knopp
c4b71c2574
multiqueue: gst_single_queue_flush unlocks the queue twice
...
https://bugzilla.gnome.org/show_bug.cgi?id=674044
2012-04-13 23:57:35 +01:00
Sebastian Dröge
1a61f3ec19
Merge remote-tracking branch 'origin/0.10'
2012-04-09 16:42:30 +02:00
Sebastian Dröge
829eafad0e
multiqueue: Don't use buffer after pushing it downstream
2012-04-09 16:40:47 +02:00
Tim-Philipp Müller
a63829b4ff
plugins: use new gst_element_class_set_static_metadata()
2012-04-09 13:05:07 +01:00
Sebastian Dröge
4b6c3c7fea
Merge remote-tracking branch 'origin/0.10'
...
Conflicts:
plugins/elements/gstmultiqueue.c
2012-03-29 14:54:53 +02:00
Sebastian Dröge
9441e711df
multiqueue: Wake up all not-linked streams when a stream switches from linked to not-linked
...
We reset all the waiting streams, let them push another buffer to
see if they're now active again. This allows faster switching
between streams and prevents deadlocks if downstream does any
waiting too.
Also improve locking a bit, srcresult must be protected by the
multiqueue lock too because it's used/set from random threads.
2012-03-29 14:49:53 +02:00
Sebastian Dröge
17e691421f
multiqueue: Recompute high-time too when flushing, not only high-id
2012-03-29 14:47:57 +02:00
Wim Taymans
d540a5fc68
multiqueue: handle serialized queries
2012-03-19 11:45:27 +01:00
Wim Taymans
9e2ef19dc2
queues: warn when receiving a serialized event
...
.. until we implement it.
2012-03-14 16:00:48 +01:00
Wim Taymans
7ab1d62c24
GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING
2012-02-08 16:18:04 +01:00
Tim-Philipp Müller
13d91d1f6c
Use recent GLib API unconditionally now that we depend on the latest GLib
2012-01-22 01:25:22 +00:00
Wim Taymans
252327f87a
Update for new gthread API
2012-01-19 09:27:04 +01:00
Tim-Philipp Müller
a1daf846f3
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst/gstobject.h
libs/gst/check/gstcheck.h
libs/gst/controller/gstcontroller.c
plugins/elements/gstidentity.c
tools/gst-xmlinspect.c
2011-12-04 15:38:09 +00:00
Tim-Philipp Müller
2666450864
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here in 0.10.
2011-12-04 14:38:26 +00:00
Sebastian Dröge
1fa356a23c
Merge branch 'master' into 0.11
...
Conflicts:
gst/gstpad.c
libs/gst/base/gstbaseparse.c
2011-11-24 11:23:07 +01:00
Vincent Penquerc'h
611ac6ea85
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
2011-11-24 10:38:34 +01:00
Wim Taymans
2f1ed65339
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.
2011-11-21 13:29:05 +01:00
Wim Taymans
39a5e26ea9
pad: add parent to activate functions
2011-11-18 13:54:29 +01:00
Wim Taymans
612b1fbb14
pad: add parent to other functions
...
Add parent to chain, chain_list, getrange and event functions.
2011-11-17 12:40:45 +01:00
Wim Taymans
361a7ae44d
add parent to internal links
2011-11-16 17:49:46 +01:00
Wim Taymans
09a8294d36
pad: add parent to the query function
2011-11-16 17:22:56 +01:00
Wim Taymans
54e1174060
GstPadFlags: rename flags GST_PAD_* -> GST_PAD_FLAG_*
2011-11-16 12:36:51 +01:00
Wim Taymans
06d4828df3
plugins: remove obsolete parent checks
2011-11-16 12:11:12 +01:00
Wim Taymans
b5c3e254b1
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.
2011-11-15 11:20:48 +01:00
Wim Taymans
b7966c0c7d
pad: make an ACCEPT_CAPS query
...
Replace the acceptcaps function with a query.
2011-11-09 17:36:00 +01:00
Wim Taymans
ac9e5533b5
pad: add more queries
...
Add more query functions to prepare for doing more with queries
2011-11-09 11:22:36 +01:00
Wim Taymans
9c0d8ca718
Merge branch 'master' into 0.11
...
Conflicts:
gst/gstelement.h
gst/gstghostpad.c
gst/gstminiobject.c
2011-11-08 12:54:15 +01:00
Tim-Philipp Müller
16dcd5e958
docs: fix Since: markers for API added after 0.10.35
2011-11-08 00:32:36 +00:00
Wim Taymans
d169fa8728
fix request pad
...
Make all request pads take _%u in the template.
Fix up unit tests.
2011-11-03 17:49:45 +01:00
Wim Taymans
88e12228cf
bufferlist: clean up API
...
gst_buffer_list_len() -> gst_buffer_list_length()
gst_buffer_list_sized_new() -> gst_buffer_list_new_sized()
2011-11-02 08:59:43 +01:00
Wim Taymans
ea012d3dd7
pad: GST_FLOW_UNEXPECTED -> GST_FLOW_EOS
2011-10-10 11:33:51 +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
Piotr Fusik
14f5518f3d
docs, gst: typo fixes
...
https://bugzilla.gnome.org/show_bug.cgi?id=658449
2011-09-07 18:03:17 +01:00
Tim-Philipp Müller
5a8273e527
Merge branch 'master' into 0.11
2011-06-05 15:48:51 +01:00