Commit graph

3883 commits

Author SHA1 Message Date
Wim Taymans
7553c996a4 API: gst_bus_timed_pop()
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstbus.c: (gst_bus_init), (gst_bus_dispose), (gst_bus_post),
(gst_bus_timed_pop), (gst_bus_pop):
* gst/gstbus.h:
API: gst_bus_timed_pop()
Implement gst_bus_timed_pop() to do a blocking timed wait for a
message to arrive on the bus.
* tests/check/gst/gstbus.c: (GST_START_TEST), (pop_thread),
(gst_bus_suite):
Two unit tests for new _timed_pop() function.
2007-02-27 17:22:07 +00:00
Wim Taymans
c574a01484 gst/gstpipeline.c: Don't ref a NULL clock in _provide_clock_func().
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_change_state),
(gst_pipeline_provide_clock_func), (gst_pipeline_set_delay):
Don't ref a NULL clock in _provide_clock_func().
Don't allow an INVALID delay.
Don't try to calculate base_time with an invalid start_time.
Also distribute and notify a NULL clock when it was selected.
* tools/gst-launch.c: (event_loop):
Don't crash when a NULL clock was selected in the pipeline.
2007-02-23 17:42:06 +00:00
Thomas Vander Stichele
be875073d5 Fix up documentation to link to the correct GstGError section.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstelement.h:
Fix up documentation to link to the correct GstGError section.
Add GST_ELEMENT_INFO macro since someone else added a Info message.
2007-02-21 15:34:14 +00:00
Wim Taymans
c4def75d2b gst/gstmessage.*: Remove new messages for release.
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_parse_duration):
* gst/gstmessage.h:
Remove new messages for release.
2007-02-21 12:01:41 +00:00
Wim Taymans
60212ff197 Make the ghostpad a parent of the internal pad again for better backward compatibility. Don't write code that relies ...
Original commit message from CVS:
* docs/design/part-gstghostpad.txt:
* gst/gstghostpad.c: (gst_ghost_pad_dispose),
(gst_ghost_pad_new_full):
Make the ghostpad a parent of the internal pad again for better backward
compatibility. Don't write code that relies on this however.
* gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_activate_push),
(gst_pad_link_check_hierarchy):
Require that parents should be GstElements in the hierarchy check.
2007-02-20 18:02:50 +00:00
Wim Taymans
e561ce761b gst/gstbin.c: Improve debug info.
Original commit message from CVS:
* gst/gstbin.c: (bin_replace_message), (gst_bin_add_func),
(gst_bin_change_state_func), (bin_query_min_max_init),
(bin_query_latency_fold), (bin_query_latency_done),
(gst_bin_query):
Improve debug info.
Implement latency query.
2007-02-20 10:45:13 +00:00
Wim Taymans
d772c87442 Do not set the internal pad as a parent anymore so we can avoid hierarchy linking errors when the ghostpad has no par...
Original commit message from CVS:
* docs/design/part-gstghostpad.txt:
* gst/gstghostpad.c: (gst_ghost_pad_class_init),
(gst_ghost_pad_internal_do_activate_push),
(gst_ghost_pad_internal_do_activate_pull),
(gst_ghost_pad_do_activate_push), (gst_ghost_pad_do_activate_pull),
(gst_ghost_pad_do_link), (gst_ghost_pad_dispose),
(gst_ghost_pad_new_full), (gst_ghost_pad_set_target):
Do not set the internal pad as a parent anymore so we can avoid
hierarchy linking errors when the ghostpad has no parent yet. This also
fixes failed activation because of unlinked internal pads, which in
turn fixes the impossible case where you have to activate a pad before
you can add it to a running element.
Also fix the docs.
* gst/gstpad.c: (pre_activate), (post_activate),
(gst_pad_set_active), (gst_pad_activate_pull),
(gst_pad_activate_push), (gst_pad_check_pull_range):
Add some more debug info.
Mark activation mode in pre_activate so that we don't try to activate in
endless loops. Fixes #385084.
2007-02-20 10:16:27 +00:00
Stefan Kost
efb8033bac More docs coverage and some ChangeLog surgery (add missing names)
Original commit message from CVS:
* gst/gstchildproxy.h:
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasetransform.h:
More docs coverage and some ChangeLog surgery (add missing names)
2007-02-15 12:05:09 +00:00
Wim Taymans
a02edf4d61 gst/gstpad.c: Improve debugging of default pad dispatcher and query functions.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_get_internal_links_default),
(gst_pad_dispatcher):
Improve debugging of default pad dispatcher and query functions.
2007-02-15 08:37:19 +00:00
Wim Taymans
5b6258fa8d docs/design/part-seeking.txt: Some small update.
Original commit message from CVS:
* docs/design/part-seeking.txt:
Some small update.
* gst/gstsegment.c: (gst_segment_set_seek):
Revert old bogus change that should make seeking work again.
2007-02-13 15:34:15 +00:00
Stefan Kost
5ee6741827 docs/design/draft-klass.txt: Add existing category analysis.
Original commit message from CVS:
* docs/design/draft-klass.txt:
Add existing category analysis.
* gst/gstcaps.c:
Fix doc example, framerate is a fraction.
2007-02-13 09:10:53 +00:00
René Stadler
69e7087725 API: add GST_TAG_REFERENCE_LEVEL (#403597).
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler de>
* docs/gst/gstreamer-sections.txt:
* gst/gsttaglist.c: (_gst_tag_initialize):
* gst/gsttaglist.h:
API: add GST_TAG_REFERENCE_LEVEL (#403597).
2007-02-12 10:50:20 +00:00
Stefan Kost
85c81ea952 docs/libs/Makefile.am: Fix path to core docs.
Original commit message from CVS:
* docs/libs/Makefile.am:
Fix path to core docs.
* gst/gstbin.c: (gst_bin_get_by_interface),
(gst_bin_iterate_all_by_interface):
Refix docs by also renaming 'interface' to 'iface' in implementation.
* docs/gst/gstreamer-sections.txt:
* gst/gstcaps.c:
* gst/gstchildproxy.c: (gst_child_proxy_base_init):
* gst/gstchildproxy.h:
* gst/gstelementfactory.c:
* gst/gstpadtemplate.h:
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_new):
Document more.
2007-02-11 19:59:12 +00:00
Sébastien Moutte
3ad87e0249 gst/gstbin.h: Replace interface parameter name by iface as interface is a reserved keyword in Visual Studio for C++ p...
Original commit message from CVS:
* gst/gstbin.h:(gst_bin_get_by_interface),
(gst_bin_iterate_all_by_interface):
Replace interface parameter name by iface as interface is
a reserved keyword in Visual Studio for C++ projects so it removes
a build error for application developpers using VS.
* plugins/elements/gstfilesrc.c:(gst_file_src_uri_set_uri):
Fix a bug on Windows in uri format check. Now the prefix checked
is file:// and next we check if the path after file:// is absolute.
* win32/common/libgstbase.def:
* win32/common/libgstdataprotocol.def:
* win32/common/libgstgstreamer.def:
Add new exported functions.
2007-02-10 18:31:12 +00:00
Andy Wingo
d2c619762c gst/gstregistryxml.c (load_feature, load_plugin): Drop some normal-case logs down to LOG, raise errors to WARNING.
Original commit message from CVS:
2007-02-09  Andy Wingo  <wingo@pobox.com>

* gst/gstregistryxml.c (load_feature, load_plugin): Drop some
normal-case logs down to LOG, raise errors to WARNING.
(gst_registry_xml_read_cache): Don't log before calling a function
that logs.

* gst/gstregistry.c (gst_registry_finalize): Less debug on program
exit (registry finalize).
(gst_registry_add_plugin, gst_registry_add_feature): No need for a
DEBUG log when we emit signals that people don't even have the
chance to connect to.
(gst_registry_scan_path_level): Less logging in the normal case.
2007-02-09 13:41:24 +00:00
Tim-Philipp Müller
5348fb69b1 gst/gstelementfactory.h: The klass string is not a hierarchy. Add reference to the design doc for more information an...
Original commit message from CVS:
* gst/gstelementfactory.h:
The klass string is not a hierarchy. Add reference to the design doc
for more information and common types.
2007-02-04 16:14:19 +00:00
Wim Taymans
863a867f81 gst/gstquery.c: Remove old structure field.
Original commit message from CVS:
* gst/gstquery.c: (gst_query_new_latency):
Remove old structure field.
2007-02-02 18:08:32 +00:00
Wim Taymans
74da6ad937 docs/gst/gstreamer-sections.txt: Add docs for new methods.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Add docs for new methods.
* gst/gstevent.c: (gst_event_new_latency),
(gst_event_parse_latency):
* gst/gstevent.h:
Add new LATENCY event to configure latency in a pipeline.
API: gst_event_new_latency
API: gst_event_parse_latency
* gst/gstmessage.c: (gst_message_new_buffering),
(gst_message_new_lost_preroll), (gst_message_new_prerolled),
(gst_message_new_latency), (gst_message_parse_buffering),
(gst_message_parse_lost_preroll):
* gst/gstmessage.h:
Added messages used in draft-latency.
API: gst_message_new_lost_preroll
API: gst_message_parse_lost_preroll
API: gst_message_new_prerolled
API: gst_message_new_latency
* gst/gstquery.c: (gst_query_new_latency), (gst_query_set_latency),
(gst_query_parse_latency):
* gst/gstquery.h:
Implemented new latency query as in design doc.
API: gst_query_new_latency
API: gst_query_set_latency
API: gst_query_parse_latency
2007-02-02 11:48:48 +00:00
Stefan Kost
8dd745a6b2 gst/gstplugin.h: Fix and expand GstPluginDesc API docs.
Original commit message from CVS:
* gst/gstplugin.h:
Fix and expand GstPluginDesc API docs.
2007-01-30 15:04:33 +00:00
Stefan Kost
ea55e1357e configure.ac: comment about refining the xml deps
Original commit message from CVS:
* configure.ac:
comment about refining the xml deps
* docs/manuals.mak:
comments about moving away from jade for docs
* gst/gst.c:
recommit the ifdefs to use the binary registry
* gst/gstbin.c: (gst_bin_change_state_func):
this break is obsolete
* gst/gstelementfactory.h:
better GST_ELEMENT_DETAILS docs, add comment about translation
* gst/gstinfo.h:
remove eol slash
* gst/gstobject.c: (gst_signal_object_get_type):
add G_UNLIKELY as usual
* gst/gstpad.c: (gst_pad_event_default):
add fall trhu comment
* 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):
comment typo and formatting
* gst/gstutils.c: (gst_element_state_get_name),
(gst_element_state_change_return_get_name):
remove obsolete breaks
* gst/gstvalue.c: (gst_date_get_type), (_gst_value_initialize):
add FIXME 0.11 and remove cpp comment
2007-01-29 15:54:09 +00:00
Edward Hervey
b7d6efdbd5 gst/gstregistrybinary.c: Fix print statement in an even more portable way.
Original commit message from CVS:
* gst/gstregistrybinary.c: (gst_registry_binary_read_cache):
Fix print statement in an even more portable way.
2007-01-29 15:02:11 +00:00
Tim-Philipp Müller
12aaf988aa API: add GST_ROUND_DOWN_* macros (#401781).
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstutils.h:
API: add GST_ROUND_DOWN_* macros (#401781).
2007-01-29 13:40:38 +00:00
Tim-Philipp Müller
636e022fed Document registry signals and make gtk-doc pick them up (#401381).
Original commit message from CVS:
* docs/gst/gstreamer.types.in:
* gst/gstregistry.c: (gst_registry_class_init):
Document registry signals and make gtk-doc pick them up (#401381).
2007-01-27 18:44:11 +00:00
Wim Taymans
e569c17c76 gst/gstcaps.c: Init caps flags too.
Original commit message from CVS:
* gst/gstcaps.c: (gst_static_caps_get):
Init caps flags too.
2007-01-26 09:37:03 +00:00
Wim Taymans
76e88f9d37 gst/gstcaps.c: Add some refcount debugging.
Original commit message from CVS:
* gst/gstcaps.c: (_gst_caps_free), (gst_static_caps_get):
Add some refcount debugging.
Make gst_static_caps_get threadsafe, which is needed when autoplugging
in multiple streaming threads.
2007-01-25 17:41:39 +00:00
Edward Hervey
00a8f6ac84 gst/gstregistrybinary.c: In print statements, "%x" is for guint. Fixes build on macosx.
Original commit message from CVS:
* gst/gstregistrybinary.c: (gst_registry_binary_read_cache):
In print statements, "%x" is for guint. Fixes build on macosx.
2007-01-25 10:14:09 +00:00
Tim-Philipp Müller
9e0b1e942c gst/gst.c: Make warning about late g_thread_init() calls a bit more explicit, so that it's more obvious to applicatio...
Original commit message from CVS:
* gst/gst.c: (gst_init_get_option_group):
Make warning about late g_thread_init() calls a bit more explicit,
so that it's more obvious to application developers what they need
to do if a user files a bug against their application.
2007-01-23 13:50:42 +00:00
Mark Nauwelaerts
e56bad5b13 gst/gstpad.c: Fix two docs typoes (#399094).
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* gst/gstpad.c:
Fix two docs typoes (#399094).
2007-01-21 20:24:11 +00:00
Stefan Kost
2d88cb7e88 gst/: Add more docs regarding tag merge-modes and when to send tags. Fix 'since' statement for new tag.
Original commit message from CVS:
* gst/gsttaglist.h:
* gst/gsttagsetter.c:
Add more docs regarding tag merge-modes and when to send tags. Fix 'since'
statement for new tag.
2007-01-18 12:00:23 +00:00
Stefan Kost
6fa79ab387 gst/gsttaglist.c: Change tag type from STRING to DOUBLE. Apply ChangeLog surgery for my previous two entries.
Original commit message from CVS:
* gst/gsttaglist.c: (_gst_tag_initialize):
Change tag type from STRING to DOUBLE. Apply ChangeLog surgery for my
previous two entries.
2007-01-15 14:39:51 +00:00
Stefan Kost
0e96e3d727 add tag support for beat-per-minute
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttaglist.c: (_gst_tag_initialize):
* gst/gsttaglist.h:
add tag support for beat-per-minute
2007-01-15 13:57:12 +00:00
Stefan Kost
616cb1862a gst/gstregistrybinary.*: use glib types, cleanup comments, impement interfaces and uri-types
Original commit message from CVS:
* gst/gstregistrybinary.c: (gst_registry_binary_write),
(gst_registry_binary_initialize_magic),
(gst_registry_binary_save_string), (gst_registry_binary_make_data),
(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:
use glib types, cleanup comments, impement interfaces and uri-types
2007-01-15 12:18:46 +00:00
Andy Wingo
63693a682a gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Allow getrange() to return buffers with other caps, while we fi...
Original commit message from CVS:
2007-01-13  Andy Wingo  <wingo@pobox.com>

* gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Allow
getrange() to return buffers with other caps, while we fix
demuxers and typefind, or otherwise change part-negotiation.txt.
2007-01-13 10:33:41 +00:00
Andy Wingo
871e807482 gst/gstpad.c (gst_pad_activate_pull): Refuse to activate unlinked sink pads in pull mode. In addition to being correc...
Original commit message from CVS:
2007-01-12  Andy Wingo  <wingo@pobox.com>

* gst/gstpad.c (gst_pad_activate_pull): Refuse to activate unlinked
sink pads in pull mode. In addition to being correct, fixes
filesrc ! decodebin ! identity ! fakesink.
(gst_pad_get_range, gst_pad_pull_range): Don't call
gst_pad_set_caps() if the caps changes; instead error out with
GST_FLOW_NOT_NEGOTIATED, as discussed in part-negotiation.txt.
2007-01-12 15:48:00 +00:00
René Stadler
51b5a406ca gst/gsttagsetter.c: gst_tag_list_merge() returns a new list, so it's not the best idea to ingore its return value. Ef...
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* gst/gsttagsetter.c: (gst_tag_setter_merge_tags):
gst_tag_list_merge() returns a new list, so it's not the best idea
to ingore its return value. Effectively meant that tags could only
be merged on a GstTagSetter once using _merge_tags(). Fixes #395554.
Also add function guard to require a non-NULL taglist as input (has
always been so due to gst_tag_list_copy(), just making it explicit).
2007-01-12 10:48:49 +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
Andy Wingo
7ef6acd8cd docs/design/part-negotiation.txt: Update with, um, one way that pull-mode negotiation might work?
Original commit message from CVS:
2007-01-10  Andy Wingo  <wingo@pobox.com>

* docs/design/part-negotiation.txt: Update with, um, one way that
pull-mode negotiation might work?

* gst/gstpad.h:
* gst/gstpad.c (gst_pad_get_allowed_caps): Remove the restriction
that the pad must be a src pad; makes sense to call it the other
way in pull mode, and the logic is symmetric anyway.
2007-01-10 21:15:08 +00:00
Wim Taymans
ececbda2b2 gst/gstevent.*: Reserve LATENCY event.
Original commit message from CVS:
* gst/gstevent.c:
* gst/gstevent.h:
Reserve LATENCY event.
2007-01-10 10:21:47 +00:00
Wim Taymans
adfd199bd1 docs/design/draft-latency.txt: Updates.
Original commit message from CVS:
* docs/design/draft-latency.txt:
Updates.
* gst/gstelement.h:
* gst/gststructure.c:
* gst/gsttrace.c:
Small typo fixes.
2007-01-09 15:38:58 +00:00
Tim-Philipp Müller
702fbf77e9 API: add gst_update_registry() (#391296).
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gst.c: (load_plugin_func), (scan_and_update_registry),
(init_post), (gst_deinit), (gst_update_registry):
* gst/gst.h:
API: add gst_update_registry() (#391296).
* tests/check/Makefile.am:
* tests/check/gst/gstregistry.c:
* tests/check/gst/.cvsignore:
Simple unit test for the above.
2007-01-08 20:30:12 +00:00
Tim-Philipp Müller
2991d5cd33 gst/gstregistry.c: Plugin extension on HP-UX is .sl, add that to the list of approved plugin extensions (see #393796).
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_scan_path_level):
Plugin extension on HP-UX is .sl, add that to the list of approved
plugin extensions (see #393796).
* tests/check/gst/gstpad.c: (GST_START_TEST):
ulong => gulong. Fixes compilation with HP-UX compiler.
* tests/check/pipelines/parse-launch.c: (GST_START_TEST):
Fix compilation if valgrind headers are not available.
2007-01-08 16:23:03 +00:00
Andy Wingo
77472ddbd7 gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Set caps on the pads if necessary, as in push()/chain(). Update...
Original commit message from CVS:
2007-01-06  Andy Wingo  <wingo@pobox.com>

* gst/gstpad.c (gst_pad_get_range, gst_pad_pull_range): Set caps
on the pads if necessary, as in push()/chain(). Update docs.
Shouldn't affect existing pull() usage as it is currently only
being used on buffers without caps.
2007-01-06 17:09:10 +00:00
Tim-Philipp Müller
3001f88c3c gst/gst.c: Call g_thread_init() first thing in gst_init() / gst_check_init().
Original commit message from CVS:
* gst/gst.c: (gst_init_get_option_group), (gst_init_check),
(init_pre):
Call g_thread_init() first thing in gst_init() / gst_check_init().
When initialisation is done via gst_init_get_option_group() and
GOption parsing, issue a warning if the GLib thread system has not
been initialised yet by the time gst_init_get_option_group() is
called, as it's quite likely other GLib functions such as
g_option_context_new() have been called already then, and
g_thread_init() must be called before any other GLib function. The
application in question must be fixed in that case, since memory
corruption might happen otherwise.
We issue the warning because even if the GLib folks decide to work
around the problem on their end in future, this is still an issue
with all GLib versions >= 2.10.0, so we should warn until we depend
on a GLib version we know to be safe.
Update documentation as well.
Closes bug #391278.
2007-01-05 16:36:36 +00:00
Vincent Torri
47d2b0a976 gst/: On win32, all the __declspec stuff for symbol exporting is apparently only needed with MSVC, but doesn't work w...
Original commit message from CVS:
Patch by: Vincent Torri  <vtorri at univ-evry dot fr>
* gst/gst_private.h:
* gst/gstconfig.h.in:
* gst/gstinfo.h:
On win32, all the __declspec stuff for symbol exporting is
apparently only needed with MSVC, but doesn't work with MingW.
Fixes compilation with MingW and #391909.
2007-01-05 13:23:02 +00:00
Thomas Vander Stichele
c254a2345b tell us what's not implemented
Original commit message from CVS:
tell us what's not implemented
2007-01-02 09:31:45 +00:00
David Schleef
b7e4487952 gst/gstplugin.c: Restore the previous signal handler for SIGSEGV instead of setting to default, since we may have sto...
Original commit message from CVS:
* gst/gstplugin.c:
Restore the previous signal handler for SIGSEGV instead of
setting to default, since we may have stolen it away from
someone.  (i.e., Mono)
2007-01-02 06:14:06 +00:00
Tim-Philipp Müller
5c3731ea37 gst/gstregistryxml.c: Make sure we don't pass non-UTF-8 strings to g_markup_escape(), since that can lead to random m...
Original commit message from CVS:
* gst/gstregistryxml.c: (gst_registry_save_escaped):
Make sure we don't pass non-UTF-8 strings to g_markup_escape(),
since that can lead to random memory corruptions and crashes
(may or may not be related to #383244, #386711, and #386711).
2006-12-26 15:06:52 +00:00
Stefan Kost
261abbb01e docs/design/part-states.txt: two tiny additional comments
Original commit message from CVS:
* docs/design/part-states.txt:
two tiny additional comments
* gst/gststructure.c:
doc fixing
* tests/check/Makefile.am:
* tests/check/elements/queue.c: (queue_overrun), (queue_underrun),
(GST_START_TEST):
disable test for now, unless it gets fixed
2006-12-21 15:00:08 +00:00
Edward Hervey
f65a1d384e gst/gstsegment.c: Fine tune the cases where the segment start/stop values are really updated.
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_set_seek):
Fine tune the cases where the segment start/stop values are really
updated.
* tests/check/gst/gstsegment.c: (GST_START_TEST):
Add tests for the return values of gst_segment_set_seek().
2006-12-19 12:38:00 +00:00
Tim-Philipp Müller
54cf7775fb gst/gst.c: Docs typo fix.
Original commit message from CVS:
* gst/gst.c:
Docs typo fix.
* plugins/elements/gstqueue.c: (gst_queue_class_init),
(gst_queue_init):
Fix incorrect documentation and flesh it out a bit more.
Set default values for the max properties on the GParamSpec as well,
so it shows up correctly in gst-inspect.
2006-12-19 11:04:49 +00:00
Wim Taymans
1affbe8e9f gst/: Set pads to FLUSHING when they are created. Check, warn and fix when a demuxer adds an inactive pad to itself w...
Original commit message from CVS:
* gst/gstelement.c: (gst_element_add_pad):
* gst/gstghostpad.c: (gst_ghost_pad_new_full):
* gst/gstpad.c: (gst_pad_init):
Set pads to FLUSHING when they are created. Check, warn and fix when a
demuxer adds an inactive pad to itself when running. Fixes #339326.
2006-12-15 16:01:58 +00:00
Wim Taymans
0ad3d72cf5 gst/gstelement.c: Expose default element send_event and query handling as vmethods that subclasses can chain up to.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_class_init),
(gst_element_default_send_event), (gst_element_send_event),
(gst_element_default_query), (gst_element_query):
Expose default element send_event and query handling as vmethods that
subclasses can chain up to.
2006-12-15 15:49:29 +00:00
Wim Taymans
06651f5547 gst/gstelement.c: Small documentation fixes.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_set_state_func):
Small documentation fixes.
2006-12-15 15:39:28 +00:00
Tim-Philipp Müller
780a884ee7 gst/gst.c: init_pre() and init_post() might be called via our GOptionGroup or from gst_init(), and we should skip bot...
Original commit message from CVS:
* gst/gst.c: (init_pre), (init_post):
init_pre() and init_post() might be called via our GOptionGroup or
from gst_init(), and we should skip both of them if we've already
been initialised, otherwise we will init some things twice or add
two default log functions.
2006-12-14 14:06:38 +00:00
Tim-Philipp Müller
c8fcab5cf5 gst/gstghostpad.c: Log ghostpad debug stuff to the GST_PADS category as well rather than just to the default category.
Original commit message from CVS:
* gst/gstghostpad.c:
Log ghostpad debug stuff to the GST_PADS category as well rather
than just to the default category.
2006-12-13 11:05:20 +00:00
Tim-Philipp Müller
6043da0aca Add some basic system details such as OS and architecture to the debug output if possible, courtesy of uname().
Original commit message from CVS:
* configure.ac:
* gst/gst.c: (init_pre):
Add some basic system details such as OS and architecture
to the debug output if possible, courtesy of uname().
2006-12-12 13:53:04 +00:00
Jan Schmidt
0a5e6e1132 gst/gst.c: Ignore EINTR when reading from the child registry pipe.
Original commit message from CVS:
* gst/gst.c: (ensure_current_registry_forking):
Ignore EINTR when reading from the child registry pipe.
Explicitly ignore the return value from close, since it makes no
difference.
* gst/gstminiobject.c: (gst_mini_object_ref),
(gst_mini_object_unref):
When debugging refcounts, check GST_IS_MINI_OBJECT and warn.
* gst/gstregistry.c: (_priv_gst_registry_remove_cache_plugins):
When removing cached plugins, remove their features too, so they're
not visible after they've disappeared.
* gst/gstutils.c: (prepare_link_maybe_ghosting):
In the unlikely case that we are linking pads with no parents, don't
crash trying to get the non-existent parent bin.
* gst/parse/grammar.y:
Output debug in the PIPELINE category
2006-12-09 18:48:57 +00:00
René Stadler
f26e917bc3 gst/gstclock.c: Reject invalid clock times for interval of periodic ids.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* gst/gstclock.c: (gst_clock_new_periodic_id):
Reject invalid clock times for interval of periodic ids.
Fixes ##383506.
2006-12-08 16:12:44 +00:00
Jan Schmidt
1cca54b44c Fix refcounting of gst_plugin_feature_load to match the docs.
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
2006-12-07 12:11:14 +00:00
René Stadler
a258e87342 gst/gstclock.c: Make period ids add the interval to the origial requested time instead of the possibly updated time w...
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* gst/gstclock.c: (gst_clock_id_wait):
Make period ids add the interval to the origial requested time instead
of the possibly updated time which can be wrong when there are multiple
waiters for the same id. Fixes #382592.
* gst/gstsystemclock.c: (gst_system_clock_async_thread),
(gst_system_clock_id_wait_jitter_unlocked),
(gst_system_clock_id_wait_jitter):
Fix restart in the async notify thread when an async entry is added to
the front of the list. Fixes #381492.
* tests/check/gst/gstsystemclock.c: (store_callback),
(notify_callback), (GST_START_TEST), (gst_systemclock_suite):
Added test for multiple async waits.
Added test for async wait order.
2006-12-07 10:51:36 +00:00
Wim Taymans
57667ddd07 gst/gstbin.c: Add some more docs about the POSITION query.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_query):
Add some more docs about the POSITION query.
2006-12-07 10:02:19 +00:00
Jan Schmidt
79703a24e6 gst/gstvalue.c: If someone is foolish enough to compare 2 fractions with denominator = 0, return UNORDERED rather tha...
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_compare_fraction):
If someone is foolish enough to compare 2 fractions with denominator =
0, return UNORDERED rather than aborting.
2006-11-29 16:39:32 +00:00
Wim Taymans
f830f6f4ac gst/gstsegment.c: Fix boundary checking in to_running_time() and to_stream_time().
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_set_seek),
(gst_segment_set_newsegment_full), (gst_segment_to_stream_time),
(gst_segment_to_running_time):
Fix boundary checking in to_running_time() and to_stream_time().
Fixes #377183.
* tests/check/gst/gstsegment.c: (GST_START_TEST):
stream and running time can now be calculated for the complete
clipped segment.
2006-11-20 10:27:49 +00:00
Tim-Philipp Müller
c0ce620980 gst/gstpad.c: Can't access event structure after giving away ownership of the event.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_push_event):
Can't access event structure after giving away ownership of
the event.
2006-11-15 17:38:13 +00:00
Mark Nauwelaerts
47976eb0c2 gst/gstpad.c: Fix documentation for gst_pad_dispatcher. Fixes #374475.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/gstpad.c:
Fix documentation for gst_pad_dispatcher. Fixes #374475.
2006-11-13 18:03:35 +00:00
Tim-Philipp Müller
bf22daa437 Use g_strerror() instead of strerror() - we want UTF-8.
Original commit message from CVS:
* gst/gstplugin.c: (gst_plugin_load_file):
* plugins/elements/gstfilesrc.c: (gst_mmap_buffer_finalize),
(gst_file_src_map_region), (gst_file_src_start):
* plugins/indexers/gstfileindex.c: (gst_file_index_load),
(gst_file_index_commit):
Use g_strerror() instead of strerror() - we want UTF-8.
2006-11-06 17:53:24 +00:00
Stefan Kost
d6c257363b gst/gstpad.c: Enhance debug and improve docs
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_event_default_dispatch),
(gst_pad_push_event):
Enhance debug and improve docs
* gst/gsturi.c:
Fix docs
2006-11-06 15:18:57 +00:00
Stefan Kost
894b7f9f4a docs/gst/gstreamer-sections.txt: add new API and fix the build
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
add new API and fix the build
* gst/gstbin.c: (gst_bin_recalc_state):
* gst/gstelement.c: (gst_element_message_full),
(gst_element_get_state_func), (gst_element_set_state_func):
use new API and improve logging
* gst/gstutils.c: (gst_element_state_change_return_get_name):
* gst/gstutils.h:
API: add function to get StateChangereturn names to improve logs
2006-11-06 15:14:46 +00:00
Mark Nauwelaerts
6e0416787d gst/gstpad.c: Some small cleanups. Improve debugging.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/gstpad.c: (gst_pad_init), (pre_activate),
(gst_pad_set_blocked_async), (gst_pad_acceptcaps_default),
(gst_pad_accept_caps), (handle_pad_block), (gst_pad_push_event):
Some small cleanups. Improve debugging.
* gst/gstpad.h:
Signal all waiting threads with a broadcast instead of just one.
Fixes #369942.
2006-11-03 13:57:28 +00:00
gorshkov
656c529833 gst/gstinfo.h: _declspec should be __declspec (two underscores, not one). Fixes 366572.
Original commit message from CVS:
Patch by: gorshkov <gorshkov at oghma dot on dot ca>
* gst/gstinfo.h:
_declspec should be __declspec (two underscores, not one). Fixes 366572.
2006-10-30 07:51:13 +00:00
Kjartan Maraas
fcfb59afb1 Typo fixes (#366212).
Original commit message from CVS:
Patch by: Kjartan Maraas  <kmaraas at gnome org>
* docs/design/part-MT-refcounting.txt:
* docs/random/wtay/capsnego2-docs:
* gst/gstclock.c:
* gst/gstxml.c:
Typo fixes (#366212).
2006-10-28 15:42:29 +00:00
Sergey Scobich
f4f604b7b1 Add needed entries in .def files.
Original commit message from CVS:
Patch by: Sergey Scobich <sergey dot scobich at gmail dot com>
* gst/gst.c:
* win32/common/libgstbase.def:
* win32/common/libgstreamer.def:
* win32/vs8/libgstbase.vcproj:
* win32/vs8/libgstcontroller.vcproj:
Add needed entries in .def files.
Use HAVE_UNISTD_H.
Rearrange def files in vs8 solutions. Fixes #366286.
2006-10-28 15:10:26 +00:00
Wim Taymans
6dc97edc2f gst/gstghostpad.c: Make acceptcaps return TRUE when we don't have a target, just like setcaps does.
Original commit message from CVS:
* gst/gstghostpad.c: (gst_proxy_pad_do_acceptcaps),
(gst_ghost_pad_new_full):
Make acceptcaps return TRUE when we don't have a target, just like
setcaps does.
2006-10-27 16:31:15 +00:00
Tim-Philipp Müller
c7fc3dc0e8 gst/gststructure.c: If someone tries to set a non-UTF8 string field on a structure, don't just print a warning, but a...
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_set_value):
If someone tries to set a non-UTF8 string field on a structure,
don't just print a warning, but also ignore the request and do
not change/add that field to the structure.
* tests/check/gst/gsttag.c: (GST_START_TEST), (gst_tag_suite):
Test for the above.
2006-10-26 08:49:52 +00:00
David Schleef
bc18910072 gst/gstinfo.c: g_hash_table_insert() needs a cast to a non-const pointer duh.
Original commit message from CVS:
* gst/gstinfo.c:
g_hash_table_insert() needs a cast to a non-const pointer duh.
2006-10-26 00:00:34 +00:00
David Schleef
504274019d gst/gstinfo.*: Change name parameter of _gst_debug_register_funcptr to const to reflect the constness of its use in t...
Original commit message from CVS:
* gst/gstinfo.c:
* gst/gstinfo.h:
Change name parameter of _gst_debug_register_funcptr to const
to reflect the constness of its use in the function as well
as to quiet a gcc warning.
2006-10-25 23:47:40 +00:00
Wim Taymans
9bece70bf2 gst/gstevent.h: Add small comment.
Original commit message from CVS:
* gst/gstevent.h:
Add small comment.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc):
Debug segment values *after* updating them as this is more
interesting.
2006-10-24 08:22:19 +00:00
Wim Taymans
340a8fee72 docs/design/part-events.txt: Update some docs.
Original commit message from CVS:
* docs/design/part-events.txt:
Update some docs.
* docs/design/part-block.txt:
* gst/gstpad.c: (gst_pad_is_blocking), (handle_pad_block),
(gst_pad_push_event):
Revert BLOCKING patch, it tries to be smart without really having a
clear idea what or how. So, now we discard all FLUSHING events again on
a blocking pad. Should fix gnonlin again.
2006-10-23 15:21:12 +00:00
Wim Taymans
b1504c37da gst/gstsegment.c: Relax arg checking again, -1 is allowed.
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_set_last_stop),
(gst_segment_set_seek), (gst_segment_set_newsegment_full):
Relax arg checking again, -1 is allowed.
2006-10-18 15:28:19 +00:00
Wim Taymans
fd6d33c360 gst/gstsegment.c: _set_last_stop() must be with a value != -1
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_set_last_stop),
(gst_segment_set_seek), (gst_segment_set_newsegment_full):
_set_last_stop() must be with a value != -1
A _TYPE_SET to -1 means seek to 0.
Calc last_stop correctly for negative rates.
Make sure we work with positive durations when updating a segment.
2006-10-18 13:27:39 +00:00
Wim Taymans
c0a833edca Small docs fixes.
Original commit message from CVS:
* docs/design/part-live-source.txt:
* gst/gstclock.h:
Small docs fixes.
2006-10-18 13:21:56 +00:00
Tim-Philipp Müller
5e4699885a gst/gstbuffer.h: Add an explicit cast to GstBuffer** to keep old code that added an explicit cast to GstMiniObject** ...
Original commit message from CVS:
* gst/gstbuffer.h:
Add an explicit cast to GstBuffer** to keep old code that added an
explicit cast to GstMiniObject** for gst_mini_object_replace()
compiling without warning.
2006-10-18 10:08:45 +00:00
Stefan Kost
d3da3ed47b gst/gstvalue.c: check for validity of dates
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_set_date), (gst_date_copy):
check for validity of dates
2006-10-18 08:54:30 +00:00
Peter Kjellerstedt
2a19cd8c49 gst/gstobject.h: Don't define xmlNodePtr to gpointer if the core was built with
Original commit message from CVS:
Patch by: Peter Kjellerstedt <pkj at axis com>
* gst/gstobject.h:
Don't define xmlNodePtr to gpointer if the core was built with
--disable-loadsave and --disable-registry, this will break
applications that want to use libxml2 but are buildling against a
core that doesn't use libxml2. Use an intermediary type GstXmlNodePtr
instead so we don't have to mess with the libxml2 namespace
(#361675).
2006-10-17 11:57:32 +00:00
Tim-Philipp Müller
c64c4fd000 gst/gstbuffer.h: Fix gst_buffer_replace() macro to avoid gst_mini_object_replace()-related type-punned pointer warnings.
Original commit message from CVS:
* gst/gstbuffer.h:
Fix gst_buffer_replace() macro to avoid gst_mini_object_replace()-related
type-punned pointer warnings.
2006-10-17 10:30:27 +00:00
Tim-Philipp Müller
854bc55a2e gst/gstelement.h: Add casts to the correct return type to state <=> state transition macros.
Original commit message from CVS:
* gst/gstelement.h:
Add casts to the correct return type to state <=> state transition
macros.
2006-10-16 20:02:38 +00:00
Wim Taymans
42d34f86ba Update some docs regarding reverse playback.
Original commit message from CVS:
* docs/design/part-trickmodes.txt:
* gst/gstevent.c:
Update some docs regarding reverse playback.
2006-10-16 11:46:04 +00:00
Wim Taymans
df08b4b762 gst/gstsegment.c: When seeking to stop -1, set last_stop (current position) to the duration of the segment.
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_set_seek):
When seeking to stop -1, set last_stop (current position) to the
duration of the segment.
2006-10-13 16:09:53 +00:00
Yves Lefebvre
1b417192e6 gst/gstelement.h: Clarify _NO_PREROLL a bit more.
Original commit message from CVS:
* gst/gstelement.h:
Clarify _NO_PREROLL a bit more.
* gst/gstevent.c:
Fix docs.
* gst/gstpad.c: (gst_pad_link_check_hierarchy),
(gst_pad_get_caps_unlocked), (gst_pad_save_thyself),
(handle_pad_block), (gst_pad_push_event), (gst_pad_send_event):
Patch by: Yves Lefebvre <ivanohe at abacom dot com> Fix possible deadlock
due to wrong locking order. Fixes #361769.
Remove some redundant/misplaced checks in pad_block.
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
For negative rates, count backwards from the duration.
2006-10-13 13:27:46 +00:00
Tim-Philipp Müller
f038abdb38 gst/gsterror.c: Fix error message for GST_LIBRARY_ERROR_SETTINGS (feel free to come up with something better).
Original commit message from CVS:
* gst/gsterror.c: (_gst_library_errors_init):
Fix error message for GST_LIBRARY_ERROR_SETTINGS (feel free to come
up with something better).
2006-10-13 09:37:59 +00:00
Wim Taymans
25fa2877ac docs/plugins/: Update element args.
Original commit message from CVS:
* docs/plugins/gstreamer-plugins.args:
* docs/plugins/inspect/plugin-coreelements.xml:
* docs/plugins/inspect/plugin-coreindexers.xml:
Update element args.
* gst/gstsystemclock.c:
Small comment update.
* plugins/elements/gsttee.c: (gst_tee_class_init), (gst_tee_init),
(gst_tee_request_new_pad), (gst_tee_release_pad),
(gst_tee_buffer_alloc), (gst_tee_sink_activate_push),
(gst_tee_sink_activate_pull):
* plugins/elements/gsttee.h:
Some tee loving:
Add default property defines.
Implement release pad function.
Give properties better blubs etc.
Activate pads before adding them to a running tee.
Do simple buffer_alloc on the first requested pad.
Post error when activation fails.
2006-10-11 16:30:14 +00:00
Tim-Philipp Müller
9f1bef5b1d gst/gst.c: Check return value of write() to make compiler happy.
Original commit message from CVS:
* gst/gst.c: (ensure_current_registry_forking):
Check return value of write() to make compiler happy.
2006-10-11 12:16:05 +00:00
Sebastien Cote
1482e8bd9b gst/gstpad.c: Update some docs.
Original commit message from CVS:
Patch by: Sebastien Cote <sebas642 at yahoo dot ca>
* gst/gstpad.c: (gst_pad_get_caps_unlocked),
(gst_pad_save_thyself):
Update some docs.
Write pad direction in XML output. Fixes #345496.
2006-10-10 14:47:40 +00:00
Josep Torre Valles
8c9c6d060c gst/Makefile.am: Cast values when making gstenumtypes.h. This pacifies Forte so it doesn't warn about the ~0 as GST_...
Original commit message from CVS:
2006-10-10  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

Patch by: Josep Torre Valles <josep@fluendo.com>

* gst/Makefile.am:
Cast values when making gstenumtypes.h.  This pacifies Forte
so it doesn't warn about the ~0 as GST_MESSAGE_ANY not fitting
in the enumeration.
2006-10-10 12:12:44 +00:00
Wim Taymans
0a53651b1f gst/gstevent.c: Rename some more @cur to @start to fix docs.
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_seek), (gst_event_parse_seek):
Rename some more @cur to @start to fix docs.
* gst/gstsegment.c: (gst_segment_set_seek):
Fix typo.
time and start must always stay in sync as defined in design doc.
* gst/gsttaglist.c: (gst_tag_list_is_empty):
Rename param to fix docs.
* tests/check/gst/gstsegment.c: (GST_START_TEST):
Check that start and time are in sync.
* tests/check/pipelines/parse-launch.c:
(gst_parse_test_element_change_state):
Activate pad before adding to the element.
2006-10-09 17:15:39 +00:00
Wim Taymans
89814eed61 docs/design/part-qos.txt: Fix typo.
Original commit message from CVS:
* docs/design/part-qos.txt:
Fix typo.
* gst/gstevent.c:
* gst/gstevent.h:
Update seek event docs regarding negative rates.
Rename @cur to @start.
* gst/gstsegment.c: (gst_segment_set_seek):
* gst/gstsegment.h:
Update set_seek docs regarding negative rates.
Correctly update last_stop to @stop when dealing with negative
rates.
Rename @cur to @start.
* tests/check/gst/gstpad.c: (GST_START_TEST):
Activate pads before trying to use them.
* tests/check/gst/gstsegment.c: (GST_START_TEST),
(gst_segment_suite):
Add simple check for segments and negative rates.
2006-10-09 16:33:29 +00:00
Tim-Philipp Müller
3a8fdc1d39 API: add gst_tag_list_is_empty() (#360467).
Original commit message from CVS:
* gst/gsttaglist.c: (gst_tag_list_is_empty):
* gst/gsttaglist.h:
* docs/gst/gstreamer-sections.txt:
API: add gst_tag_list_is_empty() (#360467).
* tests/check/gst/gsttag.c: (GST_START_TEST):
And a test case.
2006-10-09 11:20:44 +00:00
Zaheer Abbas Merali
6ac7827d3c gst/gstmessage.h: Revert change from earlier wrt GST_MESSAGE_TYPE_ANY having a value that doesn't fit on enumeration.
Original commit message from CVS:
2006-10-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

* gst/gstmessage.h:
Revert change from earlier wrt GST_MESSAGE_TYPE_ANY having
a value that doesn't fit on enumeration.
2006-10-09 11:06:50 +00:00
Josep Torre Valles
2f32e21d72 common/m4/gst-error.m4: Disable warning of statement not reached on Forte.
Original commit message from CVS:
2006-10-09  Zaheer Abbas Merali  <zaheerabbas at merali dot org>

Patch by: Josep Torre Valles <josep@fluendo.com>

* common/m4/gst-error.m4:
Disable warning of statement not reached on Forte.
* gst/gstmessage.h:
Fix warning on Forte (value doesn't fit on enumeration).
* libs/gst/base/gstbasesink.c: (gst_base_sink_chain_unlocked):
Fix warning on Forte (value doesn't fit on enumeration).
* libs/gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
DEBUG macro says it takes minimum of 2 args and so Forte
complains about the use with just 1 arg.
* plugins/elements/gstfdsink.c:
* plugins/elements/gstfdsrc.c:
* plugins/elements/gstfilesink.c:
* plugins/elements/gstfilesrc.c:
Use correct return type for the uri handler implementations.

All these fix warnings in Forte.  Fixes bug #360860.
2006-10-09 09:32:29 +00:00
Tim-Philipp Müller
0ca5590961 gst/gstelement.h: gcc versions prior to gcc 3.3 apparently complain about a NULL printf format string, so don't use G...
Original commit message from CVS:
* gst/gstelement.h:
gcc versions prior to gcc 3.3 apparently complain about a NULL printf
format string, so don't use G_GNUC_PRINTF for those versions.
2006-10-08 13:27:17 +00:00