gst/check/consistencychecker: Check type of miniobject in probe
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.
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.
gstobject: Remove dead assignment.
object is no longer used after that line
object is no longer used after that line
gstindex: Make sure writer is non-NULL.
Fixes the NULL dereference a few lines lower (where it gets the object type).
Fixes the NULL dereference a few lines lower (where it gets the object type).
benchmarks: Clean up gstbufferstress.
benchmarks: Fix the complexity and mass-elements benchmarks
checks: Fix string leaks in the new childproxy test
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.
If a plugin registers an empty dependency set, just ignore it rather
than serialising and checking an empty set.
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.
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.
filesink: Use _wfopen on win32 to open files with non-ascii filenames correctly.
docs: fix Since: tags in docs for newly-added API
info: revert two of the changes
It only needed for the non constant string.
It only needed for the non constant string.
info: use a "%s" format string when printing the memory dump line
We know that the content is save, but the compiler does not.
We know that the content is save, but the compiler does not.
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.
We were formatting the string once and then passing the string as a format
string to the log functions.
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()
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()
tests: add ghostpad test for setting target again after pad is linked
tests: remove empty lines from wrong indent run
check: Fix compilation of the bytewriter test
win32: add new byte writer and reader API to .def file
API: gst_byte_writer_*()
API: gst_byte_writer_*()
elementfactory: fix spelling in comment
multiqueue: flush queue upon fatal flowreturn and release upstream thread
dataqueue: fix API documentation typo
bytewriter: Add to the docs
bytewriter: Add unit test
bytewriter: Add a generic byte writer
Fixes bug #590669.
Fixes bug #590669.
bitreader/bytereader: API: Add gst_(bit|byte)_reader_get_size()
... and GST_(BYTE|BIT)_READER() casts.
... and GST_(BYTE|BIT)_READER() casts.
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.
The normal functions are always useful to have for bindings, especially
runtime-created bindings like Seed or new GObject-Introspection based
Python bindings.
check: Attempt to fix type-punning warning in the gstiterator test
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
Call the gst_dp_init() function to ensure that the debug
category is initialised, to avoid g_criticals when running with
GST_DEBUG=5
check: Use GST_DEBUG instead of g_message in the gdp test
check: Add GST_PLUGIN_SCANNER env var to the check environment
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.
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.
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.
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.
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()
And add API: marker in commit message that was omitted in the original
commit:
API: gst_data_queue_new_full()
benchmarks: add bufferstress binary to .gitignore
configure: bump GLib requirement to 2.18
Bump GLib requirement as per the release planning docs.
Bump GLib requirement as per the release planning docs.
message: whitespace fixes
pad: flip the G_UNLIKELY
Its likely that we have caps and unlikely (error) otherwise.
Its likely that we have caps and unlikely (error) otherwise.
docs: add new queue api to the docs to fix the build
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%
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%
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
* Cache the input/output time
* Only recalculate it when needed.
Avoids 50% calls to gst_segment_to_running_time
build: sprintf, sscanf need stdio.h
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.
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.
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.
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.
docs: rename aggregator to adder in the docs.
man: fix copy and past mistake for -q option
14 years agogst-uninstalled: Extend environment variables to allow using an uninstalled gstreamer...
gst-uninstalled: Extend environment variables to allow using an uninstalled gstreamer-sharp
plugins/multiqueue: Use new GstDataQueue constructor
gstdataqueue: new constructor which takes callbacks.
This allows us to avoid going through glib's signalling system
This allows us to avoid going through glib's signalling system
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%.
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%.
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.
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.
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()
* 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()
plugins/queue: Just cast to the object parent instead of typechecking.
benchmark: New benchmark for testing contention when creating buffers
gst-launch: Don't activate tracing if not requested.
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).
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).
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.
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.
introspection: Add annotations for gst_element_query_{duration,position}
Fixes bug #595511.
Fixes bug #595511.
bytereader: add inline version of gst_byte_reader_skip
po: update translation files for new and changed strings
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
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
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).
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).
gst: remove more unnecessary cast when using g_signal_*()
dataqueue, elements: avoid unnecessary runtime type checks
docs: Update the release script
Remove old cruft from the release script, and change some CVS
references to equivalent git commands
Remove old cruft from the release script, and change some CVS
references to equivalent git commands
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
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
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.
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.
registry: Support installed/uninstalled plugin-scanner helper
Add a simple version check when starting the plugin-scanner so we can
verify we're talking to one that talks the same language.
First try a plugin-scanner in the installed path, then try one via the
GST_PLUGIN_SCANNER env var if that doesn't work.
Update the uninstalled script.
Install the plugin-scanner to the libexec dir
Add a simple version check when starting the plugin-scanner so we can
verify we're talking to one that talks the same language.
First try a plugin-scanner in the installed path, then try one via the
GST_PLUGIN_SCANNER env var if that doesn't work.
Update the uninstalled script.
Install the plugin-scanner to the libexec dir
Remove checking for and mentions of fork where possible.
We no longer use fork() directly, instead using glib's spawn
functionality, so don't check for it, and don't use it in the
documentation notes.
We no longer use fork() directly, instead using glib's spawn
functionality, so don't check for it, and don't use it in the
documentation notes.
Re-enable and fix disabled bit of the registry test
Only load the registry cache once per process.
When updating the registry, we don't need to re-read the registry cache
and waste time replacing all our existing, hopefully identical, plugins
and features that we're about to re-scan anyway.
When updating the registry, we don't need to re-read the registry cache
and waste time replacing all our existing, hopefully identical, plugins
and features that we're about to re-scan anyway.
Add some more debug the registry.
Add the full set of debug about why it's decided that a given plugin is
stale or not, and include the plugin name when finalizing it.
Add the full set of debug about why it's decided that a given plugin is
stale or not, and include the plugin name when finalizing it.
Add restarting of the plugin loader and blacklisting of broken files
Plugin loader phase 2
phase 2 - make the plugin loader receive the list of plugins to load and
send back the results asynchronously, so we don't context switch back
and forth so much.
phase 2 - make the plugin loader receive the list of plugins to load and
send back the results asynchronously, so we don't context switch back
and forth so much.
registry: Add registry helper phase 1
Phase 1 of adding the registry scan helper
Phase 1 of adding the registry scan helper
registry: Rearrange some things.
Prepare to land the external plugin helper process
Prepare to land the external plugin helper process
Back to development -> 0.10.25.1
Release 0.10.25
Update .po files
0.10.24.4 pre-release
libgstcheck: Don't use character classes in sed expressions
Apparently the sed that ships on Solaris 10 doesn't support character
classes like [:alnum:], so don't use them. We don't need them for the
symbol names that are being extracted anyway.
Also, use $(SED) instead of 'sed'
Fixes: #596877
Apparently the sed that ships on Solaris 10 doesn't support character
classes like [:alnum:], so don't use them. We don't need them for the
symbol names that are being extracted anyway.
Also, use $(SED) instead of 'sed'
Fixes: #596877
0.10.24.3 pre-release
utils: Fix GMP scaling unit test
GMP only uses "unsigned long int", which is 32 bit
on 32 bit architectures and can't hold a guint64.
This resulted in false unit test failures on 32 bit architectures.
Fixes bug #595133.
GMP only uses "unsigned long int", which is 32 bit
on 32 bit architectures and can't hold a guint64.
This resulted in false unit test failures on 32 bit architectures.
Fixes bug #595133.
Fix out-of-tree build
docs: GST_MESSAGE_STREAM_STATUS is implemented nowadays.
Docs were still mention it as "not yet implemented".
Docs were still mention it as "not yet implemented".
introspection: Build pkgconfig before all libraries and set PKG_CONFIG_PATH
This way g-ir-scanner can find the gstreamer-0.10 pkg-config file.
This way g-ir-scanner can find the gstreamer-0.10 pkg-config file.
introspection: Don't typedef GstTagList to GstStructure for gobject-introspection
0.10.24.2 pre-release
Don't use C++ style comments
message: Disable restriction that structure changes are sink pads
The structure_change message was originally emitted on source pads and
then recently changed to be sink pads. This causes a failure in the
gst-python testsuite. Disable the restriction so that the published
behaviour is still allowed.
The structure_change message was originally emitted on source pads and
then recently changed to be sink pads. This causes a failure in the
gst-python testsuite. Disable the restriction so that the published
behaviour is still allowed.
check: Fix version check tests
Accomodate the slightly changed semantics in the plugin version check
where a CVS version just before a release is acceptable.
Accomodate the slightly changed semantics in the plugin version check
where a CVS version just before a release is acceptable.
binaryregistry: don't crash in cleaning up on error.
Don't dereference NULL pointers.
Don't dereference NULL pointers.
debug: use dummy code to avoid spurious semicolons
Fixes bug #589173.
Fixes bug #589173.
whitespace fixes
pluginfeature: improve version check
Also parse the nano of the version and assume that X.Y.Z-1.1 >= X.Y.Z
With this change we can also check development versions against the version of
the upcomming release.
Also parse the nano of the version and assume that X.Y.Z-1.1 >= X.Y.Z
With this change we can also check development versions against the version of
the upcomming release.
taglist: Add FIXME for 0.11 to not typedef GstTagList to be a GstStructure
See bug #518934.
See bug #518934.
Fix typo in inline documentation
Update common
utils: Add a comment to the scaling functions to explain why the rounding is correct
ghostpad: don't unref NULL caps
Caps can be NULL so don't call unref on it unconditionally, instead use an
existing exit pad for the function.
Caps can be NULL so don't call unref on it unconditionally, instead use an
existing exit pad for the function.