Commit graph

4441 commits

Author SHA1 Message Date
Wim Taymans
4446f9972d clock: make UNSCHEDULED checks threadsafe
Move the checks for using an unscheduled entry from the unsafe GstClock to the
SystemClock object so that we can perform the correct locking.
fix a leak and potential deadlock then the async thread fails to start.
Sprinkle some G_LIKELY around because we can.
2009-03-26 22:05:31 +01:00
Wim Taymans
e15cf9bc12 clock: remove pending async wakeup sooner
Remove a pending async wakeup before we check if the next entry is UNSCHEDULED
because we might leave the control socket busy.
2009-03-26 21:40:20 +01:00
Peter Kjellerstedt
7be99f052b gstpoll: Corrected a documentation typo. 2009-03-26 19:33:41 +01:00
Wim Taymans
41f1a1881e clock: add some more comments. 2009-03-26 19:13:55 +01:00
Wim Taymans
16b68e7de0 clock: rework the wakeup of entries.
Keep a counter for the amount of outstanding wakeups that we produce and only
perform a write/read to the control socket when 1 or 0 respectively.
don't poll when waiting for the entries to be unblocked and clear their wakeup
counts, just act on the signal when the wakeup count is 0.
unscheduled entries will clear their wakeup count themselves.
Keep track of when we wakeup the async thread because the list of entries has
changed.
don't try to see if the list changed because we can't really know when one entry
is added multiple times.
Only wake up the async thread when we add an async entry to the head of the list
and the old entry was BUSY.
2009-03-26 18:53:02 +01:00
Jan Schmidt
31669a4819 gstpoll: Fix up documentation strings.
Note the changed behaviour of gst_poll_wait for timer GstPoll's, and
fix a couple of spelling errors.
2009-03-26 15:06:16 +00:00
Wim Taymans
df30f60048 clock: fix 2 wakeup races.
when an entry being waited on in the async thread is unscheduled, clear the
wakeup queue so we can continue waiting on other entries.
When an entry being waited on in the async thread is unlocked because an earlier
entry was added to the list, set the entry to OK again. This makes sure that
only the entries being waited on have the BUSY flag set and wake up the timer
poll when they are unscheduled.
2009-03-26 15:59:17 +01:00
Tim-Philipp Müller
ea554b1d62 registry: ignore .git directory when recursively scanning plugin paths for plugins
Saves some cycles/pandas for those of us who run uninstalled setups.
2009-03-26 14:52:00 +00:00
Tim-Philipp Müller
cc0978bd85 registry: do fsync() before close() and rename()
This helps prevent filesystem/data inconsistencies in certain
circumstances on certain filesystems (like ext4, xfs, ubifs).
Also see bug #562976.
2009-03-26 14:51:49 +00:00
Tim-Philipp Müller
c4e10b9535 API: add gst_tag_list_get_buffer{_index}
Convenience API, mostly for image tags, so people don't have to
figure out the whole GValue/GstValue thing just for this.
2009-03-26 14:21:10 +00:00
Sebastian Dröge
10bc5670a3 segment: Use g_slice_dup() now 2009-03-26 11:17:01 +01:00
Sebastian Dröge
f75fad6a70 Remove some compatibility stuff for GLib < 2.14 2009-03-26 11:08:27 +01:00
Tim-Philipp Müller
26f9f721ff API: add GST_TAG_SUBTITLE_CODEC
Yes, 'codec' isn't exactly the best word, but let's be consistent with AUDIO_CODEC
and VIDEO_CODEC (which may be 'raw' formats as well after all). Prerequisite for
bug  #576552.
2009-03-25 00:50:07 +00:00
Wim Taymans
1bd7f96497 gstutils: improve property set and convert code
Use string deserialisation instead of custom parsing code to allow for all
supported ways of specifying property values.
fixes #576582.
2009-03-24 19:33:56 +01:00
Stefan Kost
c04e3f9a03 build: define stubs when disabling gst-debug subsystem. Fixes #575922
Running configure with e.g. --disable-dst-debug was compiling out the debug
system (ABI break). Now stubs are added and only if one does e.g.
make CFLAGS="-DGST_REMOVE_DISABLED" the symbols are ommitted.
2009-03-23 16:21:58 +02:00
Tim-Philipp Müller
b62bfc573a debugging: make GST_PTR_FORMAT work for queries as well 2009-03-20 00:42:51 +00:00
Tim-Philipp Müller
0492ca71f5 API: add GST_QUERY_CAST
because we can, and for consistency.
2009-03-20 00:39:41 +00:00
Wim Taymans
b4b386a1fd gstpad: fix gst_pad_can_link
We were converting the GstPadLinkReturn to a gboolean, which is not what we want
to do.
2009-03-19 17:20:50 +01:00
Stefan Kost
a5e3baf44d docs: more info about when state changes can be async and when not. 2009-03-19 10:39:33 +02:00
Damien Lespiau
c5ee0b7c1d info: more indentation fixes
Fixes #517231.
2009-03-18 19:54:28 +01:00
Wim Taymans
d12d111fa2 info: indentation fix 2009-03-18 19:06:23 +01:00
Wim Taymans
3857d902c3 info: simply some more 2009-03-18 18:57:16 +01:00
Wim Taymans
ca33a78881 info: refactor debug colors for win32 and other
Refactor the debug line code to use as much code as possible for the win32 and
other color codings.
Update docs with new symbol.
2009-03-18 18:45:41 +01:00
Wim Taymans
0c059ad2de windows: initial commit for terminal colors 2009-03-18 17:30:12 +01:00
Zeeshan Ali (Khattak)
8af9d58ea7 gstpad: fix gst_pad_can_link()
Move the gst_pad_can_link() implementation from gstutils to gstpad and use
gst_pad_link_prepare() to make it work correctly and also check the caps.

