Commit graph

1340 commits

Author SHA1 Message Date
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
cbac716f98 outputselector: Remove dead assignment 2011-05-31 13:43:47 +02:00
Mark Nauwelaerts
fe1dcbe6fa queue2: adjust input data rate estimation
... being aware of possible initial higher burst rate.
2011-05-16 12:20:51 +02:00
Tim-Philipp Müller
76ccd2a1e9 docs: fix up some Since markers and update for new multiqueue args 2011-05-14 14:05:52 +01:00
Sebastian Dröge
5229a26a76 inputselector: Add sync mode that syncs inactive pads to the running time of the active pad
Fixes bug #645017.
2011-05-14 11:39:35 +02:00
Sebastian Dröge
9f83109706 multiqueue: Add mode to synchronize deactivated/not-linked streams by the running time
Fixes bug #645107, #600648.
2011-05-14 11:39:35 +02:00
Mark Nauwelaerts
24888ecc70 multiqueue: ensure thread safety when adding a pad
This seems to be a regression, and was causing crashes.

https://bugzilla.gnome.org/show_bug.cgi?id=649878
2011-05-10 18:07:01 +01:00
Stefan Kost
801d89e26f docs: don't duplicate info that we take from element-details 2011-05-03 13:03:20 +03:00
Sebastian Dröge
8839c513f7 queue2: Add missing ) to the ring-buffer-max-size property description 2011-04-15 13:59:02 +02:00
Sebastian Dröge
ea36e12bbc multiqueue: Don't leak the sinkpad name 2011-04-14 09:07:48 +02:00
Ole André Vadla Ravnås
037efe8738 elements: Fix pad callbacks so they handle when parent goes away
1) We need to lock and get a strong ref to the parent, if still there.
2) If it has gone away, we need to handle that gracefully.

This is necessary in order to safely modify a running pipeline. Has been
observed when a streaming thread is doing a buffer_alloc() while an
application thread sends an event on a pad further downstream, and from
within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
while the streaming thread has its buffer_alloc() in progress.
2011-04-13 17:41:17 +02:00
Janne Grunau
b2e6870edc queue2: prevent calculation with GST_CLOCK_TIME_NONE in update_time_level() 2011-04-13 17:35:39 +02:00
Alessandro Decina
3f1ef2255a android: make it ready for androgenizer
Remove the android/ top dir
Fixe the Makefile.am to be androgenized

To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
2011-04-11 01:08:07 +02:00
Havard Graff
d092e3b9ff queue[2]: Make src query MT-safe
It is possible that the element might be going down while the event arrives
2011-04-08 14:58:51 +02:00
Sebastian Dröge
1dac816e9c queue[2]: Unref events if the parent element disappeared 2011-04-08 14:57:18 +02:00
Havard Graff
d5485786a4 queue[2]: Make upstream events MT-safe 2011-04-08 14:57:05 +02:00
Stian Selnes
339df347a0 gstqueue, gstqueue2: check if parent of pad is NULL in _getcaps
Parent of the pad (the queue) may be set to NULL while there is
a buffer alloc going on.
2011-04-08 14:51:06 +02:00
Sebastian Dröge
ba6054b862 inputselector: Fix getcaps and event function from last commit
Return ANY caps if the parent disappeared, i.e. the template caps
and don't leak events if the parent disappeared.
2011-04-08 14:50:10 +02:00
Havard Graff
297407438a inputselector: Protect against pad-parent disappearing 2011-04-08 14:48:16 +02:00
Sebastian Dröge
6d97652903 multiqueue: Add another check for the flushing flag after taking the lock
This prevents another potential deadlock when flushing the pad
at exactly the right time.
2011-04-08 09:15:56 +02:00
Tim-Philipp Müller
12249e99c2 queue2: fix buffer leak on eos when using the ring buffer 2011-04-07 20:50:04 +01:00
Idar Tollefsen
46a786cee6 queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read.
https://bugzilla.gnome.org/show_bug.cgi?id=646972
2011-04-07 20:50:04 +01:00
Tim-Philipp Müller
419d117851 queue2: fix minor memory leak 2011-04-07 20:50:04 +01:00
Tim-Philipp Müller
01d016e720 funnel: minor element description fix 2011-04-07 20:50:04 +01:00
Sebastian Dröge
8db570f48c multiqueue: Make assignment of queue IDs and pad names threadsafe
Also add a test for naming pads by the caller and return NULL
when requesting an already existing pad.
2011-03-30 10:52:36 +02:00
Andreas Frisch
5368406a57 multiqueue: Set the single queue ID to the ID of the requested pad if one was given by the caller 2011-03-30 10:18:54 +02:00
Fraxinas
86bbc85ab1 multiqueue: Fix arbitrary sink + source pad naming
Use the string provided by the caller for the sinkpad name
if possible. Note that all sanity checking for this name
is already done in GstElement.

