Commit graph

291 commits

Author SHA1 Message Date
Stefan Kost
646d436799 gst: this is an internal function where we already ensure !NULL when calling 2010-03-15 11:17:21 +02:00
Benjamin Otte
8fa19a360c win32: Add prototype for DllMain() 2010-03-11 18:37:24 +01:00
Benjamin Otte
a9d1a493a7 Fixes for -Wwrite-strings
This changes some APIs in compatible ways:
- Some functions now take "const char *" arguments, not "char *"
- Some structs now have "conts char *" members, not "char *"
The changes may cause warnings when compiling with the right warning
flags. You've been warned.

Also adds -Wwrite-strings as a warning flag in configure.ac.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:50:10 +01:00
Benjamin Otte
3234c0128b Fixes for -Wold-style-definition
https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:45:35 +01:00
Tim-Philipp Müller
6c6f20e0b6 init: don't spew warning about late g_thread_init()s if GLib >= 2.23.2
Late g_thread_init() is fine with newer GLib versions and done automatically
from g_type_init() there, so don't warn if the application hasn't called
g_thread_init() yet when gst_init() is called with new GLib versions.

Fixes #608398.
2010-01-30 13:45:58 +00:00
Sebastian Dröge
f137d188cb build: Define G_THREADS_MANDATORY everywhere
We require threads to be supported in any case and defining this
will simplify the mutex, condition variable, etc. macros from gthread
to not always check if threads are really supported.

