Remove trace, we use debug log for that
Make alloc trace simpler, removing some methods.
Activate alloc trace with a GST_TRACE=3 environment variable.
Dump leaked objects atexit.
Provide an offset in the object where the GType can be found so that more
verbose info can be given for objects.
Remove -T option from gst-launch because tracing is now triggered with the
environment variable.
There are many good use cases for GstIndex and we want
to add it back again in some form, but possibly not with
the current API, which is very powerful (maybe too powerful),
but also a bit confusing. At the very least we'd need to
make the API bindings-friendly.
Remove the getcaps function on the pad and use the CAPS query for
the same effect.
Add PROXY_CAPS to the pad flags. This instructs the default caps event and query
handlers to pass on the CAPS related queries and events. This simplifies a lot
of elements that passtrough caps negotiation.
Make two utility functions to proxy caps queries and aggregate the result. Needs
to use the pad forward function instead later.
Make the _query_peer_ utility functions use the gst_pad_peer_query() function to
make sure the probes are emited properly.
Instead of printing separate 'Current' and 'Default' values
(the former obtained via g_object_get() and the latter from
the property GParamSpec), simply print the Current value as
the Default value. This is the right thing to do for almost
all elements and avoids confusion if a subclass of a base
class chooses a different default than the base class.
The fixate caps function was not used externally and we have vmethods in the
base classes where it is needed.
Update some docs.
simplify some fixate functions in the base classes. Also pass the untruncated
caps to the vmethod.
The unversioned tool wrappers are confusing and annoying for packagers,
users and developers alike. A gst-launch pipeline that works in 0.10
will likely not work in 0.11 (e.g. because elements or properties get
renamed, or syntax changes). The unversioned tools also yield useless
results when used with gdb or valgrind. Packagers need to co-ordinate
the packaging of all major versions to make sure there are no conflicts
when both try to install the same files. When two major versions are
in use (e.g. 0.10 and 0.11/1.0), it may be unclear (when looking at
things on IRC/pastebin/mailing list etc.) which version is actually
being used when there are unversioned wrappers. For all these reasons,
it seems best to just remove them for now.
Remove SIGUSR* handling from gst-launch, since it might interfere
with other things (e.g. libleaks), and should be done differently
anyway (either via support for simple timed-commands scripting or
remote control via DBus or so).
People should just query the registry themselves or write a small
python script if they need this functionality (which is likely
less work than parsing the XML that this script outputs, and I'm
not aware of anything using the xml2text xsl either).
This reverts commit 9ef1346b1f.
Way to much for one commit and I'm not sure we want to get rid of the pad caps
just like that. It's nice to have the buffer and its type in onw nice bundle
without having to drag the complete context with it.
Remove pad_alloc and all references. This can now be done more efficiently and
more flexible with the ALLOCATION query and the bufferpool objects. There is no
reverse negotiation yet but that will be done with an event later.
Remove the android/ top dir
Fixe the Makefile.am to be androgenized
To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
It's often not obvious to people that elements like e.g. uridecodebin
(or demuxers) automatically support the standard signals of the
GstElement class, so let's print the useful pad-related ones for
elements with sometimes pads.
When option "-i" is given, set an index object on the pipeline and compute
statistics for all index writers. Print a sumary when shutting down the
pipeline.
The sync handler is called for all mesages, the event loop we previously used
was not. In the sync handler trigger pipeline dot dumps and call access for a
file in tmp-dir to add markers interceptable by strace and co.
Add a GstStructure to GstElementClass and GstElementFactory. Add setters/getter.
Handle it in the registry code. Print items in gst-inspect.
Fixes#396774.
API: gst_element_class_set_meta_data(), gst_element_factory_get_meta_data_detail()
This reverts commit 1f8eba611a.
This should be fixed now (and if not should be fixed) and the
clock-lost handling is now needed for playbin2 gapless playback.
See bug #579127.
Pipeline serialisation to and from XML is horribly broken for all
but the most simple use cases, and will likely never be fixed.
Make sure everyone playing around with these tools is aware of
this, to avoid frustration. See countless bug reports in bugzilla.
Fixes bug #622685.
Pipeline serialisation to and from XML is horribly broken for all
but the most simple use cases, and will likely never be fixed.
Make sure everyone playing around with these tools is aware of
this, to avoid frustration. See countless bug reports in bugzilla.
Use foo_LDADD instead of foo_LDFLAGS to specify the libraries to link to.
This should make sure arguments are passed to the linker in the right
order. See #615697.
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
g_setprgname is implicitly called by g_option_context_new() with a check
to see if it's been set already, so set it before g_option_context_new()
Move version printing back until after the options have been parsed,
otherwise it won't work, since it evaluates a flag set by the
option parser.
If no plugin is given, print the info for all plugins. This can be used as a
starting point to generate a profile about what the gstreamer installation can
potentialy handle (e.g. for MTP or DLNA).
Check if we've been interrupted only four times per second instead
of twenty times per second, to wake up the cpu less often and
save power (see bug #600922).
Revisit these strings now that the change regarding the message source
object in gst_element_found_tags_for_pad() got reverted. Try to refer
explicitly to what kind of element it is (element, pad, etc.) in some
cases, which is nicer than having to deduce this info (and we can
re-use the already existing translated strings for the most common
case). It also makes for better example code, since it's clear now
that the message source object doesn't have to be an element.
When it is shutting down a pipeline after ctrl-c, set pipeline to
paused before waiting for the main loop to complete all pending
transactions. Fixes#584657.
If some part of the pipeline is generating signals or idle functions
at a fast rate, waiting for a main loop iteration may never return.
Disable the handling of the CLOCK_LOST messages until we fixed and released the
elements (rtspsrc) that break when we quickly PAUSE/PLAY the pipeline.
Fixes#579127
We should use GLib's g_print*() functions for printing stuff in gst-launch, not printf and friends, since we're printing
translated strings, which we get in UTF-8 encoding, and GLib's print functions expect UTF-8 encoded strings whereas printf
et al. expect strings in the locale encoding, which may or may not be UTF-8.
Also add a PRINT convenience macro so we don't have to litter the code with if (!quiet) statements.
Add a GST_MESSAGE_REQUEST_STATE that can be posted by element when they would
like to have the application change the state of the pipeline. the primary use
case is to pause the pipeline when an audio mixer is mixing a higher priority
stream but it can also be used for other purposes.
Add some docs and a unit test.
Implement the REQUEST_STATE message in gst-launch.
API: gst_message_new_request_state()
API: gst_message_parse_request_state()
API: GST_MESSAGE_REQUEST_STATE
Original commit message from CVS:
* tools/gst-launch.1.in:
Fix description of how to specify a type in caps. Fixes#553873.
Also ranges and list contain values and not property-assignments.
Original commit message from CVS:
2008-11-17 Andy Wingo <wingo@pobox.com>
* tools/gst-inspect.c (print_all_uri_handlers): New function,
prints a summary of what URI schemes are supported by what
elements.
(main): Plumb in support for --uri-handlers or -u, and fix the
argc check for -a and -u.
Original commit message from CVS:
* tools/gst-launch.c:
Change the printing of the 'buffering...' output to avoid putting
a \r in a translateable string (flagged by the TP).
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.
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info):
If possible print the element type of GValueArray properties.
Original commit message from CVS:
* tools/gst-inspect.c: (n_print), (print_hierarchy),
(print_interfaces), (print_element_properties_info),
(print_signal_info):
Use "%s" as format string instead of printing strings directly.
Original commit message from CVS:
Patch by Edward Hervey <edward.hervey@collabora.co.uk>
* tools/gst-run.c:
Include <unistd.h> conditionally on HAVE_UNISTD_H as elsewhere.
Original commit message from CVS:
* tools/gst-inspect.c: (print_uri_handler_info),
(print_element_info):
Print the URI protocols and the URI type supported by the element.
Original commit message from CVS:
* tools/gst-xmlinspect.c: (print_element_info), (main):
De-cruft a bit. If no argument is specified, print all elements in
XML syntax rather than a freestyle list of elements like gst-inspect.
Also, don't print XML header chunk unless we actually have something
to print (ie. don't print it before an error message); print error
message to stderr not stdout. Remove support for printing plugin
info (it would just output something freestyle along the lines of
gst-inspect so far), which fixes#514507. Also add license header.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_dup_mini_object),
(gst_param_spec_mini_object):
* gst/gstminiobject.h:
* win32/common/libgstreamer.def:
* docs/gst/gstreamer-sections.txt:
API: Add GST_IS_PARAM_SPEC_MINI_OBJECT, GST_PARAM_SPEC_MINI_OBJECT
GST_TYPE_PARAM_MINI_OBJECT and gst_value_dup_mini_object. Also move
GstParamSpecMiniObject into a public header for this.
This make GstMiniObject a bit more consistent with GObject and makes
it possible to extend the param specs.
gst_value_dup_mini_object is mainly useful for set_property methods.
Fixes bug #523798.
* tools/gst-inspect.c: (print_element_properties_info):
Print something useful for GstMiniObject properties and not just
"unknown type".
Original commit message from CVS:
* tools/gst-launch.c:
Dump one graph per pipeline state-change and state change name
(if GST_DEBUG_DUMP_DOT_DIR is set).
Original commit message from CVS:
* tools/gst-inspect.c: (print_interfaces),
(print_element_properties_info), (print_pad_info),
(print_signal_info), (print_element_info):
Fix a few memory leaks.
Original commit message from CVS:
* tools/gst-inspect.c: (print_interfaces),
(print_element_properties_info), (print_pad_info),
(print_signal_info), (print_element_info):
Fix a few memory leaks.
Original commit message from CVS:
* gst/gstbuffer.c:
Update some comments.
* tools/gst-inspect.c: (print_element_properties_info):
Improve printing of flags.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstclock.h:
* gst/gstdebugutils.c:
* gst/gstinfo.c:
* gst/gstutils.c:
* gst/gstutils.h:
* libs/gst/base/gstbasesink.c:
* tools/gst-launch.c:
Change GST_GET_TIMESTAMP into gst_util_get_timestamp and replace all
uses as we don't have HAVE_POSIX_TIMERS in public headers.
Thanks Tim for spotting.
Original commit message from CVS:
* gst/gstdebugutils.c:
* gst/gstinfo.c:
Fix wrong order of args in GST_CLOCK_DIFF() usage.
* tools/gst-launch.c:
Use new API to get elapsed time.
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.
Original commit message from CVS:
* tools/gst-inspect.c:
Save approx. 400 1 byte allocs when printing. Use API to acces element
details.
* tools/gst-run.c:
Avoid a strdup.
* tools/gst-xmlinspect.c:
Use API to acces element details.
Original commit message from CVS:
* plugins/elements/gstfakesink.c:
Add some debug text to error message to indicate that
we errored out on request.
* tools/gst-launch.c:
When the state change to PLAYING fails, check for an
error message on the bus and print it.
Original commit message from CVS:
* tools/gst-launch.c: (event_loop), (main):
Don´t try to do any state management when a live pipeline posts
buffering messages.
Also make the buffering string translatable.
Original commit message from CVS:
* gst/gstmessage.h:
Add some more docs for the messages.
* libs/gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_query):
Add some more debugging.
* tools/gst-launch.c: (event_loop):
When interrupting, don't try to set pipeline to PAUSED twice.
Original commit message from CVS:
Patch by: Steve Fink <sphink gmail com>
* tools/gst-inspect.1.in:
Document --print-all and --print-plugin-auto-install-info command
line options in man page.
Original commit message from CVS:
* tools/gst-plot-timeline.py:
Better log parsing (categories can have -). Adjust text vs. lines, so
that they span the same y-range.
Original commit message from CVS:
* tools/gst-launch.c: (event_loop):
When buffering goes from a two digit to a single digit number, make sure
to remove the old second digit by writing a blank over it.
Original commit message from CVS:
* tools/gst-launch.c: (event_loop):
Give more interesting info when buffering starts and stops.
Fix case where buffering starts but we fail to update the buffering flag
because the target state is not PLAYING.
Original commit message from CVS:
* tools/Makefile.am:
* tools/gst-launch.1.in:
Don't create a customised man page based on the host architecture,
describe the default registry path generically. That way the man
page is the same for all architectures and packagers have one
multilib issue less to deal with. Fixes#434926.
Original commit message from CVS:
* tools/gst-inspect.c:
(print_plugin_automatic_install_info_codecs):
Now that we don't check for the 'Codec' keyword any longer in the
klass, we shouldn't spew a warning if the klass isn't a decoder or
encoder (since it might be a Source/Network, for example).
Original commit message from CVS:
* tools/gst-inspect.c:
(print_plugin_automatic_install_info_codecs):
Don't require decoder/demuxer/depayloader elements or
encoder/muxer/paylader elements to have 'Codec' as part of their
factory class string when introspecting a plugin's capabilities.
draft-klass.txt mentions that it might be removed in future, and
flump3dec doesn't have it as part of its class string, so chances
are others might also not have it.
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.
Original commit message from CVS:
* tools/gst-launch.c: (event_loop):
Make sure that we actually show the important message part of a
warning message.
No need to check if the gerror is not NULL to free; first of all
g_free accepts NULL; and second the default error handler would
segfault if gerror was NULL.
Original commit message from CVS:
* tools/gst-inspect.c:
(print_plugin_automatic_install_info_codecs),
(print_plugin_automatic_install_info_protocols),
(print_plugin_automatic_install_info), (main):
Add --print-plugin-auto-install-info option to gst-inspect, so we can
introspect plugin files and get machine-parsable output that corresponds
to the last bit of the missing-plugin installer string (small gotcha:
doesn't take into account ranks).
Original commit message from CVS:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-typefind.c: (main):
* tools/gst-xmlinspect.c: (main):
Call g_thread_init() really really early, before any other GLib
function (see #342564 and recent discussion on gtk-devel-list).
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
* gst/gsttypefindfactory.c: (gst_type_find_factory_call_function):
* tools/gst-inspect.c: (print_element_info):
Fix refcounting of gst_plugin_feature_load to match the docs.
Fixes: #380129
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info):
Print a string instead of 'unknown type' for GValueArray properties
Original commit message from CVS:
* docs/design/part-live-source.txt:
describe howto handle latency
* docs/random/ensonic/profiling.txt:
more ideas
* tools/gst-plot-timeline.py:
fix log parsing for solaris, remove unused function
Original commit message from CVS:
* tests/check/gst/gstcaps.c: (GST_START_TEST), (gst_caps_suite):
Add some tests for gst_caps_intersect().
* tools/gst-launch.c: (event_loop):
Print all buffering percentages we get, even the 100% one.
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info),
(print_signal_info):
Fix printing of flags to match the look of enums.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_post_message),
(gst_element_dispose):
Use _DEBUG_OBJECT some more.
* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
Avoid typechecks.
* tools/gst-launch.c: (main):
If the toplevel element is not a GstPipeline, it must be put in a
pipeline so that a bus and clock is selected.
Original commit message from CVS:
* tools/gst-launch.c: (sigint_handler_sighandler), (check_intr),
(event_loop), (main):
Added some comments here and there.
Post an application message when an interrupt is caught instead of doing
an uncontrolled state change.
Clean up the event loop.
Handle buffering messages, pause/resume the pipeline.
Make shutdown because of an interrupt more reliable.
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info),
(print_signal_info):
List flags as hex so it's easier to deal with.
Original commit message from CVS:
* gst/gstxml.c: (gst_xml_dispose), (gst_xml_parse_file),
(gst_xml_parse_memory), (gst_xml_get_element):
Chain up to parent class in dispose function and also
unref the elements in the toplevel_elements GList.
Don't leak XmlDocPtr in _parse_file() and _parse_memory().
Always return a reference in gst_xml_get_element() rather
than only sometimes.
* tools/gst-launch.c: (xmllaunch_parse_cmdline):
Don't leak GstXml object.
Original commit message from CVS:
* tools/gst-launch.c: (print_tag):
More space on the left for the tag names, to cater
for the 'extended comment' tag (not touching the
string for the first line since it's translated).
Original commit message from CVS:
* tools/gst-launch.c: (main):
If the top-level of the parse is a normal bin, it doesn't do the
right logic to run as a top-level element, so place it inside a
pipeline.
Original commit message from CVS:
2006-07-08 Andy Wingo <wingo@pobox.com>
* tools/gst-launch.c (main): Handle err == NULL.
* gst/gst.c (init_post, ensure_current_registry)
(ensure_current_registry_forking)
(ensure_current_registry_nonforking): Reduce #ifdef ratnest by
factoring out the registry scanning into separate functions. Don't
fork for the rescan is GST_REGISTRY_FORK=no; useful in debugging.
Better environment var name/interface suggestions accepted.
Original commit message from CVS:
Patch by: Peter Kjellerstedt <pkj at axis dot com>
* gst/gst-i18n-app.h:
* gst/gst-i18n-lib.h:
* tools/gst-inspect.c: (print_signal_info):
The attached patch will make the inclusion of gettext.h unconditional in
gst/gst-i18n-app.h and gst/gst-i18n-lib.h, and it will remove the inclusion of
libintl.h in tools/gst-inspect.c.
This allows use of --disable-nls again and fixes#344642.