Commit graph

5291 commits

Author SHA1 Message Date
Wim Taymans
22fa4470e2 poll: Refactor and make more lockfree
Refactor the wakeup of the poll thread.
Always make a control socket to make things easier.
Make more methods lockfree.
2010-12-03 15:50:38 +01:00
Wim Taymans
e266d4d397 poll: move lock to where it makes more sense 2010-12-03 15:50:38 +01:00
Wim Taymans
73ee14302f poll: make timer polls lockfree
Make sure we don't take a mutex in the normal code path of the timer
poll.
2010-12-03 15:50:38 +01:00
Mark Nauwelaerts
efe3c70450 caps: fix doc typo 2010-12-03 13:35:38 +01:00
Stefan Kost
bd82021e86 gstobject: add stdio.h for snprint 2010-12-03 13:52:42 +02:00
Edward Hervey
fc7967a0b5 pipeline: Use an object as first argument to GST_WARNING_OBJECT 2010-12-03 12:03:43 +01:00
Edward Hervey
6aa8ca37ee micro-optim: if (x) is cheaper than if (x > 0) for unsigned integers 2010-12-03 12:03:42 +01:00
Edward Hervey
5519b1fcb1 gstquery: Use structure property directly, avoid function variable.
All functions in this file can access the structure field of a query directly.
This avoids having to call gst_query_get_structure() to get it, along with being
able to remove some function variables that were used to store the result of that
function.
2010-12-03 11:33:37 +01:00
Edward Hervey
3a9396d259 gstinfo: remove useless ternary operator usage. 2010-12-03 11:33:37 +01:00
Edward Hervey
6b002234cd gstevent: Use structure property directly, avoid function variable.
All functions in this file can access the structure field of an event directly.
This avoids having to call gst_query_get_structure() to get it, along with being
able to remove some function variables that were used to store the result of that
function.
2010-12-03 11:33:37 +01:00
Wim Taymans
cec2a42808 pad: add push cache to bufferlists
Add the push cahce for the bufferlist push code path as well.
2010-12-03 11:28:52 +01:00
Wim Taymans
59bc71c47a pad: don't cache the peer chainfunc
There is no need to cache the peer chainfunction as we can just as efficiently
get to it from the peer object. Also not caching the chain function works better
because then we automatically get the new chainfunctions when they change.
2010-12-03 11:28:52 +01:00
Wim Taymans
d3630379da pad: clear pad cache when installing probes
Move the method to clear the pad cache into _private.h
Clear the pad cache when installing pad probes.
2010-12-03 11:28:52 +01:00
Wim Taymans
2239038d76 pad: explicitly inline some functions 2010-12-03 11:28:52 +01:00
Wim Taymans
67d7c543b3 pad: remove unused variable 2010-12-03 11:28:52 +01:00
Wim Taymans
5e37ade932 pad: invalidate caches on flush and pad block 2010-12-03 11:28:52 +01:00
Wim Taymans
8abc14052a pad: don't unref NULL caps 2010-12-03 11:28:52 +01:00
Wim Taymans
14542a0d46 pad: add invalidate function
More small optimisations, remove the unneeded valid boolean.
Add function to invalide the cache.
Invalidate the cache on unlink.
2010-12-03 11:28:52 +01:00
Wim Taymans
1c79181afd pad: small cleanup 2010-12-03 11:28:52 +01:00
Wim Taymans
b83e66be46 pad: improve pad push caching
Build the cache while we push data. When we don't have a cache, we run the
slowpath and collect cacheable properties. When all conditions are met, keep the
cached data around so that we can more efficiently push data around.
2010-12-03 11:28:52 +01:00
Wim Taymans
d59b7f81b7 pad: prototype of pad push cache
Prototype of how we can cache the peer and caps for a pad link.
2010-12-03 11:28:52 +01:00
Wim Taymans
1e1872137d task: avoid task lock for each iteration
Make the task state an atomic variable so that we can avoid taking and releasing
the task lock for each iteration.
2010-12-03 11:21:03 +01:00
Stefan Kost
898583b2a0 docs: query doc improvements
More xrefs. Mentioned that some queries need a running pipeline.
2010-12-03 09:50:32 +02:00
Stefan Kost
a4c5448eee elementfactory: clarify list item types in comments 2010-12-03 09:50:31 +02:00
Stefan Kost
d4e2107987 padtemplate: add two FIXME0.11: comments 2010-12-03 09:50:31 +02:00
Stefan Kost
f9039c2204 padtemplate: allow disablinbg the template name conformance checks 2010-12-03 09:50:31 +02:00
Stefan Kost
20c173bada padtemplate: the supplied caps may not be NULL
There is a earlier g_return_val_if_fail check. Also
gst_static_pad_template_get does not have such a check.
2010-12-03 09:50:31 +02:00
Stefan Kost
1c50dcd54f gstobject: more default name generation more efficient
Save ~2000 malloc/memcpy/free pairs at startup by running to_lower in-place.
Also skip the numbers as we can.
2010-12-03 09:50:31 +02:00
Stefan Kost
aa440a1e24 pluginfeature: use the parent_class from G_DEFINE_TYPE macro and drop extra copy 2010-12-03 09:50:31 +02:00
Stefan Kost
ffa8f100ce elementfactory: use g_intern_string for interface names 2010-12-03 09:50:31 +02:00
Stefan Kost
d370a2437a registry: also intern the static caps 2010-12-03 09:42:44 +02:00
Stefan Kost
2d17d86ba8 elementfactory: meta-data can be NULL 2010-12-03 00:00:09 +02:00
Thiago Santos
2f94ad3d6c gstdatetime: Fix handling of timezones
Fix returning of timezones on systems with gdatetime
to use floats on the math expression to avoid
truncating the fractional part.