Fixes bug #607481.
2010-01-20 09:51:16 +01:00
Stefan Kost
cfebdcd452 annotations: add annotations to gst_init_check too 2009-10-28 10:14:36 +02:00
Stefan Kost
b66a4dbd42 docs: tell more about what happens in gst_init.
Add links to gst_update_registry and the env-vars.
2009-10-28 09:58:52 +02:00
Stefan Kost
369a63b11c docs: remove reference to OGI and rephrase sections docs
The OGI links are dead, so remove them. Also remove the paragraph that pointed
to OGI and DS. Only mentioning DS there made it a but pointless. Add a generic
paragraph instead that tells a bit about the usecases gstreamer covers.
2009-10-28 09:38:45 +02:00
Jan Schmidt
1f4e477033 registry: Rearrange some things.
Prepare to land the external plugin helper process
2009-10-06 19:51:41 +01:00
Sebastian Dröge
7c031ae4d0 gst: Add gobject-introspection support
Partially fixes bug #550616.
2009-09-05 10:28:46 +02:00
Tim-Philipp Müller
d628988e0a make check: add check for enum type class unrefs in gst_deinit() too
Just because we can really.
2009-06-24 09:28:01 +01:00
Jan Schmidt
c2e980f827 init: Fix indent, and ref the gst_buffer_list_item_get_type() class
Fix the check tests by reffing the GstBufferList class. Run gst-indent
to make git happy about some existing stuff
2009-06-21 00:09:53 +01:00
Руслан Ижбулатов
7ad8d2e54c Replaced deprecated win32-compatibility function with undeprecated one.
Fixes #560442.
2009-06-17 09:52:33 +01:00
Tim-Philipp Müller
fb007e5d50 Initialise some more types in gst_init(), esp. the new enum types
Possibly fixes GObject class creation/unref race conditions when
creating the last-message string in fakesink for events with
structures that have fields with these enum types.
2009-05-12 20:58:32 +01:00
Jonas Holmberg
d99cf4db1b bufferlist: add docs/build/debug/unittest
See #572285
2009-05-12 15:18:52 +02:00
Tim-Philipp Müller
01b93c1ef2 xmlregistry: remove the old xml registry
No point in keeping it around really. Fixes #577926.
2009-05-12 00:09:58 +01:00
Yaakov Selkowitz
eacfe25cf9 gst_init: relocatability is unnecessary on Cygwin
See #555978.
2009-04-17 11:39:59 +01:00
Wim Taymans
0c059ad2de windows: initial commit for terminal colors 2009-03-18 17:30:12 +01:00
David Adam
7d7fceced5 config.h needs to be included first, either directly or via gst_private.h
Fixes build with -Werror caused by '_FILE_OFFSET_BITS redefined' warning on
OpenSolaris where _FILE_OFFSET_BITS may be defined both in our config.h
and via stdio.h (#575695).
2009-03-17 20:41:44 +00:00
Sebastian Dröge
3c6448c64e API: Add gst_util_array_binary_search() for binary searchs on a sorted array
This will be mostly useful in all elements that have some kind of internal
seek/index table. Currently almost all of them (or even all of them)
are using a linear search although the used array is already sorted,
wasting some CPU time without good reason.

Fixes bug #573623.
2009-03-02 16:17:45 +01:00
Sebastian Dröge
c2b856e699 Replace some mentions of CVS by GIT 2009-02-08 10:28:59 +01:00
Stefan Kost
291c2822f8 gst/gst.c: Create a registry if there is none also when the option for gst-disable-registry-update has been selected....
Original commit message from CVS:
* gst/gst.c:
Create a registry if there is none also when the option for
gst-disable-registry-update has been selected. Fixes #567002
2009-01-08 13:41:19 +00:00
Tim-Philipp Müller
b8b0c80b29 gst/gst.c: Ref new enum type in gst_init.
Original commit message from CVS:
* gst/gst.c: (init_post):
Ref new enum type in gst_init.
* win32/common/libgstreamer.def:
Add recently-added API.
2009-01-06 18:10:22 +00:00
David Schleef
e716f92dd7 gst/gst.c: Search for plugins on win32 based on the location of the gstreamer DLL. Fixes #548786
Original commit message from CVS:
* gst/gst.c:
Search for plugins on win32 based on the location of the
gstreamer DLL.  Fixes #548786
2008-12-05 20:32:03 +00:00
Frederic Crozat
f8cf146ed4 gst/gst.c: Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding (#5468...
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* gst/gst.c: (init_pre):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822).
2008-08-07 15:49:00 +00:00
Robert Schwebel
1695ddb9dd gst/gst.c: Include gstconfig.h as macros from it are used. Fixes bug #545607.
Original commit message from CVS:
Patch by: Robert Schwebel <r.schwebel@pengutronix.de>
* gst/gst.c:
Include gstconfig.h as macros from it are used. Fixes bug #545607.
2008-07-31 15:24:21 +00:00
Sebastian Dröge
4bfb1fe70c Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* docs/gst/gstreamer.types.in:
* gst/Makefile.am:
* gst/gst.c:
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_index_func):
* gst/gstconfig.h.in:
* gst/gstelement.c: (gst_element_get_index):
* gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
(gst_registry_binary_load_feature),
(gst_registry_binary_read_cache):
* gst/gstregistryxml.c: (load_feature),
(gst_registry_xml_read_cache), (gst_registry_xml_save_feature):
* plugins/Makefile.am:
* tools/gst-indent:
* tools/gst-inspect.c: (print_index_info), (print_element_list),
(print_plugin_features), (print_element_features):
* tools/gst-xmlinspect.c: (print_event_masks),
(print_element_info):
* win32/common/gstconfig.h:
Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere.
Disabling the indexers and URI handler code will only reduce the
required amount of memory by a very small amount but on the other hand
requires much more maintaince work. Apart from that many places of
code are broken when disabling them.
Disabling the enum types doesn't reduce the required amount of memory
by more than a few bytes and makes it hard to fix bugs like #539772,
i.e. use the enums as GObject properties.
2008-07-31 15:20:32 +00:00
Sebastian Dröge
d434f41f85 gst/gst.c: Fix scanning of paths given via --gst-plugin-path. Fixes bug #542175.
Original commit message from CVS:
* gst/gst.c:
Fix scanning of paths given via --gst-plugin-path. Fixes bug #542175.
2008-07-12 17:51:16 +00:00
Tim-Philipp Müller
ebc08ddfb9 API: gst_parse_launch_full()
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gst.c: (init_post):
* gst/gst_private.h: (_GstParseContext):
* gst/gstparse.c: (gst_parse_error_quark), (gst_parse_context_new),
(gst_parse_context_free), (gst_parse_context_get_missing_elements),
(gst_parse_launchv), (gst_parse_launchv_full), (gst_parse_launch),
(gst_parse_launch_full):
* gst/gstparse.h: (GST_PARSE_FLAG_NONE), (GST_PARSE_FLAG_FATAL_ERRORS),
(GstParseFlags), (GstParseContext):
* gst/gstutils.c: (gst_parse_bin_from_description),
(gst_parse_bin_from_description_full):
* gst/gstutils.h:
* gst/parse/grammar.y:
* gst/parse/types.h:
* win32/common/libgstreamer.def:
Add new gst_parse_*_full API (#528178):
API: gst_parse_launch_full()
API: gst_parse_launchv_full()
API: gst_parse_bin_from_description_full()
API: gst_parse_context_new()
API: gst_parse_context_free()
API: gst_parse_context_get_missing_elements()
2008-05-24 15:33:53 +00:00
Sebastian Dröge
37dbd31f72 gst/gst.c: Register GstClock type from a type-safe context. Fixes bug #530317.
Original commit message from CVS:
* gst/gst.c:
Register GstClock type from a type-safe context. Fixes bug #530317.
2008-04-28 09:21:33 +00:00
Tim-Philipp Müller
e46f846c1f Ref some more classes in gst_init() to work around thread-safety issues in pre-2.16 GLibs, and add basic unit test.
Original commit message from CVS:
* gst/gst.c: (init_post), (gst_deinit):
* tests/check/gst/gstpipeline.c: (GST_START_TEST), (pipeline_thread),
(test_concurrent_create), (gst_pipeline_suite):
Ref some more classes in gst_init() to work around thread-safety
issues in pre-2.16 GLibs, and add basic unit test.
2008-04-25 10:01:46 +00:00
Jason Zhao
d9c9c264e2 Enable/disable scan_and_update_registry() based on commandline switch or environment variable. Fixes #520468.
Original commit message from CVS:
patch by: Jason Zhao <e3423c@motorola.com>
* docs/gst/running.xml:
* gst/gst.c:
Enable/disable scan_and_update_registry() based on commandline switch
or environment variable. Fixes #520468.
* ChangeLog:
Fix typo in my previous commit.
2008-04-24 15:14:54 +00:00
Tim-Philipp Müller
7518460315 gst/gst.c: Pre-register GstGError GType from a thread-safe context (fixes #527967); unref enum type classes in deinit.
Original commit message from CVS:
* gst/gst.c: (init_post), (gst_deinit):
Pre-register GstGError GType from a thread-safe context
(fixes #527967); unref enum type classes in deinit.
2008-04-14 08:48:50 +00:00
Julien Moutte
224b878ff7 Mac OS X love...
Original commit message from CVS:
2008-04-11  Julien Moutte  <julien@fluendo.com>

Mac OS X love...
* configure.ac: Merge platform specific defines, introduce a new
define on OS X to remember that forking when updating registry is
unsafe.
* docs/faq/gst-uninstalled: Updated to include gst-libs in the bad
module.
* gst/gst.c: Don't fork when updating registry if GST_HAVE_UNSAFE_FORK
is defined.
* gst/gstregistry.c: (gst_registry_scan_path_level): Fixed a bogus
condition that leads to absolutely no plugins being registered on
OS X.
2008-04-11 09:27:44 +00:00
Tim-Philipp Müller
a5575a2819 gst/gst.c: Fix const position; ref GType classes for enum types to work around thread-safety issues in GLib versions ...
Original commit message from CVS:
* gst/gst.c: (gst_init_get_option_group), (init_post):
Fix const position; ref GType classes for enum types to work
around thread-safety issues in GLib versions < 2.16.
2008-04-09 21:27:40 +00:00
Stefan Kost
b4c170a205 MacOS has plugins under .so or under .dylib. Add detection for MacOS and handle this case.
Original commit message from CVS:
* configure.ac:
* gst/gstregistry.c:
MacOS has plugins under .so or under .dylib. Add detection for MacOS
and handle this case.
* gst/gst.c:
Add a comment here describing, why we stat each plugin and not try to
be smart.
2008-03-31 13:47:22 +00:00
Stefan Kost
e2f65711ee gst/gst.c: Fix type in log message and add one to ease seeing how long registry cache verification takes.
Original commit message from CVS:
* gst/gst.c:
Fix type in log message and add one to ease seeing how long registry
cache verification takes.
* gst/gstregistry.c:
Only test plugin filenames against G_MODULE_SUFFIX.
2008-03-31 08:32:26 +00:00
David Schleef
664bb4cfd1 gst/gst.c: Add a separate gst_deinitialized that prevents gst_init() from being called after gst_deinit(). Fixes #50...
Original commit message from CVS:
* gst/gst.c: Add a separate gst_deinitialized that prevents
gst_init() from being called after gst_deinit().  Fixes #509559
2008-02-05 18:37:08 +00:00
Tim-Philipp Müller
33cd142292 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.
2008-01-17 22:17:15 +00:00
Jan Schmidt
f2c36159ef gst/gst.c: _gst_trace_on is already provided by gsttrace.h, no need to declare it ourselves.
Original commit message from CVS:
* gst/gst.c:
_gst_trace_on is already provided by gsttrace.h, no need to declare
it ourselves.
* docs/libs/gstreamer-libs-sections.txt:
Add 'buffers', 'check_cond' and 'check_mutex' from libgstcheck
and remove strange tcase_add_test which is outputting a warning.
* libs/gst/check/gstcheck.c:
* libs/gst/check/gstcheck.h:
Properly declare 'buffers', 'check_cond', 'check_mutex' extern
and define them in gstcheck.c instead of having every .c file whcih
includes gstcheck.h be defining its own copy and relying on symbol
interposing to marry them all, which doesn't work on Solaris.
* tests/check/elements/identity.c: (GST_START_TEST):
Don't define 'buffers' locally, it comes from libgstcheck.
* tests/check/generic/sinks.c: (send_buffer):
Fix type of variable (GstFlowReturn, not GstStateChangeReturn)
* tests/check/gst/gststructure.c: (GST_START_TEST):
* tests/check/gst/gstsystemclock.c: (GST_START_TEST):
* tests/check/gst/gstutils.c: (GST_START_TEST):
* tests/check/gst/gstvalue.c: (GST_START_TEST):
Add a bunch of casts to make various constants fit the types
they're being assigned to.
2008-01-12 20:22:30 +00:00
Tim-Philipp Müller
4a3f163052 API: add gst_plugin_register_static() and deprecate
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.
2008-01-09 18:23:39 +00:00
Tim-Philipp Müller
def6b4bb66 gst/: Move getenv() back into gst_init, so everyone can live happily ever after. Make sure the symbol isn't exported ...
Original commit message from CVS:
* gst/gst.c: (init_pre):
* gst/gstdebugutils.c: (priv_gst_dump_dot_dir), (debug_dump_element),
(_gst_debug_bin_to_dot_file):
Move getenv() back into gst_init, so everyone can live happily
ever after. Make sure the symbol isn't exported though.
2007-11-07 15:53:52 +00:00
Tim-Philipp Müller
efaea50c48 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).
2007-11-06 15:10:36 +00:00
Tim-Philipp Müller
0965b7202c gst/gst.c: Clean up on deinit (not the external ones though, doesn't seem to be needed for some reason).
Original commit message from CVS:
* gst/gst.c: (gst_deinit):
Clean up on deinit (not the external ones though, doesn't seem to be
needed for some reason).
2007-11-02 16:27:56 +00:00
Tim-Philipp Müller
99a41cefe3 g_type_class_ref() other types as well, see #349410 and #64764.
Original commit message from CVS:
* gst/gst.c: (init_post):
* gst/gstevent.c: (_gst_event_initialize):
* gst/gstquery.c: (_gst_query_initialize):
* libs/gst/dataprotocol/dataprotocol.c (gst_dp_init):
g_type_class_ref() other types as well, see #349410 and #64764.
* gst/gstbuffer.c: (_gst_buffer_initialize):
* gst/gstmessage.c: (_gst_message_initialize):
Simplify existing g_type_class_ref().
2007-11-01 21:50:05 +00:00
Stefan Kost
7da5577459 Improve bin graph dumping, by using the envvar to specify a path.
Original commit message from CVS:
* docs/gst/running.xml:
* gst/gst.c:
* gst/gstdebugutils.c:
* gst/gstdebugutils.h:
* tools/gst-launch.c:
Improve bin graph dumping, by using the envvar to specify a path.
Rename the envvar to GST_DEBUG_DUMP_DOT_DIR.
2007-10-29 13:46:25 +00:00
Stefan Kost
58a155347b Allow dumping pipelines as dot graphs. Fixes #456573.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/Makefile.am:
* gst/gst.c:
* gst/gst.h:
* gst/gstdebugutils.c:
* gst/gstdebugutils.h:
* gst/gstinfo.c:
* gst/gstinfo.h:
* tools/gst-launch.c:
Allow dumping pipelines as dot graphs. Fixes #456573.
2007-10-17 12:58:23 +00:00
Tim-Philipp Müller
684db8eb7c gst/gst.c: Don't use GST_INFO before the debug system is actually initialised (shouldn't do any harm, but won't print...
Original commit message from CVS:
* gst/gst.c:
Don't use GST_INFO before the debug system is actually initialised
(shouldn't do any harm, but won't print anything either, so we can
just as well remove it).
* gst/gstinfo.h:
GST_CAT_LEVEL_LOG_valist(), which is our inline helper function for
compilers that don't support variadic macros (such as MSVC), should
check for debug_level <= __gst_debug_min as well, since that's the
function called from all the level-specific GST_CAT_*_LOG_OBJECT()
inline helper functions. Should improve performance a bit, but also
makes sure uses of GST_INFO et.al are ignored if the debugging
system isn't initialised yet (instead of printing an assertion
failure).
2007-08-23 20:41:30 +00:00
Sebastian Dröge
ef78586c58 gst/gst.c: Fix confusing typo in debug output.
Original commit message from CVS:
* gst/gst.c:
Fix confusing typo in debug output.
2007-08-03 19:25:45 +00:00