Commit graph

47 commits

Author SHA1 Message Date
Sebastian Dröge
039ef83523 registry: API: Add gst_{default,}_registry_get_feature_list_cookie()
This returns the internal feature list cookie, which changes every
time a feature is added or removed. This can be used by elements
to check if they should update their cached feature lists.
2009-11-10 18:17:26 +01:00
Sebastian Dröge
b04f7489bf registry: private is a C++ keyword, don't use it
...otherwise C++ compilers will complain when including gstregistry.h
2009-10-24 11:58:25 +02:00
Edward Hervey
9e792ee5b8 gstregistry: Add a cookie for detecting feature list changes
We also create a private structure, since we will need to add more
data there in following patches.
2009-10-24 10:39:13 +02:00
Wim Taymans
368b7899c0 registry: hash the plugin basename
Maintain a hashtable of the plugin basename. We can then use this
hashtable to speedup the search for an existing plugin and avoid
a whole lot of strcmp calls.
2009-10-20 23:28:54 -04:00
Jan Schmidt
51675e0c2a registry: Add registry helper phase 1
Phase 1 of adding the registry scan helper
2009-10-06 19:51:42 +01:00
Stefan Kost
3c9dda6df9 Move registry backend API to private headers where we can. Add fixme-0.11 comments for the others. Add stubs for the ...
Original commit message from CVS:
* configure.ac:
* gst/gst_private.h:
* gst/gstconfig.h.in:
* gst/gstregistry.h:
* gst/gstregistrybinary.c:
* win32/common/gstconfig.h:
Move registry backend API to private headers where we can. Add
fixme-0.11 comments for the others. Add stubs for the xml backend when
using the binary to ensure they functions exists (they should not be
used though). Fixes #520756.
2008-03-07 11:12:59 +00:00
Tim-Philipp Müller
5db802f98f Fix broken use of config.h-defined preprocessor directive in a public header file. Add a corresponding define to gstc...
Original commit message from CVS:
* configure.ac:
* gst/gstconfig.h.in:
* gst/gstregistry.h:
Fix broken use of config.h-defined preprocessor directive in a public
header file. Add a corresponding define to gstconfig.h, since we can't
really remove those function declarations from the header file now
(or can we? and why are they there in the first place?).
2008-03-03 14:43:26 +00:00
Michael Smith
397128ac28 gst/gstregistry.h: Add gst_registry_add_path, which was missing from this header.
Original commit message from CVS:
* gst/gstregistry.h:
Add gst_registry_add_path, which was missing from this header.
2007-08-10 14:40:26 +00:00
Stefan Kost
a6b990938e gst/gstregistry.*: Speed up gst_registry_lookup_feature_locked() by using a hashmap.
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_init), (gst_registry_finalize),
(gst_registry_remove_features_for_plugin_unlocked),
(gst_registry_add_feature), (gst_registry_remove_feature),
(gst_registry_lookup_feature_locked):
* gst/gstregistry.h:
Speed up gst_registry_lookup_feature_locked() by using a hashmap.
Fixes #459501.
2007-07-23 11:42:12 +00:00
Stefan Kost
ebf0c9d353 commit binary registry (disabled by default, see #359653)
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* gst/Makefile.am:
* gst/gstregistry.c: (gst_registry_lookup_feature_locked),
(gst_registry_lookup_locked):
* gst/gstregistry.h:
* gst/gstregistrybinary.c: (gst_registry_binary_write),
(gst_registry_binary_initialize_magic),
(gst_registry_binary_save_string),
(gst_registry_binary_save_pad_template),
(gst_registry_binary_save_feature),
(gst_registry_binary_save_plugin),
(gst_registry_binary_write_cache),
(gst_registry_binary_check_magic),
(gst_registry_binary_load_pad_template),
(gst_registry_binary_load_feature),
(gst_registry_binary_load_plugin),
(gst_registry_binary_read_cache):
* gst/gstregistrybinary.h:
* gst/gstregistryxml.c: (load_feature),
(gst_registry_xml_read_cache):
commit binary registry (disabled by default, see #359653)
2007-01-11 13:45:51 +00:00
Jan Schmidt
d1effe5859 gst/: Re-commit the registry changes, along with an extra fix:
Original commit message from CVS:
* gst/gst.c: (init_pre), (scan_and_update_registry),
(ensure_current_registry_nonforking),
(ensure_current_registry_forking), (ensure_current_registry),
(init_post), (gst_debug_help), (gst_deinit):
* gst/gst_private.h:
* gst/gstregistry.c: (gst_registry_finalize),
(gst_registry_remove_features_for_plugin_unlocked),
(gst_registry_remove_plugin), (gst_registry_scan_path_level),
(gst_registry_scan_path),
(_priv_gst_registry_remove_cache_plugins),
(_priv_gst_registry_cleanup):
* gst/gstregistry.h:
Re-commit the registry changes, along with an extra fix:
When a cached plugin is encountered at a different file path,
update the stored path in the registry cache so that the parent
process knows where it actually is now when it re-reads the registry
cache. Fixes the thing that broke distcheck with the previous commit.
* tests/check/Makefile.am:
Clean up files named 'core' too when running make clean.
* tests/examples/manual/Makefile.am:
Set up a registry path for running these tests, and clean it properly
for distcheck.
2006-09-28 14:00:43 +00:00
Jan Schmidt
a8bbbf2e2d gst/: Revert previous change until I figure out why it breaks distcheck.
Original commit message from CVS:
* gst/gst.c: (init_pre), (scan_and_update_registry),
(ensure_current_registry_nonforking),
(ensure_current_registry_forking), (ensure_current_registry),
(init_post), (gst_debug_help), (gst_deinit):
* gst/gst_private.h:
* gst/gstregistry.c: (gst_registry_finalize),
(gst_registry_remove_plugin), (gst_registry_scan_path_level),
(gst_registry_scan_path), (_gst_registry_remove_cache_plugins),
(_gst_registry_cleanup):
* gst/gstregistry.h:
Revert previous change until I figure out why it breaks distcheck.
2006-09-27 17:42:47 +00:00
Jan Schmidt
b5cd597ca9 gst/gst.c: Make init_pre and init_post take the full complement of GOptionFunc args so they can return useful GErrors...
Original commit message from CVS:
* gst/gst.c: (init_pre), (scan_and_update_registry),
(ensure_current_registry_nonforking),
(ensure_current_registry_forking), (ensure_current_registry),
(init_post), (gst_debug_help), (gst_deinit):
Make init_pre and init_post take the full complement of GOptionFunc
args so they can return useful GErrors. Make the registry updating
functions do so.
Call _priv_gst_registry_remove_cache_plugins after scanning files to
ensure that the registry we're about to write out doesn't contain
stale information about old-deleted plugin files.
Make _priv_gst_registry_remove_cache_plugins return a boolean so
that deletion of plugin files is considered a registry change.
* gst/gst_private.h:
* gst/gstregistry.c: (gst_registry_finalize),
(gst_registry_remove_features_for_plugin_unlocked),
(gst_registry_remove_plugin), (gst_registry_scan_path_level),
(gst_registry_scan_path),
(_priv_gst_registry_remove_cache_plugins),
(_priv_gst_registry_cleanup):
* gst/gstregistry.h:
Rename _gst_registry_remove_cache_plugins and _gst_registry_cleanup
by adding _priv prefix, so that they won't appear in the global
symbol table. They still do atm though because of #318031. Move the
prototypes to gst_private.h
When removing a plugin, remove all features for that plugin too.
Fixes #340878.
2006-09-27 16:52:59 +00:00
Stefan Kost
41bad82bfa make --disable-index work (#342564)
Original commit message from CVS:
* gst/gstregistry.h:
* gst/gstregistryxml.c: (load_feature),
(gst_registry_xml_read_cache), (gst_registry_xml_save_feature):
* win32/common/config.h:
make --disable-index work (#342564)
2006-07-18 19:01:25 +00:00
Stefan Kost
13c4169d9d gst/: only write out registry if it has changed, fixes #338339
Original commit message from CVS:
* gst/gst.c:
* gst/gstregistry.c: (gst_registry_scan_path_level),
(gst_registry_scan_path):
* gst/gstregistry.h:
only write out registry if it has changed, fixes #338339
2006-04-28 20:47:23 +00:00
Michael Smith
81cc6d92ba gst/: Rewrite registry-saving to avoid race conditions and check for failed writes.
Original commit message from CVS:
* gst/gstregistry.h:
* gst/gstregistryxml.c: (gst_registry_save),
(gst_registry_save_escaped), (gst_registry_xml_save_caps),
(gst_registry_xml_save_pad_template),
(gst_registry_xml_save_feature), (gst_registry_xml_save_plugin),
(gst_registry_xml_write_cache):
Rewrite registry-saving to avoid race conditions and check for
failed writes.
2006-03-08 12:57:37 +00:00
Wim Taymans
381742562f gst/: Fix docs again.
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_add_path):
* gst/gstregistry.h:
* gst/gstregistryxml.c:
Fix docs again.
Removed old code from gstregistryxml.c
2005-12-02 12:34:47 +00:00
Thomas Vander Stichele
870761131b various fixes to make
Original commit message from CVS:

* configure.ac:
* gst/Makefile.am:
* gst/gst.c:
* gst/gstplugin.h:
* gst/gstregistry.h:
* tests/benchmarks/complexity.c:
* tests/benchmarks/mass-elements.c:
* tests/check/Makefile.am:
* tools/Makefile.am:
* tools/gst-inspect.c:
* tools/gst-xmlinspect.c:
various fixes to make
--disable-nls --disable-registry --disable-loadsave           --disable-parse --disable-gst-debug
work and get the core .so down to 360444 bytes after stripping
2005-11-30 19:01:53 +00:00
Michael Smith
468d8b8034 gst/: Remove unimplemented declarations for which we can see no sensible use.
Original commit message from CVS:
* gst/gstplugin.h:
* gst/gstregistry.h:
Remove unimplemented declarations for which we can see no sensible
use.
2005-11-21 18:10:13 +00:00
Stefan Kost
77a1cfd244 gst/gstregistry.*: added missing docs
Original commit message from CVS:
* gst/gstregistry.c:
* gst/gstregistry.h:
added missing docs
2005-11-04 15:02:48 +00:00
Thomas Vander Stichele
2dd1598c56 whitespace fixes
Original commit message from CVS:
whitespace fixes
2005-10-15 15:30:24 +00:00
Tim-Philipp Müller
45258dbc4c Add new API to check plugin feature version requirements.
Original commit message from CVS:
* gst/gstpluginfeature.c: (gst_plugin_feature_check_version):
* gst/gstpluginfeature.h:
* gst/gstregistry.c: (gst_default_registry_check_feature_version):
* gst/gstregistry.h:
* docs/gst/gstreamer-sections.txt:
Add new API to check plugin feature version requirements.
* check/gst/gstplugin.c: (test_version_checks), (gst_plugin_suite):
Some basic tests for the above.
2005-10-14 11:09:29 +00:00
David Schleef
6e96e1bff5 docs/gst/Makefile.am: Ignore a few more internal headers
Original commit message from CVS:
* docs/gst/Makefile.am: Ignore a few more internal headers
* docs/gst/gstreamer-docs.sgml: Remove old sections
* docs/gst/gstreamer-sections.txt: Remove old sections
* docs/gst/tmpl/gstobject.sgml: update
* docs/gst/tmpl/gstplugin.sgml: update
* docs/gst/tmpl/gstpluginfeature.sgml: update
* docs/random/ds/0.9-suggested-changes: update.
* gst/Makefile.am: remove memchunk and trashstack, since they're
not used.
* gst/gst.c: (gst_deinit): rename gst_registry_deinit to _cleanup
* gst/gst.h: don't include some headers
* gst/gstchildproxy.c: add gstmarshal.h
* gst/gstclock.c: Don't use memchunks
* gst/gstminiobject.c: Add some docs
* gst/gstobject.c: remove DESTROYED flag, since it's redundant
* gst/gstobject.h: same
* gst/gstplugin.c: include gstmacros.h
* gst/gstplugin.h: don't include gstmacros.h, since it's private
* gst/gstquery.c: don't use memchunks
* gst/gstregistry.c: rename gst_registry_deinit()
* gst/gstregistry.h: same
2005-09-20 06:28:33 +00:00
Andy Wingo
39c04c8b2f gst/gstregistry.h: Spacing fixen.
Original commit message from CVS:
2005-09-19  Andy Wingo  <wingo@pobox.com>

* gst/gstregistry.h: Spacing fixen.
2005-09-19 15:12:25 +00:00
Thomas Vander Stichele
87ec30aa38 various cleanups and memleak plugging. make valgrind is happy now.
Original commit message from CVS:
various cleanups and memleak plugging.  make valgrind is happy now.
2005-09-18 21:24:55 +00:00
David Schleef
cb798ac570 check/Makefile.am: Fix environment variables.
Original commit message from CVS:
* check/Makefile.am: Fix environment variables.
* check/gst/gstplugin.c: Fix for API changes.
* tools/gst-inspect.c: Fix for API changes.
* tools/gst-xmlinspect.c: Fix for API changes.
* gst/gstelementfactory.c:
* gst/gstplugin.c:
* gst/gstplugin.h:
* gst/gstpluginfeature.c:
* gst/gstpluginfeature.h:
* gst/gstregistry.c:
* gst/gstregistry.h:
* gst/gstregistryxml.c:
* gst/gsttypefind.c:
* gst/gsttypefindfactory.c:
* gst/indexers/gstfileindex.c:
* gst/indexers/gstmemindex.c:
* gst/schedulers/Makefile.am:
Change registry to keep track of both plugins and features,
removing the feature tracking from plugins themselves.
2005-09-18 06:59:25 +00:00
David Schleef
c43514eb59 check/: Add test
Original commit message from CVS:
* check/Makefile.am:
* check/gst/gstplugin.c: Add test
* gst/gstplugin.c: Fix problems noticed by testsuite
* gst/gstplugin.h:
* gst/gstregistry.c:
* gst/gstregistry.h:
2005-09-15 23:51:24 +00:00
David Schleef
a3bac0703c remove
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.
2005-09-15 00:13:26 +00:00
Ronald S. Bultje
d742d805d4 gst/: Fix macro's for Mingw (fixes #162276).
Original commit message from CVS:
Reviewed by:  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
* gst/gstregistry.h:
* gst/registries/gstxmlregistry.c:
Fix macro's for Mingw (fixes #162276).
2005-01-05 11:15:04 +00:00
David Schleef
a2a974bfae A bunch of portability fixes, derived from Steve Lhomme's MSVC
Original commit message from CVS:
A bunch of portability fixes, derived from Steve Lhomme's MSVC
patch (bug #141317):
* gst/gst-i18n-lib.h: Allow disabling gettext.
* gst/gstatomic_impl.h: disable warning when it's dumb.
* gst/gstclock.c: fix include
* gst/gstcompat.h: fix variadic macro
* gst/gstinfo.c: fix include
* gst/gstmacros.h: add defines for inlines on MSVC
* gst/gstplugin.c: fix includes
* gst/gstregistry.c: fix includes
* gst/gstregistry.h: use S_IREAD, etc., if S_IRUSR isn't defined
* gst/gstsystemclock.c: fix include
* gst/gsttrace.c: (gst_trace_new), (gst_trace_text_flush): use
S_IREAD if S_IRUSR isn't defined.  fix use of non-portable functions
* gst/registries/gstxmlregistry.c:
(gst_xml_registry_parse_element_factory): fix use of non-portable
functions
* libs/gst/control/dparam.h: Remove trailing comma in enum definition
* libs/gst/control/dparammanager.h: same
2004-04-28 23:26:06 +00:00
Johan Dahlin
ecd88e381d Revert again, this time without post-commit reindent hooks to put back the indentation :-)
Original commit message from CVS:
Revert again, this time without post-commit reindent hooks
to put back the indentation :-)
2004-03-15 14:43:35 +00:00
Johan Dahlin
e2b3dc3e47 *.h: Revert indentation changes.
Original commit message from CVS:
* *.h: Revert indentation changes.
2004-03-15 14:31:41 +00:00
Thomas Vander Stichele
a967370df5 gst-indent run on core
Original commit message from CVS:
gst-indent run on core
2004-03-13 15:27:01 +00:00
David Schleef
1cd87b37e5 Change GST_.*_PADDING to _gst_padding[GST_PADDING];
Original commit message from CVS:
Change GST_.*_PADDING to _gst_padding[GST_PADDING];
2003-12-09 02:39:31 +00:00
David Schleef
85a63494bf Add padding to structures and objects
Original commit message from CVS:
Add padding to structures and objects
2003-10-07 21:58:42 +00:00
Thomas Vander Stichele
582913dc84 make the user registry location major-minor versioned so it doesn't clash with older incompatible registries make gst...
Original commit message from CVS:
* make the user registry location major-minor versioned so it doesn't
clash with older incompatible registries
* make gst-register output the location of the registry it's writing
2003-04-23 19:59:38 +00:00
Wim Taymans
eb5536af92 - Added infrastructure to run a filter against plugins, registries and registrypools. This makes it possible to creat...
Original commit message from CVS:
- Added infrastructure to run a filter against plugins, registries and
registrypools. This makes it possible to create custom code to filter
out the plugins/features you're interested in.
2003-04-14 18:53:03 +00:00
Wim Taymans
b030b5cef2 - Add more --disable options
Original commit message from CVS:
- Add more --disable options
- fix makefiles to only compile non-disabled features
- some compile fixes.
- removed extratypes, added gsturitype
- make get/set clock on a bin overridable
- some portability fixes for GUINT64
- separate pools from gstregistry.[ch] into gstregistrypool.[ch]
- make gstobject size fixed, even if we disabled load/save
- don't use 'new' as a variable as it is not a valib C++ variable
2003-02-10 20:32:32 +00:00
Wim Taymans
68b53ac4ab - Cleanups
Original commit message from CVS:
- Cleanups
- Added padding to structs
- fixed typechecking/casts
- reduced casts
- implemented remove_element in gstbin
- implemented set index on bin
2002-12-19 21:31:03 +00:00
Christian Schaller
2d9c2e484b commiting Leifs registry to /var/cache patch, works well for me :)
Original commit message from CVS:
commiting Leifs registry to /var/cache patch, works well for me :)
2002-11-28 13:29:52 +00:00
Thomas Vander Stichele
cf4d566d0b adding EXISTS flag
Original commit message from CVS:
adding EXISTS flag
2002-08-11 21:00:18 +00:00
Thomas Vander Stichele
dcb3cec6a0 merge from BRANCH-RELEASE-0_4_0
Original commit message from CVS:
merge from BRANCH-RELEASE-0_4_0
2002-07-09 10:27:22 +00:00
Wim Taymans
c8e8981be8 Documentation updates
Original commit message from CVS:
Documentation updates
Make spider forward bufferpools
Remove some old registry code
2002-06-12 22:26:36 +00:00
David I. Lehn
9151cbc830 remove duplicate gst_registry_pool_add declaration
Original commit message from CVS:
remove duplicate gst_registry_pool_add declaration
2002-05-10 06:49:18 +00:00
Wim Taymans
086de421dc Totally rewritten registry handling.
Original commit message from CVS:
Totally rewritten registry handling.
- move the registry save/load code into a gstregistry subclass, this
will make it possible to use other registries (flat file, web based,
RDBMS type, etc..)
- a simple GMarkup xml registry is implemented
- use standard statically linked plugins for core elements.
- GstPlugin has a very well defined set of functions now
A little bytestream hack..
Added more info to -inspect.
Some more debugging info for clocking.
Small cleanups

I use ./gst-register --gst-plugin-path=/opt/src/sourceforge/gst-plugins/gst-libs:/opt/src/sourceforge/gst-plugins/
to register core and gst-plugins now.
2002-05-08 20:40:48 +00:00
Thomas Vander Stichele
4013bb45d6 reg.xml to registry.xml adding spaces
Original commit message from CVS:
* reg.xml to registry.xml
* adding spaces
2002-04-12 18:26:17 +00:00
Thomas Vander Stichele
e00bcd6792 registry handling changes read up on it in docs/random/thomasvs/registry if interested net effect should be transpare...
Original commit message from CVS:
registry handling changes
read up on it in docs/random/thomasvs/registry if interested
net effect should be transparent; ie. it will keep on working, but will
be more flexible than before.  Testing with garnome seems to work now.
Should probably be rewritten completely, together with plugin loading, but
only after we spec it out ;) It's a bit messy.
2002-04-12 09:53:00 +00:00