Also adds a test for covering this case.
2010-12-02 16:28:43 -03:00
Wim Taymans
a0cb088284 utils: return immediately for -1 conversion
When we are asked to convert -1, we can return immediately with a -1 return
value.
2010-12-02 19:10:45 +01:00
Wim Taymans
e84d563033 utils: a convert query can have a -1 input value
It is allowed to pass -1 to the src_val for a convert.
2010-12-02 19:10:45 +01:00
Wim Taymans
7590cee744 pipeline: avoid using invalid clock times
Be extra careful to not use invalid clock times but give a warning instead. This
should make things work better with faulty clock implementations.
2010-12-02 19:10:44 +01:00
Wim Taymans
d36903c1c2 caps: improve some comments about the zigzag intersection 2010-12-02 19:10:44 +01:00
Edward Hervey
b4285611ad gstclock: New API to re-use a single shot GstClockID
API: gst_clock_single_shot_id_reinit

https://bugzilla.gnome.org/show_bug.cgi?id=632778
2010-12-02 19:04:56 +01:00
Wim Taymans
8412c2a656 segment: move g_return_if_fail to where it is needed 2010-12-02 19:03:35 +01:00
Sebastian Dröge
0ff0e6a434 version: Take nano version into account in GST_CHECK_VERSION()
If the nano is > 0 the current version should be handled the same as
micro + 1.
2010-12-02 19:02:08 +01:00
Sebastian Dröge
f2f7842f6b pad: Set the event source object if none is set yet in gst_pad_push_event()
Otherwise the source will stay at NULL, the event is passed to the
peerpad via gst_pad_send_event() and then the peerpad is set as
source of the event instead of the originating pad.
2010-12-02 19:02:08 +01:00
David Hoyt
7199a4f1ff gsttask: Set thread names on Windows with MSVC if a debugger is attached
Fixes bug #632168.
2010-12-02 19:02:08 +01:00
Sebastian Dröge
a797b9f22b macros: Define restrict keyword if not available
This change always defines the restrict keyword if a
non-C99 C compiler is used. In the case of GCC >= 4
it will be defined to __restrict__, in all other
cases to nothing. This allows to use the restrict
keyword unconditionally.
2010-12-02 19:02:07 +01:00
Tim-Philipp Müller
5cac987148 utils: avoid 'unused argument' warnings caused by GST_BOILERPLATE_FULL
The unused data parameter in the class_init trampoline function
seems to cause warnings with some c++ compilers.

https://bugzilla.gnome.org/show_bug.cgi?id=635869
2010-11-29 12:29:10 +00:00
Evan Nemerson
4906671694 introspection: Include exported packages information in GIRs
https://bugzilla.gnome.org/show_bug.cgi?id=635389
2010-11-21 00:36:30 +00:00
Tim-Philipp Müller
b84621e0d0 elementfactory: fix caps leak in element factory list utility functions 2010-11-18 00:29:19 +00:00
Thiago Santos
1b27e1e792 datetime: Add _from_unix_epoch variants
Adds 2 variants for the gst_date_time_from_unix_epoch function,
one for UTC and another for local time.

API: gst_date_time_new_from_unix_epoch_utc
API: gst_date_time_new_from_unix_epoch_local_time

Fixes #653031

https://bugzilla.gnome.org/show_bug.cgi?id=635031
2010-11-17 09:58:32 -03:00
Vladimir Eremeev
b804d53320 math-compat: don't re-define _USE_MATH_DEFINES if already defined
This avoids compiler warnings.

https://bugzilla.gnome.org/show_bug.cgi?id=633886
2010-11-03 14:21:02 +00:00
Edward Hervey
726e4479b7 elementfactory: Fix 64bit constant
Basically we're not meant to put anything more complex than simple numbers,
due to the definition of G_GUINT64_CONSTANT:
G_GUINT64_CONSTANT(val)	(val##UL)

Which previously resulted in .... 1 << 49UL
2010-10-22 11:52:47 +02:00
Tim-Philipp Müller
5b25761f29 docs: add some gtk-doc Since: markers
Add some gtk-doc Since: markers, fix one Since: marker,
fix typo.
2010-10-16 16:53:49 +01:00