Make the broken implementation in gstutils static.

Small cleanups in the _get_fixed_caps() function.

Fixes #575682.
2009-03-18 17:01:16 +01:00
David Adam
7d7fceced5 config.h needs to be included first, either directly or via gst_private.h
Fixes build with -Werror caused by '_FILE_OFFSET_BITS redefined' warning on
OpenSolaris where _FILE_OFFSET_BITS may be defined both in our config.h
and via stdio.h (#575695).
2009-03-17 20:41:44 +00:00
Stefan Kost
b3e56e19f5 bin: forward segment-start like segment-done if parent is also a bin, fixes #575598.
Bin collects segment-start messages and segent-done messages. it posts a
segment-done message to its parent, once it has received a segment-done for
each segment-start. Imho it should also send a segment-start if it receives the
first segment start and if parent is !=NULL. This is needed for bins in bins,
so that also higher order bins can group segment-starts and segment-dones.
Right now higher order bins will post a segment-done for each segment-done
received.
2009-03-17 12:05:33 +02:00
Stefan Kost
73953055af systemclock: these warnings are serious, give more detail in the message 2009-03-15 23:41:33 +02:00
Wim Taymans
e7245c0891 Fix indentation of .h files
--
2009-03-13 10:56:54 +01:00
Stefan Kost
c3286501b4 taglists: apply fix for replace all also to gst_tag_list_add_valist_values. Fixes #574241 2009-03-12 12:21:39 +02:00
Wim Taymans
5467c64379 docs: Improve some docs
Rename some function variables and add some Return: to make the docs more happy.
2009-03-12 10:48:21 +01:00
Stefan Kost
15e7d1e9c7 docs: fix linking to constant and functions 2009-03-12 00:41:24 +02:00
Stefan Kost
1cfc0aee17 dump2dot: ellipsize caps fields, better placement of unnegotiated caps
Long caps fields like enums are ellipsised. If caps are not negotiated, use
head- and taillabel to place them closer to the pads. Use smarter way to indent.
2009-03-11 15:27:08 +02:00
Laszlo Pandy
ce0d28fe9a dump2dot: make caps in DOT debug graphs more readable. Fixes 574484
Use a monospace font for edge labels and indent.
2009-03-11 15:27:08 +02:00
Sebastian Dröge
d307513735 padtemplate: Allow %u as conversion modifier additional to %d and %s 2009-03-11 14:11:30 +01:00
Stefan Kost
36205e7d42 logging: some additional logging for tracing caps negotiation.
Demote one log that can come quite often. Remove one fixme that is done. Apply
gst-indent changes.
2009-03-10 21:13:40 +02:00
Stefan Kost
01dfca40f1 comment: add a fixme-0.11 2009-03-10 21:13:40 +02:00
Stefan Kost
50fdaa4f25 dump2dot: don't use GST_TIME_FORMAT when building filenames. fixes #574623 2009-03-09 16:01:20 +02:00
Wim Taymans
da0060d3aa pad: call new callbacks set in the block callback
Keep track of when a new callback is installed in the callback and call the new
callback in that case.
Add unit test for checking pad blocking.
Fixes #573823.
2009-03-09 11:48:36 +01:00
Tim-Philipp Müller
2f4eba5892 docs: improve docs for gst_tag_list_get_date*()
Mention that the date value needs to be freed and how to free it.
2009-03-08 17:15:33 +00:00
Stefan Kost
fd0b4ff60b dump2dot: improve caps logging
Factor out code to describe caps. Improve formating (no \n in caps fields).
Check peer caps too and show both if they differ.
2009-03-08 00:32:43 +02:00
Stefan Kost
1ec60ae392 apidocs: markup example as highlightable example and copy same for structure
structures can be printed like we can do for caps. Mark the example so that
gtk-doc can pretty print and xref it.
2009-03-06 21:59:20 +02:00
Antoine Tremblay
fe2f12b162 GstPad: relax failure to deactivate unlinked pads
When de/activating a pad in pull mode the pad needs to de/activate the
peer pad it is connected to, failure to be able to do this in activation mode
is an error.

However if there is no peerpad, we can still deactivate the pad correctly and
assume the application will deactivate the unlinked peer pad eventually.

Fixes #574163.
2009-03-05 11:29:48 +01:00
LRN
e13168bd4b GstPoll: set the return value on windows
Make sure that the return value of the functions _read/_write_control()
return the actual result instead of always FALSE on windows.
Fixes #574211.
2009-03-05 11:02:59 +01:00
Sebastian Dröge
3c6448c64e API: Add gst_util_array_binary_search() for binary searchs on a sorted array
This will be mostly useful in all elements that have some kind of internal
seek/index table. Currently almost all of them (or even all of them)
are using a linear search although the used array is already sorted,
wasting some CPU time without good reason.

Fixes bug #573623.
2009-03-02 16:17:45 +01:00
David Schleef
a29773e4cc Bump glib requirement to 2.14
Also remove code conditional on < 2.14.
2009-02-28 11:15:29 -08:00
Stefan Kost
6911aa59be binary registry: Don't attempt to parse empty caps 2009-02-25 16:03:25 +02:00
Sebastian Dröge
70fcf4a201 registry: Set typefind factory caps to NULL instead of empty caps if they originally were NULL 2009-02-25 14:19:54 +01:00
Sebastian Dröge
fdc03c2841 registrybinary: Check if typefind factory caps are NULL before copying them 2009-02-24 15:10:15 +01:00
Alessandro Decina
d3940f520b GstPad: Add gst_pad_set_blocked_async_full
This allows connecting a GDestroyNotify for when the callback is removed/replaced.
Partially fixes #514717
2009-02-22 20:01:05 +01:00