1. 14 Jun, 2011 1 commit
  2. 19 Dec, 2010 1 commit
  3. 17 Dec, 2010 1 commit
  4. 07 Dec, 2010 2 commits
  5. 16 Sep, 2010 1 commit
  6. 26 Aug, 2010 1 commit
  7. 23 Jul, 2010 1 commit
    • Tim-Philipp Müller's avatar
      plugin: add release datetime field to GstPluginDesc and set it if... · 8c72758e
      Tim-Philipp Müller authored
      plugin: add release datetime field to GstPluginDesc and set it if GST_PACKAGE_RELEASE_DATETIME is defined
      
      This is a string describing a date and/or date/time in a simple subset of
      the ISO-8601 format, namely either "YYYY-MM-DD" or "YYYY-MM-DDTHH:MMZ" (with
      'T' the date/time separator and the 'Z' indicating UTC).
      
      The main purpose of this field is to keep track of plugin and element versions
      on an absolute timeline, so it's possible to determine which one is newer when
      comparing two date time numbers. This will allow us to express 'replaces'-type
      relationships betweeen plugins and element factories in future, even across
      different modules and plugin merges or splits (source module version numbers
      aren't particularly useful here, since they can only meaningfully be compared
      within the same module). It also allows applications and libraries to reliably
      check that a plugin is recent enough without making assumptions about modules
      or module versions.
      
      We use a string here to keep things simple and clear, esp. on the build system
      side of things.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=623040
      8c72758e
  8. 16 Jul, 2010 2 commits
  9. 23 Jun, 2010 2 commits
    • Tim-Philipp Müller's avatar
      binaryregistry: ignore the plugin cache if the filter environment has changed · 3410d665
      Tim-Philipp Müller authored
      Make sure that we properly update the registry and the cache file whenever
      the filter environment changes or there's no more filter set.
      3410d665
    • Tim-Philipp Müller's avatar
      pluginloading: add support for whitelisting based on plugin or source module name and path · 9c6b8751
      Tim-Philipp Müller authored
      This feature is primarily intended for use in plugin modules' unit tests.
      
      Consider the following situation: gst-plugins-good is built against an
      installed GStreamer core. An older version of gst-plugins-good is also
      installed in that prefix, along with random other plugin modules. Now,
      when doing 'make check' in the just-built gst-plugins-good tree, we
      want to only load plugins from GStreamer core, gst-plugins-base, and
      gst-plugins-good, but not random other modules (we don't want any unit
      tests to fail just because some module in gst-plugins-bad has a broken
      plugin_init, for example). Also, we want to only load gst-plugins-good
      modules from the locally-built source tree, but not any of the older
      gst-plugins-good modules installed. This is usually assured by loading
      the ones in the source tree first (by adding that path first to the
      right environment variables), but it gets tricky when plugins are
      moved, removed, merged, or renamed, or the plugin filename changes.
      
      Note that 'make check' should really work right without doing
      'make install' or uninstalling the old gst-plugins-good package (or
      any other gst-plugins-foo package) first.
      
      Enter GST_PLUGIN_LOADING_WHITELIST. This environment variable may
      contain source-package@path-prefix pairs separated by the platform
      search path separator (G_SEARCHPATH_SEPARATOR_S). The source package
      and path prefix are separated by the '@' character. The path prefix is
      entirely optional, as is the '@' separator if no path is given.
      
      It is also possible to filter based on plugin names instead of the name
      of the source-package by specifying one or more plugin names separated
      by commas before the optional path prefix.
      
      In short, the following match patterns are possible:
      
         plugin1,plugin2@pathprefix or
         plugin1,plugin2@* or just
         plugin1,plugin2 or
         source-package@pathprefix or
         source-package@* or just
         source-package
      
      So for our gst-plugins-good unit test example above, we  would set the
      environment variable on *nix to something like this (will likely be a
      relative path in practice):
      gstreamer:gst-plugins-base:gst-plugins-good@/path/to/src/gst-plugins-good
      
      Fixes #619815 and #619717.
      9c6b8751
  10. 28 Mar, 2010 1 commit
  11. 12 Mar, 2010 1 commit
    • Benjamin Otte's avatar
      plugins: Do not ever unload a plugin after calling into it · 8fe63000
      Benjamin Otte authored
      This is what can happen in a plugin_init function:
      - An element based on GstBaseSink is registered
      - Other elements fail to register
      - The plugin_init function returns FALSE
      
      Now if this the plugin is the first plugin to link against
      libgstbase.so, it will have caused libgstbase.so to be loaded and static
      strings from that library will have been added to gobject while
      registering GstBaseSink.
      
      So unloading the plugin will cause those strings to go stale and the
      next plugin using GstBaseSink will crash. So we must not unload modules
      after calling into them ever.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=572800
      8fe63000
  12. 11 Mar, 2010 1 commit
  13. 10 Mar, 2010 2 commits
  14. 09 Mar, 2010 1 commit
  15. 20 Jan, 2010 1 commit
  16. 28 Oct, 2009 2 commits
    • Edward Hervey's avatar
      optimisation : Use g_object_newv where possible. · 27284628
      Edward Hervey authored
      This avoids:
      * triple-checking for the GType when type-checking is enabled (see #597260)
      * Avoids going through an expensive no-argument checking which landed in
        glib-2.22
      * Avoids going through 2 extrac functions (g_object_new -> g_object_new_valist)
      27284628
    • Tim-Philipp Müller's avatar
      Remove GST_DEBUG_FUNCPTR where they're pointless · daecaf0e
      Tim-Philipp Müller authored
      There's not much point in using GST_DEBUG_FUNCPTR with GObject
      virtual functions such as get_property, set_propery, finalize and
      dispose, since they'll never be used by anyone anyway. Saves a
      few bytes and possibly a tenth of a polar bear.
      daecaf0e
  17. 08 Oct, 2009 1 commit
  18. 06 Oct, 2009 1 commit
    • Jan Schmidt's avatar
      Add some more debug the registry. · c7922fb8
      Jan Schmidt authored
      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.
      c7922fb8
  19. 10 Jun, 2009 2 commits
  20. 07 Jun, 2009 2 commits
  21. 12 May, 2009 1 commit
  22. 17 Apr, 2009 1 commit
  23. 06 Jan, 2009 1 commit
    • Tim-Philipp Müller's avatar
      Add API for making a GStreamer plugin 'dependent' on external files,... · 2ae03ba7
      Tim-Philipp Müller authored
      Add API for making a GStreamer plugin 'dependent' on external files, directories or environment variables, so that GS...
      
      Original commit message from CVS:
      * docs/gst/gstreamer-sections.txt::
      * gst/gst_private.h: (GstPluginDep), (_GstPluginPrivate):
      * gst/gstplugin.c: (gst_plugin_init), (gst_plugin_finalize),
      (gst_plugin_class_init), (gst_plugin_list_free),
      (gst_plugin_ext_dep_get_env_vars_hash),
      (_priv_plugin_deps_env_vars_changed),
      (gst_plugin_ext_dep_extract_env_vars_paths),
      (gst_plugin_ext_dep_get_hash_from_stat_entry),
      (gst_plugin_ext_dep_direntry_matches),
      (gst_plugin_ext_dep_scan_dir_and_match_names),
      (gst_plugin_ext_dep_scan_path_with_filenames),
      (gst_plugin_ext_dep_get_stat_hash),
      (_priv_plugin_deps_files_changed), (gst_plugin_ext_dep_free),
      (gst_plugin_ext_dep_strv_equal), (gst_plugin_ext_dep_equals),
      (gst_plugin_add_dependency), (gst_plugin_add_dependency_simple):
      * gst/gstplugin.h: (GstPluginPrivate), (GstPluginFlags),
      (GST_PLUGIN_DEPENDENCY_FLAG_NONE),
      (GST_PLUGIN_DEPENDENCY_FLAG_RECURSE),
      (GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY),
      (GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX),
      (GstPluginDependencyFlags), (GstPluginFilter):
      * gst/gstregistry.c: (gst_registry_scan_path_level):
      * gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
      (gst_registry_binary_save_plugin_dep),
      (gst_registry_binary_save_plugin),
      (gst_registry_binary_load_feature),
      (gst_registry_binary_load_plugin_dep_strv),
      (gst_registry_binary_load_plugin_dep),
      (gst_registry_binary_load_plugin):
      * gst/gstregistrybinary.h: (GST_MAGIC_BINARY_VERSION_STR),
      (GstBinaryPluginElement), (_GstBinaryDep), (GstBinaryDep):
      * gst/gstregistryxml.c: (gst_registry_xml_save_plugin):
      Add API for making a GStreamer plugin 'dependent' on external files,
      directories or environment variables, so that GStreamer knows when
      it needs to re-load GStreamer plugins that wrap other plugin systems.
      Fixes bug #350477.
      API: add gst_plugin_add_dependency()
      API: add gst_plugin_add_dependency_simple()
      2ae03ba7
  24. 15 Jul, 2008 1 commit
  25. 02 Jul, 2008 1 commit
    • Tim-Philipp Müller's avatar
      gst/gstplugin.c: Print error debug message if plugin description fields that... · 944de3aa
      Tim-Philipp Müller authored
      gst/gstplugin.c: Print error debug message if plugin description fields that should be set are NULL.
      
      Original commit message from CVS:
      * gst/gstplugin.c: (CHECK_PLUGIN_DESC_FIELD), (gst_plugin_load_file):
      Print error debug message if plugin description fields that should
      be set are NULL.
      * gst/gstregistrybinary.c: (gst_registry_binary_save_const_string):
      Don't crash if the string to serialise is NULL (it really should
      not be, but apparently this used to work with the xml registry ...).
      944de3aa
  26. 20 Jan, 2008 1 commit
    • Tim-Philipp Müller's avatar
      gst/gstplugin.c: Fix old-style static plugins via GST_PLUGIN_DEFINE_STATIC... · 22cf61b5
      Tim-Philipp Müller authored
      gst/gstplugin.c: Fix old-style static plugins via GST_PLUGIN_DEFINE_STATIC again, which I broke two commits ago when ...
      
      Original commit message from CVS:
      * gst/gstplugin.c: (_gst_plugin_initialize):
      Fix old-style static plugins via GST_PLUGIN_DEFINE_STATIC
      again, which I broke two commits ago when changing the API
      of gst_plugin_register_static(): the g_list_foreach() in
      _gst_plugin_register_static still assumed the old function
      signature and would therefore fail (re-fixes #510187).
      * gst/gstplugin.c: (_num_static_plugins), (_static_plugins),
      (_gst_plugin_register_static), (gst_plugin_register_static):
      Revert the (technically correct) change to call g_thread_init() from
      the pre-main() constructor. This will break programs which call
      g_thread_init() without an if (!g_thread_supported()) guard in their
      main function. We could just blame it on GLib or the application, but
      it's probably best to just avoid this altogether and simply not use
      any GLib functions here and use plain old malloc() with a simple
      array to store the plugins to register later when gst_init() is
      finally called (re-fixes #510187).
      * tests/check/gst/gstplugin.c: (GST_GNUC_CONSTRUCTOR_DEFINED),
      (GST_GNUC_CONSTRUCTOR_DEFINED), (plugin_init_counter),
      (plugin1_init), (plugin2_init), (plugin3_init), (GST_START_TEST),
      (GST_START_TEST), (gst_plugin_suite):
      Dumb unit test to make sure the old GST_PLUGIN_DEFINE_STATIC still
      works.
      22cf61b5
  27. 17 Jan, 2008 1 commit
    • Tim-Philipp Müller's avatar
      gst/: Change API of gst_plugin_register_static() to not take a GstPluginDesc,... · 33cd1422
      Tim-Philipp Müller authored
      gst/: Change API of gst_plugin_register_static() to not take a GstPluginDesc, but rather just take all the arguments ...
      
      Original commit message from CVS:
      * gst/gst.c: (init_post):
      * gst/gstplugin.c: (_gst_plugin_register_static),
      (gst_plugin_register_static), (_gst_plugin_initialize):
      * gst/gstplugin.h: (GstPluginFilter):
      Change API of gst_plugin_register_static() to not take
      a GstPluginDesc, but rather just take all the arguments
      in a GstPluginDesc directly. This is more intuitive and
      avoids certain mistakes when porting code from
      GST_PLUGIN_DEFINE_STATIC to gst_plugin_register_static().
      Fixes #510187.
      * tests/check/gst/gstplugin.c:
      Fix up for changed API.
      33cd1422
  28. 09 Jan, 2008 1 commit
    • Tim-Philipp Müller's avatar
      API: add gst_plugin_register_static() and deprecate · 4a3f1630
      Tim-Philipp Müller authored
      Original commit message from CVS:
      * docs/gst/gstreamer-sections.txt:
      * gst/gst.c: (init_post):
      * gst/gstplugin.c: (_gst_plugin_register_static),
      (gst_plugin_register_static), (_gst_plugin_initialize),
      (gst_plugin_register_func):
      * gst/gstplugin.h: (GST_PLUGIN_DEFINE_STATIC):
      API: add gst_plugin_register_static() and deprecate
      GST_PLUGIN_DEFINE_STATIC, since it's not portable
      (#498924).
      Also, in _gst_plugin_register_static(), make sure to call
      g_thread_init() before calling GLib functions such as
      g_list_append() if we're not initialised yet, since that
      may lead to random crashes with older GSlice/GLib versions.
      * tests/check/gst/gstplugin.c:
      Adapt unit test to above changes.
      4a3f1630
  29. 11 Dec, 2007 1 commit
  30. 06 Nov, 2007 1 commit
    • Tim-Philipp Müller's avatar
      gst/gst.c: Make _gst_disable_segtrap static, it's only used in gstplugin.c... · efaea50c
      Tim-Philipp Müller authored
      gst/gst.c: Make  _gst_disable_segtrap static, it's only used in gstplugin.c and we can use gst_segtrap_is_enabled() t...
      
      Original commit message from CVS:
      * gst/gst.c: (_gst_disable_segtrap):
      Make  _gst_disable_segtrap static, it's only used in gstplugin.c and
      we can use gst_segtrap_is_enabled() there now that we have that API.
      Move _gst_debug_dump_dot_dir into gstdebugutils.c, there's no reason
      to do the getenv here (and export the variable).
      * gst/gstdebugutils.c: (debug_dump_element),
      (_gst_debug_bin_to_dot_file), (_gst_debug_bin_to_dot_file_with_ts):
      Don't use VLAs which is a C99ism and throws off MSVC (#493983).
      * gst/gstinfo.c: (_priv_gst_info_start_time), (_gst_debug_init),
      (gst_debug_log_default):
      Rename _gst_info_start_time to priv_gst_info_start_time so it
      doesn't get exported (was never in any header).
      * gst/gstplugin.c: (_gst_plugin_fault_handler_setup),
      (gst_plugin_loading_mutex):
      Make static mutex gst_plugin_loading_mutex really static (was never
      in any header), and use gst_segtrap_is_enabled() instead of
      _gst_disable_segtrap.
      * gst/gsttrace.c: (_gst_trace_default):
      Make local _gst_trace_default static (was never in any header).
      efaea50c
  31. 09 Oct, 2007 1 commit
    • Tim-Philipp Müller's avatar
      gst/: Put more strings into the GLib quark table. No need to keep a... · a90dc9f0
      Tim-Philipp Müller authored
      gst/: Put more strings into the GLib quark table. No need to keep a hundred-something copies of identical version str...
      
      Original commit message from CVS:
      * gst/gstplugin.c:
      * gst/gstplugin.h:
      * gst/gstregistrybinary.c:
      * gst/gstregistryxml.c:
      Put more strings into the GLib quark table. No need to keep
      a hundred-something copies of identical version strings,
      license strings, package name strings and package origin
      strings around.
      a90dc9f0
  32. 03 Oct, 2007 1 commit
  33. 24 Sep, 2007 1 commit