Fixes Bug #645931
2011-03-29 11:31:03 +02:00
Sebastian Dröge
b6caaf4ead funnel: Add some more documentation about the behaviour of funnel 2011-03-29 11:20:06 +02:00
Sebastian Dröge
a7b451cc13 funnel: Send a newsegment event after flush-stop 2011-03-29 11:20:06 +02:00
Sebastian Dröge
acb8203e62 funnel: Some random cleanup 2011-03-29 11:20:06 +02:00
Sebastian Dröge
9c9f619f6b funnel: Use a GstPad subclass for the sinkpads instead of using the pad's element private data 2011-03-29 11:20:06 +02:00
Sebastian Dröge
565efa30ea funnel: Integrate into the build system and rename the types 2011-03-29 11:20:05 +02:00
Sebastian Dröge
e5a857e78a funnel: Import funnel element from farsight2 2011-03-29 11:20:05 +02:00
Stefan Kost
84eafff61b docs: fix some gtk-doc warnings
Document the queue leaky enums.
2011-03-24 18:32:21 +02:00
Stefan Kost
1177a968cc queue2: set max value for to the matching one for the datatype
The property is guint64, so use G_MAXUINT64 instead of G_MAXUINT.
2011-03-24 18:32:20 +02:00
Sebastian Dröge
489b94444e multiqueue: Don't leak objects when flushing after dequeueing and before pushing the object 2011-03-22 11:04:20 +01:00
Sebastian Dröge
65fbc9398a multiqueue: Really remove unused variable 2011-03-21 17:54:10 +01:00
Sebastian Dröge
383cac91b1 multiqueue: Increment unique item counter with atomic operations
Before it was only protected by the stream lock but every pad
has its own stream lock, making the protection rather useless.
2011-03-21 17:52:59 +01:00
Sebastian Dröge
9e36a51bac multiqueue: Unblock all waiting pads when shutting down 2011-03-21 17:17:22 +01:00
Sebastian Dröge
5b48fd5b24 multiqueue: Remove unused variable 2011-03-21 16:34:19 +01:00
Sebastian Dröge
14eb517849 multiqueue: Exit loop function if the pad is flushing
Fixes possible deadlocks when flushing an unlinked pad that waits
for other pads to advance.
2011-03-21 16:29:40 +01:00
Jason D. Clinton
a789096c04 build: fix build with -Werror with GCC 4.6.0
This touches three areas of code, removes unused variables and discards
return values from two functions with (void).

https://bugzilla.gnome.org/show_bug.cgi?id=645267
2011-03-21 09:29:19 +01:00
Sebastian Dröge
69e81448c1 inputselector: Stop waiting for a pad switch when the pad is flushing 2011-03-19 08:57:06 +01:00
Sebastian Dröge
d41fe48ce3 inputselector: Move locking and signalling macros from the header to the source file 2011-03-19 08:57:06 +01:00
Sebastian Dröge
c8ecd6e9eb inputselector: Hold the selector lock while reading properties of the active pad 2011-03-17 14:21:17 +01:00
Sebastian Dröge
5e60a80268 inputselector: Make sure that EOS is always sent downstream for the active pad
It can happen that the currently active pad got the EOS event
before it was activated and the previously active pad got the
EOS event after it was deactivated. In that case we have to
send the EOS event from an inactive pad downstream.
2011-03-17 14:10:49 +01:00
Sebastian Dröge
f19bb850ac inputselector: Return GST_FLOW_OK until the selected pad pushed something downstream
This makes sure that during switches at no point in time all pads
have returned not-linked, which can happen when playing an audio-only
file with playbin2 and switching between the streams for example.

Fixes bug #644935.
2011-03-17 12:06:39 +01:00
Tim-Philipp Müller
1f59906ec1 filesrc, filesink: fix URI creation regression for non-absolute locations
Passing e.g. location=foo would lead to warnings because g_filename_to_uri()
wants an absolute file path and returns NULL otherwise. Use brand-new
gst_filename_to_uri() instead, which will try harder to create a proper
URI for us.

Also add unit test.
2011-02-24 15:36:53 +00:00
Tim-Philipp Müller
5ab1ee11ad fakesink: print new MEDIA4 flag as well 2011-02-21 12:44:05 +00:00
David Schleef
7caf301d3f fakesink: print buffer flags 2011-02-17 19:14:19 -08:00