Sebastian Dröge [Wed, 14 Oct 2009 06:30:07 +0000 (08:30 +0200)]
gstobject: Replace recursive gst_object_has_ancestor() with an iterative version
This is slightly more efficient because the compiler can't do tail
recursion here and has to keep all stack frames.
Not that efficiency is that important here but I already had
the iterative version somewhere else and both are easy to read.
Sebastian Dröge [Wed, 14 Oct 2009 06:29:32 +0000 (08:29 +0200)]
gstobject: Add simple unit test for gst_object_has_ancestor()
Tommi Myöhänen [Tue, 13 Oct 2009 16:12:50 +0000 (19:12 +0300)]
netclientclock: fix timestamp comparission, Fixes #597407
Jan Schmidt [Mon, 12 Oct 2009 20:51:55 +0000 (21:51 +0100)]
check: Disable the test_fail_abstract_new() test entirely on OS/X
Fixes a compiler warning from the function being compiled but not
used.
Jan Schmidt [Mon, 12 Oct 2009 13:57:35 +0000 (14:57 +0100)]
debug: Mark the GST_POLL symbol as extern to avoid multiply-defined error
Jan Schmidt [Mon, 12 Oct 2009 13:47:30 +0000 (14:47 +0100)]
Jan Schmidt [Mon, 12 Oct 2009 13:24:04 +0000 (14:24 +0100)]
gstpoll: Make the new GST_POLL debug completely private
Make the GST_POLL debug category symbol private to libgstreamer, as
there should be no external users of it.
Jan Schmidt [Mon, 12 Oct 2009 13:22:34 +0000 (14:22 +0100)]
checks: Disable a fairly silly gstobject test on OS/X
This test used to SIGBUS on OS/X but now SIGSEGV's instead on
Snow Leopard. It's not worth the effort to figure out which platform
should produce which error for what is fundamentally a pretty silly
test, so just disable it on OS/X
Edward Hervey [Mon, 12 Oct 2009 11:50:51 +0000 (13:50 +0200)]
libs/gst/check: Make writing threadsafe. Backported from libcheck trunk
Edward Hervey [Mon, 12 Oct 2009 11:49:35 +0000 (13:49 +0200)]
libs/gst/check: Run gst-indent on libcheck.
Edward Hervey [Mon, 12 Oct 2009 10:02:34 +0000 (12:02 +0200)]
gstpluginloader: Don't wait forever on gst_poll_wait.
This allows the macosx versions to properly error out when fds are closed.
This is only a temporary fix until the pluginloader is switched to not
use GstPoll but GIOChannels.
Edward Hervey [Mon, 12 Oct 2009 10:01:59 +0000 (12:01 +0200)]
gstpoll: Only take into account active fds
This is needed so that select properly errors out on macosx (sigh)
Edward Hervey [Mon, 12 Oct 2009 08:07:03 +0000 (10:07 +0200)]
gstpoll: Add some debugging statements
Edward Hervey [Mon, 12 Oct 2009 08:01:01 +0000 (10:01 +0200)]
gstpoll: Use the error fdset when using select/pselect.
This is needed to properly detect fds that are closed or that got
an error
Edward Hervey [Mon, 12 Oct 2009 07:50:46 +0000 (09:50 +0200)]
gstpoll: Don't use poll on systems with broken poll
Edward Hervey [Mon, 12 Oct 2009 07:50:00 +0000 (09:50 +0200)]
gst: Add debugging category GST_POLL for gstpoll
Edward Hervey [Mon, 12 Oct 2009 07:47:59 +0000 (09:47 +0200)]
configure.ac: Detect broken poll()
Stefan Kost [Fri, 9 Oct 2009 14:44:28 +0000 (17:44 +0300)]
basesink: lets keep -1 for segmenst as they are guint64 and not GstClockTime
Stefan Kost [Fri, 9 Oct 2009 14:11:27 +0000 (17:11 +0300)]
basesink: use GST_CLOCK_TIME_NONE and GST_CLOCK_TIME_IS_VALID more
Jan Schmidt [Thu, 8 Oct 2009 22:10:40 +0000 (23:10 +0100)]
pluginloader: Fix valgrind warnings by zeroing padding bytes.
Jan Schmidt [Thu, 8 Oct 2009 16:19:38 +0000 (17:19 +0100)]
check: Hopefully fix an 'may be used uninitialized' warning on OS/X
Jan Schmidt [Thu, 8 Oct 2009 15:21:45 +0000 (16:21 +0100)]
registrychunks: Fix a debug format string harder to satisfy OS/X's gcc.
Jan Schmidt [Thu, 8 Oct 2009 15:05:08 +0000 (16:05 +0100)]
registrychunks: Fix format string for debug error message.
Jan Schmidt [Thu, 8 Oct 2009 14:21:48 +0000 (15:21 +0100)]
pluginloader: Move stdin and stdout out of harm's way
In the plugin loader subprocess, move stdin and stdout to new fd's
so that plugins printing things during plugin init or (*gasp*)
possibly reading from stdin don't interfere with the data sent to
and from the parent.
Jan Schmidt [Thu, 8 Oct 2009 10:17:14 +0000 (11:17 +0100)]
plugin docs: Add GST_PLUGIN_SCANNER env var to the inspect environment
Jan Schmidt [Thu, 8 Oct 2009 09:59:15 +0000 (10:59 +0100)]
Automatic update of common submodule
From 37f898b to a3e3ce4
Jan Schmidt [Thu, 8 Oct 2009 09:39:28 +0000 (10:39 +0100)]
gitignores: Ignore the bytewriter check binary
Jan Schmidt [Thu, 8 Oct 2009 09:36:56 +0000 (10:36 +0100)]
registry: Fix error handling in the registry loader
When the plugin-scanner load fails (because the helper can't be
spawned), make sure to load the plugin that failed in-process, so
that all plugins do get loaded.
Jan Schmidt [Thu, 8 Oct 2009 09:26:27 +0000 (10:26 +0100)]
check: Fix test run in tests/examples/manual
Add the GST_PLUGIN_SCANNER env var to the check environment here too
so that it doesn't fail when no installed scanner is available.
Tim-Philipp Müller [Thu, 8 Oct 2009 08:34:47 +0000 (09:34 +0100)]
gstinfo: add back fix that shouldn't have been reverted
Stefan Kost [Thu, 8 Oct 2009 07:47:44 +0000 (10:47 +0300)]
queue: more queue optimizations
Split gst_queue_locked_enqueue() into variant for buffer and event to get rid of
the if() and make the code more readable (constant boolean parameters are never
nice). Removes the if (item) checks as we dereference the pointer before anyway.
Also apply the same idea of reusing the previous knowledge in
gst_queue_locked_dequeue to remove more type checks.
Stefan Kost [Thu, 8 Oct 2009 07:51:49 +0000 (10:51 +0300)]
multiqueue: split gst_multi_queue_item_new
Split gst_multi_queue_item_new into buffer and event variant to make save an if
and make code more readable.
Edward Hervey [Thu, 8 Oct 2009 06:55:59 +0000 (08:55 +0200)]
plugins/gstfilesrc: Make a fast-path for length == 0 buffer creation.
If the requested length is 0, we don't need to read anything from the file.
Edward Hervey [Thu, 8 Oct 2009 06:55:23 +0000 (08:55 +0200)]
gst/check/consistencychecker: Check type of miniobject in probe
Edward Hervey [Thu, 8 Oct 2009 06:53:54 +0000 (08:53 +0200)]
gst/base/basesink: Remove dead assignment.
The code was previously:
* checking if ret was != OK
* .. but if it was FLOW_STEP, swith it to OK
* .. and then not using ret
Instead we just make it more compact by checking if it's OK or STEP.
Edward Hervey [Thu, 8 Oct 2009 06:53:26 +0000 (08:53 +0200)]
gstobject: Remove dead assignment.
object is no longer used after that line
Edward Hervey [Thu, 8 Oct 2009 06:52:18 +0000 (08:52 +0200)]
gstindex: Make sure writer is non-NULL.
Fixes the NULL dereference a few lines lower (where it gets the object type).
Edward Hervey [Tue, 29 Sep 2009 06:13:40 +0000 (08:13 +0200)]
benchmarks: Clean up gstbufferstress.
Jan Schmidt [Thu, 8 Oct 2009 01:42:16 +0000 (02:42 +0100)]
benchmarks: Fix the complexity and mass-elements benchmarks
Jan Schmidt [Thu, 8 Oct 2009 01:20:51 +0000 (02:20 +0100)]
checks: Fix string leaks in the new childproxy test
Jan Schmidt [Thu, 8 Oct 2009 01:03:08 +0000 (02:03 +0100)]
plugin: Ignore an empty dependency list.
If a plugin registers an empty dependency set, just ignore it rather
than serialising and checking an empty set.
Jan Schmidt [Thu, 8 Oct 2009 01:01:54 +0000 (02:01 +0100)]
registrychunks: Fix off-by-one error. Improve debug.
Fix an off-by-one error in the size guard for unpack_element, and
improve various debug statements in the failure paths.
Also, swap some g_new0 to g_malloc0 for the fun of it.
Michael Smith [Wed, 7 Oct 2009 23:02:58 +0000 (16:02 -0700)]
filesink: Use _wfopen on win32 to open files with non-ascii filenames correctly.
Tim-Philipp Müller [Wed, 7 Oct 2009 22:31:20 +0000 (23:31 +0100)]
docs: fix Since: tags in docs for newly-added API
Stefan Kost [Wed, 7 Oct 2009 21:08:47 +0000 (00:08 +0300)]
info: revert two of the changes
It only needed for the non constant string.
Stefan Kost [Wed, 7 Oct 2009 20:36:45 +0000 (23:36 +0300)]
info: use a "%s" format string when printing the memory dump line
We know that the content is save, but the compiler does not.
Rob Clark [Wed, 7 Oct 2009 20:23:08 +0000 (23:23 +0300)]
parse: don't format the string twice
We were formatting the string once and then passing the string as a format
string to the log functions.
Stefan Kost [Wed, 7 Oct 2009 08:43:54 +0000 (11:43 +0300)]
pad: add variants of gst_pad_get_caps() that don't copy caps. Fixes #590941
In most places in core and baseclasses we just need the caps to do caps-
intersections. In that case ref'ed caps are enough (no need to copy).
This patch also switches the code to use the new functions.
API: gst_pad_get_caps_refed(), gst_pad_peer_get_caps_refed()
Stefan Kost [Sat, 26 Sep 2009 20:43:37 +0000 (23:43 +0300)]
tests: add ghostpad test for setting target again after pad is linked
Stefan Kost [Sat, 26 Sep 2009 20:42:22 +0000 (23:42 +0300)]
tests: remove empty lines from wrong indent run
Jan Schmidt [Wed, 7 Oct 2009 19:38:49 +0000 (20:38 +0100)]
check: Fix compilation of the bytewriter test
Tim-Philipp Müller [Wed, 7 Oct 2009 17:07:26 +0000 (18:07 +0100)]
win32: add new byte writer and reader API to .def file
API: gst_byte_writer_*()
Michael Smith [Thu, 20 Aug 2009 21:24:19 +0000 (14:24 -0700)]
elementfactory: fix spelling in comment
Mark Nauwelaerts [Wed, 7 Oct 2009 16:40:46 +0000 (18:40 +0200)]
multiqueue: flush queue upon fatal flowreturn and release upstream thread
Mark Nauwelaerts [Tue, 22 Sep 2009 13:44:31 +0000 (15:44 +0200)]
dataqueue: fix API documentation typo
Sebastian Dröge [Wed, 7 Oct 2009 16:37:28 +0000 (18:37 +0200)]
bytewriter: Add to the docs
Sebastian Dröge [Mon, 5 Oct 2009 09:24:35 +0000 (11:24 +0200)]
bytewriter: Add unit test
Sebastian Dröge [Sat, 3 Oct 2009 11:30:54 +0000 (13:30 +0200)]
bytewriter: Add a generic byte writer
Fixes bug #590669.
Sebastian Dröge [Sat, 3 Oct 2009 13:57:07 +0000 (15:57 +0200)]
bitreader/bytereader: API: Add gst_(bit|byte)_reader_get_size()
... and GST_(BYTE|BIT)_READER() casts.
Sebastian Dröge [Sat, 3 Oct 2009 10:34:54 +0000 (12:34 +0200)]
bytereader,bitreader: Remove FIXME 0.11 to remove non-inlined functions
The normal functions are always useful to have for bindings, especially
runtime-created bindings like Seed or new GObject-Introspection based
Python bindings.
Jan Schmidt [Wed, 7 Oct 2009 15:36:31 +0000 (16:36 +0100)]
check: Attempt to fix type-punning warning in the gstiterator test
Jan Schmidt [Wed, 7 Oct 2009 15:00:12 +0000 (16:00 +0100)]
check: Make sure to init the dataprotocol lib.
Call the gst_dp_init() function to ensure that the debug
category is initialised, to avoid g_criticals when running with
GST_DEBUG=5
Jan Schmidt [Wed, 7 Oct 2009 14:47:45 +0000 (15:47 +0100)]
check: Use GST_DEBUG instead of g_message in the gdp test
Jan Schmidt [Wed, 7 Oct 2009 14:14:46 +0000 (15:14 +0100)]
check: Add GST_PLUGIN_SCANNER env var to the check environment
Tim-Philipp Müller [Wed, 7 Oct 2009 13:34:17 +0000 (14:34 +0100)]
registry: improve plugin loader failure message for uninstalled setups
Everyone running an uninstalled git setup is going to wonder about
this failure next time they update, so let's mention the solution
in the error message.
Jan Schmidt [Wed, 7 Oct 2009 12:59:47 +0000 (13:59 +0100)]
configure: Beef up the test for __uint128_t on GCC
GCC 3.4.3 on the SPARC buildbot crashes when actually
using __uint128_t. Beef up the configure test to detect that the
type is actually usable.
Tim-Philipp Müller [Wed, 7 Oct 2009 08:56:42 +0000 (09:56 +0100)]
win32: add new API to .def file
And add API: marker in commit message that was omitted in the original
commit:
API: gst_data_queue_new_full()
Tim-Philipp Müller [Wed, 7 Oct 2009 08:55:15 +0000 (09:55 +0100)]
benchmarks: add bufferstress binary to .gitignore
Tim-Philipp Müller [Wed, 7 Oct 2009 08:42:55 +0000 (09:42 +0100)]
configure: bump GLib requirement to 2.18
Bump GLib requirement as per the release planning docs.
Wim Taymans [Wed, 7 Oct 2009 08:37:39 +0000 (10:37 +0200)]
message: whitespace fixes
Stefan Kost [Wed, 7 Oct 2009 08:12:57 +0000 (11:12 +0300)]
pad: flip the G_UNLIKELY
Its likely that we have caps and unlikely (error) otherwise.
Stefan Kost [Wed, 7 Oct 2009 08:04:56 +0000 (11:04 +0300)]
docs: add new queue api to the docs to fix the build
Edward Hervey [Mon, 28 Sep 2009 13:25:22 +0000 (15:25 +0200)]
plugins/multiqueue: Avoid instance check
We know earlier on in the code whether we're handling an event or a buffer,
just pass that information through.
This commit and the previous commit reduce instruction fetch:
* when pushing buffer (_chain) by 10%
* when popping buffer (_loop) by 3%
Edward Hervey [Mon, 28 Sep 2009 13:24:02 +0000 (15:24 +0200)]
plugins/multiqueue: Cache input/output time, avoid expensive calls.
* Cache the input/output time
* Only recalculate it when needed.
Avoids 50% calls to gst_segment_to_running_time
Stefan Kost [Wed, 7 Oct 2009 07:00:05 +0000 (10:00 +0300)]
build: sprintf, sscanf need stdio.h
Stefan Kost [Mon, 5 Oct 2009 08:46:34 +0000 (11:46 +0300)]
childproxy: initialize gvalue in _valist function. Fixes #595602
Reflow the code to move error handling to the end of the functions. Initialize
gvalue like we do in the setter. Add a unit-test module with two simple tests
the catche this bug.
Stefan Kost [Thu, 1 Oct 2009 14:39:45 +0000 (17:39 +0300)]
pad: don't intersect with any in proxy_pad_get_caps
We initialize the caps with any and if a pad has NULL caps, just skip it instead
of intersecting with any. Also add branch prediction here.
Stefan Kost [Wed, 30 Sep 2009 13:41:07 +0000 (16:41 +0300)]
docs: rename aggregator to adder in the docs.
Stefan Kost [Wed, 30 Sep 2009 06:47:23 +0000 (09:47 +0300)]
man: fix copy and past mistake for -q option
Sebastian Dröge [Wed, 7 Oct 2009 07:54:41 +0000 (09:54 +0200)]
gst-uninstalled: Extend environment variables to allow using an uninstalled gstreamer-sharp
Edward Hervey [Mon, 28 Sep 2009 13:19:44 +0000 (15:19 +0200)]
plugins/multiqueue: Use new GstDataQueue constructor
Edward Hervey [Mon, 28 Sep 2009 13:18:37 +0000 (15:18 +0200)]
gstdataqueue: new constructor which takes callbacks.
This allows us to avoid going through glib's signalling system
Edward Hervey [Mon, 28 Sep 2009 11:19:10 +0000 (13:19 +0200)]
plugins/multiqueue: Use cached value instead of expensive object get.
The task will always exist as long as its owner (i.e. the pad) and that
owner's owner (i.e. multiqueue) exist.
Reduces the number of instruction fetches by 36%.
Edward Hervey [Mon, 28 Sep 2009 13:41:52 +0000 (15:41 +0200)]
plugins/queue: Use previous knowledge of data type to avoid typecheck.
We know whether we have a buffer or an event, use that instead of going
trough the expensive GLib typecheck.
The overall instruction fetch reduction introduced by this commit and the
2 previous commits:
* receiving a buffer (_chain) by 20%
* popping a buffer (_loop) by 14%
Numbers acquired through callgrind passing 100000 buffers through queue.
Edward Hervey [Mon, 28 Sep 2009 13:20:06 +0000 (15:20 +0200)]
plugins/queue: Avoid useless segment_to_running_time() calculations.
* Cache src and sink time
* Use a boolean to know whether src/sink time need to be recalculated
Avoids 50% calls to gst_segment_to_running_time()
Edward Hervey [Mon, 28 Sep 2009 11:21:07 +0000 (13:21 +0200)]
plugins/queue: Just cast to the object parent instead of typechecking.
Edward Hervey [Wed, 23 Sep 2009 14:19:32 +0000 (16:19 +0200)]
benchmark: New benchmark for testing contention when creating buffers
Edward Hervey [Wed, 23 Sep 2009 14:17:09 +0000 (16:17 +0200)]
gst-launch: Don't activate tracing if not requested.
Edward Hervey [Wed, 7 Oct 2009 06:37:05 +0000 (08:37 +0200)]
tests: init more variables to avoid compiler warning on osx
Init variable to avoid compiler warning and make the build bot happy
(the compiler most likely complains about this because it doesn't know
here that fail_unless will abort/exit in the path where it fails).
Sebastian Dröge [Sat, 26 Sep 2009 09:43:06 +0000 (11:43 +0200)]
multiqueue: Improve iterate internal links function
Pads have their GstSingleQueue stored as element private data
so there's no need to iterate over the list of single queues
every time. Also every pad only has a single internal link so
use a single iterator instead of a complex custom iterator.
Set the element private data of the pad to NULL when freeing the
single queue.
Johan Bilien [Thu, 17 Sep 2009 20:30:43 +0000 (16:30 -0400)]
introspection: Add annotations for gst_element_query_{duration,position}
Fixes bug #595511.
Tim-Philipp Müller [Sun, 4 Oct 2009 23:11:20 +0000 (00:11 +0100)]
bytereader: add inline version of gst_byte_reader_skip
Tim-Philipp Müller [Tue, 6 Oct 2009 23:47:59 +0000 (00:47 +0100)]
po: update translation files for new and changed strings
Wim Taymans [Mon, 28 Sep 2009 20:43:51 +0000 (22:43 +0200)]
ghostpad: take locks around smaller section
We don't need the hold the proxy mutex locked for getting the internal pad and
for linking the new target pad when we retarget. So take the lock a little later
and release it earlier.
Fixes #596366
Tim-Philipp Müller [Sun, 4 Oct 2009 18:51:40 +0000 (19:51 +0100)]
tests: init variable to avoid compiler warning on osx
Init variable to avoid compiler warning and make the build bot happy
(the compiler most likely complains about this because it doesn't know
here that fail_unless will abort/exit in the path where it fails).
Tim-Philipp Müller [Sat, 3 Oct 2009 20:08:54 +0000 (21:08 +0100)]
gst: remove more unnecessary cast when using g_signal_*()
Tim-Philipp Müller [Sat, 3 Oct 2009 19:49:54 +0000 (20:49 +0100)]
dataqueue, elements: avoid unnecessary runtime type checks
Jan Schmidt [Mon, 5 Oct 2009 15:41:50 +0000 (16:41 +0100)]
docs: Update the release script
Remove old cruft from the release script, and change some CVS
references to equivalent git commands
Jan Schmidt [Sun, 4 Oct 2009 13:30:34 +0000 (14:30 +0100)]
pluginloader: Add a magic number and maximum size limit.
Guard against a hostile child process that sends bogus data
due to memory corruption by adding a magic number to each packet,
and limit the maximum size of any message to 32MB
Jan Schmidt [Mon, 9 Feb 2009 13:33:07 +0000 (13:33 +0000)]
registry: Also check the binary registry chunk version of the child.
When trying to find a function plugin-scanner, include a check on the
version of the binary registry chunks it sends, to make sure it's
what we understand.