Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_make):
Unref the factory after it was used the last time, not before.
* gst/gstindexfactory.c: (gst_index_factory_make):
Improve debugging a bit and don't leak a ref to the index factory with
each call.
Original commit message from CVS:
* gst/gsttypefind.c: (gst_type_find_register):
Make gst_type_find_register work for static typefind functions,
ie. allow passing plugin == NULL (prerequisite for #498924).
* gst/gstelementfactory.c: (gst_element_register):
Small docs addition.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register):
* gst/gsturi.h:
Patch from Alessandro Decina adding get_type_full and
get_protocols_full private vfuncs to the URIHandler interface
to allow bindings to support creating URI handlers.
Partially fixes: #339279
API: GstURIHandlerInterface::get_type_full
API: GstURIHandlerInterface::get_protocols_full
Original commit message from CVS:
* gst/glib-compat-private.h:
Add compatibility macro for g_intern_string() for
GLib-2.8 (any reason we can't just bump the
requirement to at least 2.10?)
* gst/gstpadtemplate.h:
* gst/gstelementfactory.c:
* gst/gstregistryxml.c:
* gst/gstregistrybinary.c:
Make GstStaticPadTemplate's templ_name field a const gchar * and fix
up the internal code accordingly. This shouldn't be a problem, since
there is no reason external code could ever assume the string in such
a structure is dynamically allocated unless it did that itself; the
use of g_strdup() is private to element factories. The new code also
saves some memory by putting pad template name strings into the GLib
quark table instead of allocating them dynamically.
Declaring this field constant fixes warnings with g++-4.2 when using
the GST_STATIC_PAD_TEMPLATE macro in c++ code (#478092).
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_has_interface):
* gst/gstelementfactory.h:
API: gst_element_factory_has_interface()
Added method to check if an element factory implements a named
interface.
Original commit message from CVS:
* gst/gst.c:
Add GST_DISABLE_OPTION_PARSING, in order to disable option
parsing for embedded systems.
* gst/gstelementfactory.c:
Allow gst_element_register() to be called with plugin==NULL.
Did nobody notice that static elements were broken?
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
* gst/gsttypefindfactory.c: (gst_type_find_factory_call_function):
* tools/gst-inspect.c: (print_element_info):
Fix refcounting of gst_plugin_feature_load to match the docs.
Fixes: #380129
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register):
If the GstElementClass doesn't have a GstElementDetails with all fields
filled up correctly (longname, description AND author), then error out
nicely instead of crashing.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
Remove unnecessary ref/unref pair
* gst/parse/grammar.y:
Make sure to free the parse buffer on all code paths.
Move a g_free up to the error handler where it's easier to see.
* tests/check/gst/gstevent.c: (test_event):
Extending timeout for downstream travelling events to 10 seconds to
hopefully avoid intermittent failure on the buildbots.
* tests/check/pipelines/parse-launch.c: (run_delayed_test):
Don't manually set the state of the src element - it will happen as a
natural consequence of the pipeline changing state, and that way it
will do it in the right order too.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register),
(gst_element_factory_create), (gst_element_factory_make):
Some cleanups.
Fixed a FIXME.
Updated docs (Fixes#131079)
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
Small cleanups.
* tests/check/gst/gstelement.c: (GST_START_TEST),
(gst_element_suite):
Added testcase for elementfactory class field.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type), (gst_bin_handle_message_func):
Help the compiler a bit with type registration.
Use existing forward cod path instead of duplicating it when
handling a message.
* gst/gstbus.c: (gst_bus_get_type):
* gst/gstcaps.c: (gst_caps_get_type), (gst_static_caps_get_type):
* gst/gstchildproxy.c: (gst_child_proxy_get_type):
* gst/gstclock.c: (gst_clock_get_type):
* gst/gstelement.c: (gst_element_get_type),
* gst/gstelementfactory.c: (gst_element_factory_get_type):
* gst/gstindexfactory.c: (gst_index_factory_get_type):
* gst/gstminiobject.c: (gst_mini_object_get_type):
* gst/gstpad.c: (gst_pad_get_type):
* gst/gstsegment.c: (gst_segment_get_type):
* gst/gststructure.c: (gst_structure_get_type):
* gst/gstsystemclock.c: (gst_system_clock_get_type):
* gst/gsttask.c: (gst_task_get_type), (gst_task_join):
* gst/gstvalue.c:
Help compiler with type registration.
* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event):
Small doc update.
Original commit message from CVS:
2005-09-20 Andy Wingo <wingo@pobox.com>
* gst/gstelementfactory.c (gst_element_factory_create): Avoid
eating the caller's refcount.
* gst/gstobject.h (GST_OBJECT_REFCOUNT)
(GST_OBJECT_REFCOUNT_VALUE): Conditionally fondle the right
refcount.
* gst/gstconfig.h.in (GST_HAVE_GLIB_2_8):
* configure.ac (GST_HAVE_GLIB_2_8_DEFINE): Make the availability
of GLib 2.8 public, so we can know which refcount to check in
tests.
* gst/gstobject.c: Use the GST_HAVE_GLIB_2_8 define.
(gst_object_init): Only set the gst refcount if we're going ahead
with the refcount hack.
Original commit message from CVS:
* check/Makefile.am:
re-enable tests now that leaks are plugged
* check/gst/gst.c:
* check/gst/gstbin.c:
* check/gst/gstpipeline.c:
add some more tests while fixing leaks
* common/check.mak:
make sure binaries are uptodate when valgrinding/gdbing
* gst/gst.c:
* gst/gstelementfactory.c:
remove a ref too many, and add a FIXME for when we get
round to disposing of classes
* gst/gstplugin.c:
fix the refcounting when loading a plugin from a file and
the code pretends that the pointer is the same even though
of course it can change
* gst/gstpluginfeature.c:
unref plugins marked cached (a bit confusing as a name)
as the docs state should be done
various doc additions to explain refcounting
* gst/gstregistry.c:
* gst/gstregistryxml.c:
debugging
Original commit message from CVS:
* check/gst/gstplugin.c:
* gst/gstelementfactory.c:
* gst/gstplugin.c:
* gst/gstpluginfeature.c:
* gst/gstregistry.c:
Getting tired of debugging. Disabled all the unreffing of
plugins and features, which fixes the segfaults, but of
course leaks like crazy. At least playbin works.
Original commit message from CVS:
* check/Makefile.am:
* check/generic/states.c:
* gst/Makefile.am:
* gst/gst.c:
* gst/gst.h:
* gst/gst_private.h:
* gst/gstelementfactory.c:
* gst/gstindex.c:
* gst/gstinfo.c:
* gst/gstplugin.c:
* gst/gstplugin.h:
* gst/gstpluginfeature.c:
* gst/gstpluginfeature.h:
* gst/gstregistry.c:
* gst/gstregistry.h:
* gst/gstregistrypool.c: remove
* gst/gstregistrypool.h: remove
* gst/gsttypefind.c:
* gst/gsttypefindfactory.c:
* gst/gsturi.c:
* tools/Makefile.am:
* tools/gst-compprep.c:
* tools/gst-inspect.c:
* tools/gst-register.c: remove
* tools/gst-xmlinspect.c:
Registry rewrite. Changes registry from being a file created
by a tool into a simple cache file created automatically by
libgstreamer. Removed gst-register (because it's no longer
needed). Remove registry pools, because we only have one
registry implementation (XML). Fix up other subsystems as
necessary.
Original commit message from CVS:
* check/gst/gstbin.c: (START_TEST), (gst_bin_suite):
add test for state change message on a bin
* check/gst/gstelement.c: (START_TEST), (gst_element_suite):
add another test
* gst/gstbin.c: (gst_bin_init):
* gst/gstbus.c: (gst_bus_init), (gst_bus_post):
* gst/gstelement.c: (gst_element_post_message),
(gst_element_set_state):
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstmessage.c: (gst_message_new):
* gst/gstscheduler.c:
various debugging additions and cleanups
Original commit message from CVS:
* gst/gstelementfactory.c:
* gst/gstutils.h:
* gst/gstutils.c:
Moved gst_element_factory_can_[sink|src]_caps() to gstutils and added
the definition to the header file.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstobject.c: (gst_object_init),
(gst_object_set_name_default), (gst_object_set_name):
name objects by default, not in gst_element_factory_create. Allows
using elements created with g_object_new. (fixes#167283)
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gstelementfactory.c: (gst_element_factory_create):
Fix compile failure if compiling without libxml2 support (#149936).
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_explicit_caps):
check that caps are fixed
* gst/gstpad.c: (gst_pad_template_new):
don't try to simplify caps, costs too much time on gst_init
* gst/gstplugin.c: (gst_plugin_add_feature):
G_ERROR if features are added twice
* gst/gsttypefind.c: (gst_type_find_register):
* gst/gstelementfactory.c: (gst_element_register):
don't add features twice
* docs/random/ds/0.9-suggested-changes:
add note about possible gst_init optimization
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register):
set the factory in the class struct, so gst_element_get_factory
actually works
* gst/parse/grammar.y:
set element to playing when it gets unlocked as we can't rely on the
bin state - all elements in the bin state might still be locked in
NULL)
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
make the freakin "elementfactory bla has no type" message more
useful. So we actually can do something when someone shows up
complaining about it.
Original commit message from CVS:
* gst/autoplug/gstspider.c: (gst_spider_link_add):
don't ref the element, adding already reffed it. And we didn't unref
it later anyway... (huge memleak when you used many spider elements)
* gst/gstelement.c: (gst_element_base_class_finalize):
* gst/gstelementfactory.c: (gst_element_factory_cleanup),
(gst_element_register):
* gst/gsturi.c: (gst_element_make_from_uri):
use gst_object_(un)ref instead of g_object(un)ref
Original commit message from CVS:
2004-02-20 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c:
* gst/gstbuffer.c:
* gst/gstplugin.c:
* gst/registries/gstxmlregistry.c:
* gst/schedulers/gstoptimalscheduler.c: Debugging tweaks.
* gst/gstelement.c (gst_element_set_scheduler): Debugging fixes.
(gst_element_add_pad): DEBUG->INFO, some fixes.
(gst_element_get_compatible_pad_template): Just see if the
templates' caps intersect, not if one is a strict subset of the
other. This conforms more to what gst_pad_link_intersect() does.
(gst_element_class_add_pad_template): Don't memcpy the pad
template, just ref it.
(gst_element_get_compatible_pad_filtered): Clean up debug messages
* gst/gstpad.c (gst_pad_can_link_filtered): Debug a true result.
(gst_pad_link_filtered): Debug changes.
(gst_pad_link_prepare): New function, consolidated from
can_link_filtered and link_filtered.
* gst/parse/grammar.y (gst_parse_perform_link): Made INFO output
look more like that of the functions in gstelement.c
* gst/gstinfo.c (gst_debug_print_object): Put a space before the
object, and return the empty string if object is NULL.
* gst/parse/parse.l: Remove trailing newlines when calling PRINT.
* gst/parse/grammar.y (YYFPRINTF): Log bison debugging info via
LOG, not DEBUG. We still get flex info on debug.
* gst/registries/gstxmlregistry.c (gst_xml_registry_load): Make
debug string more verbose.
(plugin_times_older_than): DEBUG->LOG.
Original commit message from CVS:
implement URI schemes
Elements can now register as a source or sink for a protocol and applications can use gst_element_make_from_uri () to get an element that handles a given URI.
This patch provides:
- removal of old broken URI handling scheme.
- new URI handling using interfaces.
- updates for registry to save handled URIs.
- interface for URI handlers.
- implementation of that in filesrc and filesink for the file:// URI
- extension to pipeline parsing to allow specifying only a URI instead of element
Does not include:
- tests
- inclusion in docs build