Commit graph

877 commits

Author SHA1 Message Date
Nirbheek Chauhan
a3abe8b9ae gst-inspect: Use less -F -X everywhere as the pager
This emulates the default behaviour of git help pages, and also fixes
a bug on macOS where `less -F` doesn't display anything at all when
the output is shorter than one terminal screen.

Also moved the DEFAULT_PAGER define to after the includes, because
it's an unprefixed define.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/330
2018-11-23 20:31:27 +05:30
Zeeshan Ali
ef58a84571 gst-inspect: Pipe stderr to pager as well
If stderr is not redirected by the user, also page that.
2018-11-09 12:27:18 +00:00
Zeeshan Ali
8abe052590 gst-inspect: Don't page if output fits the screen 2018-10-30 15:30:38 +01:00
Zeeshan Ali
4fbd3baf1e gst-inspect: Flush stdout before closing stdout FD
Otherwise, last line can be lost.
2018-10-30 14:53:00 +01:00
Zeeshan Ali
5d115a5d64 gst-inspect: Pipe stdout to less if not piped already
https://bugzilla.gnome.org/show_bug.cgi?id=797344
2018-10-28 13:19:47 +00:00
Tim-Philipp Müller
ce4698487e meson: add option to disable parse-launch pipeline string parser 2018-08-10 00:08:43 +01:00
Nirbheek Chauhan
38ec95460f meson: Don't add static printf library to executables
They should only need to link to libgstreamer.
2018-07-25 16:02:06 +05:30
Thibault Saunier
d93076f826 gst-inspect: Sort properties names
Making it simpler to find properties you are looking for when reading.
2018-07-13 08:54:01 -04:00
Stefan Sauer
ffc85bf7f6 inspect: add comment for how to improve tracer support 2017-12-26 12:17:53 +01:00
Tim-Philipp Müller
906bbd3817 tools: gst-inspect: fix readable flag printing for pad properties 2017-11-28 23:37:47 +00:00
Tim-Philipp Müller
ec6d2304bd tools: gst-inspect: don't print element flags whch are always 'none'
We print the interesting flags like clocking capabilities separately
later, this function just always prints 'none', so remove it.
2017-11-26 00:20:13 +00:00
Tim-Philipp Müller
8cc7c3f6aa tools: gst-inspect: print pad properties where we know the subclass type 2017-11-26 00:17:27 +00:00
Tim-Philipp Müller
b60d869b22 tools: gst-inspect: refactor way indentation is done during printing 2017-11-25 23:41:49 +00:00
Tim-Philipp Müller
b8b03f69b0 tools: gst-inspect: stop printing element state_change function
This is really not interesting at all, not sure why we print this.
2017-11-17 00:15:17 +00:00
Tim-Philipp Müller
465094f071 tools: gst-inspect: fix double empty line after pad templates 2017-11-17 00:14:35 +00:00
Stefan Sauer
875903be3f gst-inspect: print more details for typefind and tracer features
Print full details for typefind features. Print some of the available features
for tracers and add some todos for the ones we'd like to see.
2017-10-20 13:13:52 +02:00
Stefan Sauer
ef660a21d6 gst-inspect: reduce casting back and forth
Refactor the print_element_info() to take a GstPluginFeature. Reduces the need
to cast to and from GstElementFactory.
2017-10-20 11:16:46 +02:00
Stefan Sauer
2354c5b152 gst-inspect: simplify the code for printing feature info
Rename print_element_features() to print_feature_info() and move the code that
handles the ElementFactory there. This simplifies the calling code and improves
readability.

Also don't leak the features for other factories.
2017-10-20 11:11:37 +02:00
Mathieu Duponchelle
7da98a2278 gst-inspect: Print GstValueArray properties nicely
https://bugzilla.gnome.org/show_bug.cgi?id=787924
2017-09-22 00:53:12 +02:00
Tim-Philipp Müller
92ad74052b gst-launch: fix compiler warnings for SIGHUP handlers on windows
Fix unused variable/function compiler warnings on windows.
The SIGHUP handling is only available under unix.

https://bugzilla.gnome.org/show_bug.cgi?id=783661
2017-07-20 17:31:41 +01:00
Graham Leggett
cfe59c285c Generate a gstreamer pipeline diagram on SIGHUP.
Useful for debugging a pipeline that refuses to enter a given state.

https://bugzilla.gnome.org/show_bug.cgi?id=783661
2017-07-13 14:02:33 +01:00
Scott D Phillips
f37688ef4d tools: gst-stats: Use standard character escapes
Having '\e' expand to '\x1b' is a gnu extension. I didn't see any
document describing the behavior, but gcc also seems to expand
'\[' to '['.

https://bugzilla.gnome.org/show_bug.cgi?id=782028
2017-07-09 20:10:31 +01:00
Jimmy Ohn
a8acba142f gst-inspect: Fix memory leak in print_pad_templates_info
gst_static_caps_get function returned allocated memory.
So, It should be free using gst_caps_unref.

https://bugzilla.gnome.org/show_bug.cgi?id=784311
2017-06-29 15:26:36 +01:00
Thibault Saunier
55ccfd4760 meson: Add configinc as include_directory in tools/
Otherwise when the glib is used as a subproject config.h is the glib
one, not ours.
2017-06-28 09:38:35 -04:00
Tim-Philipp Müller
9f05e66154 tools: dist new gst-stats man page
Fixes meson build from tarball.
2017-05-20 16:44:56 +01:00
Koop Mast
97cacb78e3 Meson: also build and install gst-stats-1.0 and it's man page.
https://bugzilla.gnome.org/show_bug.cgi?id=781585
2017-04-21 10:55:55 -03:00
Koop Mast
8b06627df9 Add very simple man page for gst-stats.
https://bugzilla.gnome.org/show_bug.cgi?id=781585
2017-04-21 10:55:55 -03:00
Tim-Philipp Müller
921b0f40d8 tools: gst-launch: print structure property notifies nicer
One less layer of escaping, but still lots of ugly \.
2017-03-27 18:27:59 +01:00
Tim-Philipp Müller
b84cb75200 tools: replace mentions of 'mad' on the gst-launch-1.0 man page
The 'mad' plugin has been removed. Mention mpg123audiodec instead.

https://bugzilla.gnome.org/show_bug.cgi?id=776140
2017-03-20 16:54:22 +00:00
Mark Nauwelaerts
31f96fc7a6 tools: update gst-inspect man page 2017-01-05 15:26:08 +01:00
Thibault Saunier
221d65a5e0 gst-launch: Add a '--types' option to filter elements by types to print
This way the user can easily figure out what are the available audio
encoder for example doing:

  gst-inspect-1.0 --types Encoder/Audio

https://bugzilla.gnome.org/show_bug.cgi?id=776392
2016-12-23 08:24:12 -03:00
Nicolas Dechesne
2d5dba8d05 tools: gst-launch: set GST_GL_XINITTHREADS
This ensure that XInitThreads is called and so gl contexts are properly
initialized.

https://bugzilla.gnome.org/show_bug.cgi?id=776401
2016-12-23 12:20:52 +02:00
Stefan Sauer
1bfd04a5fe tracers/stats: log optional fields instead of GST_CLOCK_TIME_NONE
Simplify the traces and avoid trace analyzer to know that ((1<<64) - 1) means
we had no value.
2016-12-16 15:55:21 +01:00
Edward Hervey
9cc36e511c tools: Remove files to be cleaned
manpages are no longer auto-generated
cov-related files should not be there (if needed we could use gitignore)
2016-11-23 18:56:20 +01:00
Tim-Philipp Müller
94cd315595 tools: fix distcheck and .gitignore 2016-11-23 09:58:44 +00:00
Antonio Ospite
38b9aa4c33 meson: tools: install the man pages
https://bugzilla.gnome.org/show_bug.cgi?id=773917
2016-11-23 09:38:25 +00:00
Antonio Ospite
2a5a8dd3c7 tools: ship the final man pages directly, no more man pages templates
Don't use templates for the man pages, the API version change is a rare
event, so it's not really worth keeping in place the "sed" boilerplate
to have it set at build time.

Shipping the final man pages directly also makes it easer to install the
man pages with meson (in a future commit).

Note that now all the occurrences of the programs names have the API
version as a suffix.

Traditionally the example command lines looked like:

  gst-launch ...

Now they look like:

  gst-launch-1.0 ...

This reflects the actual programs names and makes it easier to copy and
paste the example commands.

Also, the .gitignore file is adjusted not to ignore the final man pages
anymore.

You may need to clean your src/build directory before pulling in this
patch.

https://bugzilla.gnome.org/show_bug.cgi?id=773917
2016-11-23 09:09:05 +00:00
Antonio Ospite
4eb64cd276 meson: tools: generate the targets dynamically
The three targets are the same except for input and output
files, use a loop and generate them dynamically.

https://bugzilla.gnome.org/show_bug.cgi?id=773917
2016-11-11 10:01:16 +00:00
Antonio Ospite
ef3a60793b tools: don't mention gst-feedback in man pages
gst-feedback no longer exists.

https://bugzilla.gnome.org/show_bug.cgi?id=773917
2016-11-11 09:59:40 +00:00
Antonio Ospite
76656050b5 tools: put the examples descriptions before the commands in man page
Put the description of the example command lines before the command
instead of after them. The new way is more intuitive.

https://bugzilla.gnome.org/show_bug.cgi?id=773917
2016-11-11 09:58:40 +00:00
Antonio Ospite
7521d5b3cf tools: don't start lines with single quotes in man page
When a line starts with a single quote it's treated in a special way by
man, which may result in paragraphs of the man page not rendered by the
man pager, so just avoid that.

A possible solution could have been to escape the singe quote with
a \(cq sequence but this is rather unreadable, instead the text has been
reformatted to have the problematic quoted 'ppc' string on the previous
line.

https://bugzilla.gnome.org/show_bug.cgi?id=773917
2016-11-11 09:57:39 +00:00
Antonio Ospite
64c097d296 tools: escape dashes in the man pages
The portable way to have the dashes to be rendered as ASCII minuses is
to use the sequence backslash-dash, use this style at least for text
that can be copied and pasted (e.g. command names, file names, element
options).

Also use backslash-dash in the NAME section as suggested by lexgrog(1).

https://bugzilla.gnome.org/show_bug.cgi?id=773917
2016-11-11 09:55:16 +00:00
Antonio Ospite
050f486d10 tools: gst-launch: fix minor memory leak when failing to parse options
Commit 215cfcf993 (gstreamer: Fix memory leaks when context parse
fails) fixes some memory leak, but in one of the newly added calls to
g_clear_error() the wrong variable was passed.

When failing to parse command line options, free the "err" variable, not
the "error" one.

https://bugzilla.gnome.org/show_bug.cgi?id=773907
2016-11-04 16:59:36 +02:00
Jan Schmidt
5a5ae1be1f parse-launch: Support linking all pads with new operator
Introduce a new operator ':' - e.g. element1 ':' element2

For example, 'uridecodebin : encodebin' -
if the encodebin has multiple profiles compatible with the
decodebin, multiple links will be created.

With '!' , after one delayed link is successfully done, the
pad-added callback is disconnected.

https://bugzilla.gnome.org/show_bug.cgi?id=751450
2016-11-02 12:04:33 +11:00
Tim-Philipp Müller
ad537a2d51 tools: gst-inspect: add * for pointer signal arguments where needed
Print GObject argument properly with pointer marker:

  "client-added" :  void user_function (GstElement* object,
                                        GObject* arg0,
                                        gpointer user_data);

instead of

  "client-added" :  void user_function (GstElement* object,
                                        GObject arg0,
                                        gpointer user_data);

for gst-inspect-1.0 tcpserversink.
2016-09-04 20:39:31 +01:00
Tim-Philipp Müller
3cae933579 tools: gst-inspect: don't print internal pad request function name
This just confuses people, they look at it and try to call it
directly by name, instead of using the public GstElement API.
It stands to reason that it goes without saying that when an
element provides request pads that they can actually be
requested using the standard API, and there's no point in
printing internal implementation details of the element.
2016-08-28 16:04:27 +01:00
Nirbheek Chauhan
b2f9808722 Add support for Meson as alternative/parallel build system
https://github.com/mesonbuild/meson

With contributions from:

Tim-Philipp Müller <tim@centricular.com>
Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
Jussi Pakkanen <jpakkane@gmail.com> (original port)

Highlights of the features provided are:
* Faster builds on Linux (~40-50% faster)
* The ability to build with MSVC on Windows
* Generate Visual Studio project files
* Generate XCode project files
* Much faster builds on Windows (on-par with Linux)
* Seriously fast configure and building on embedded

... and many more. For more details see:

http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html

Building with Meson should work on both Linux and Windows, but may
need a few more tweaks on other operating systems.
2016-08-19 21:26:14 +01:00
Jan Schmidt
9e23670671 Update the examples in the gst-launch-1.0 manpage
Replace elements that don't exist any more with ones
that do, and insert elements like mpegaudioparse where
they are needed.

https://bugzilla.gnome.org/show_bug.cgi?id=727105
2016-05-13 18:05:39 +10:00
Guillaume Desmottes
4fe32b923f inspect: fix feature leak
https://bugzilla.gnome.org/show_bug.cgi?id=765957
2016-05-04 10:09:43 +03:00
Tim-Philipp Müller
939a7fee6c tools: gst-launch: fix up caps printing in verbose mode
Add missing 'else' and print caps and taglists without the
annoying duplicate string escaping, making both nicer to read.

Fixes string leak and coverity CID 1358492.
2016-04-13 16:42:31 +01:00
Tim-Philipp Müller
d09dc8cbc0 tools: gst-launch: use new async property change notification API
https://bugzilla.gnome.org/show_bug.cgi?id=763142
2016-04-08 13:28:06 +01:00
Stefan Sauer
f69382c5f9 tracer/gststats: fix mismatch between '.class' and tracer args
Clean up from the recent changes. The logging descriptiors did not match what we logged.
2016-01-20 09:14:12 +01:00
Tim-Philipp Müller
8641d7c911 tracers: fix thread-id casts to 64-bit ints on 32-bit systems
https://bugzilla.gnome.org/show_bug.cgi?id=760762
2016-01-18 11:28:28 +00:00
Stefan Sauer
765cf11ff8 gst-stats: update to latest tarcer api
The thread-ids are serialized as uint64. The 'elem-ix' got changed to
'element-ix'. Make the code a bit more robust.
2016-01-16 21:02:39 +01:00
Nicolas Dufresne
4127407823 gst-launch: Fix process return value on error
In case of a run-time error message, the process return value was left
unset. This would lead to error not being caught at shell level.

https://bugzilla.gnome.org/show_bug.cgi?id=759019
2015-12-04 10:45:44 -05:00
Nicolas Dufresne
f3a5c17464 Revert "tools: gst-launch: return non-0 exit code on async error"
This reverts commit 2ee4cba248.
2015-12-04 10:45:44 -05:00
Tim-Philipp Müller
2ee4cba248 tools: gst-launch: return non-0 exit code on async error
When an error happens in playing state, still return a
non-0 exit code.

https://bugzilla.gnome.org/show_bug.cgi?id=759019
2015-12-04 15:09:39 +00:00
Luis de Bethencourt
587b95a857 stats: always free log
We always want to free the open file log if fopen() succeeded. Independently
of if fgets() succeeds or fails.

CID 1326055

https://bugzilla.gnome.org/show_bug.cgi?id=756864
2015-10-21 11:19:14 +01:00
Tim-Philipp Müller
bc5c199bc5 docs: mention xdot utility to view .dot files directly 2015-10-16 15:59:49 +01:00
Stefan Sauer
e5eb05741b stats: TIMESTAMP -> PTS 2015-10-05 20:59:39 +02:00
Stefan Sauer
d9901e7019 stats: fix cpu stats printing
Only print them if we have them. Also scale them by 10.0 as the are in
per-mille now.
2015-10-05 20:59:39 +02:00
Stefan Sauer
f09dd66cf6 stats: don't warn on ".class" log lines 2015-10-05 20:59:39 +02:00
Stefan Sauer
dbb1897e9b rusage: implement windowing of cpuload
Add a local help to the rusage plugin that supports windowing of values. We want
to generalize this for use in other plugins.
2015-10-05 20:59:39 +02:00
Stefan Sauer
018858980b rusage: announce the data format
Rusage will now announce what is meassures and how it is logged. Use the new format in stats.
Cleanup the the code and naming.
2015-10-05 20:59:39 +02:00
Stefan Sauer
c13ee1f2e9 stats: improve cpu load meassurements
Rename variables for clarity. Handle the initial disparity between debug time
and the time already spent in the proc and main thread.
2015-10-05 20:59:39 +02:00
Stefan Sauer
b90ee2a84c gst-stats: use the rusage stats
Add cpuload info from rusage traces.
2015-10-05 20:59:39 +02:00
Stefan Sauer
ff7ba1eb8d gst-stats: filter complete thread section if we have no pads 2015-10-05 20:59:39 +02:00
Stefan Sauer
0c26387e62 stats: improve the handling of parentage
Log new object after we did the check for parents.
2015-10-05 20:59:39 +02:00
Stefan Sauer
81e617fa70 stats: print thread key for stats and filter empty pad-sections 2015-10-05 20:59:39 +02:00
Stefan Sauer
f8390caf2c stats: update buffer flags
Remove some buffer flags that were leftovers from 0.10 and handle new 1.0 buffer
flags.
2015-10-05 20:59:39 +02:00
Stefan Sauer
b8eef6ba2c stats: add a stats frontend
Parse the log and collect data from tracer messages.
2015-10-05 20:59:39 +02:00
Stefan Sauer
6e9f018dc4 inspect: add support for the new factory
Handle tracer modules.
2015-10-05 20:59:39 +02:00
Vineeth TM
456ef2aa1d tests/gst-launch: Fix sample memory leak
When sample is got using gst_tag_list_get_sample_index, it should
be free'd.

https://bugzilla.gnome.org/show_bug.cgi?id=756069
2015-10-05 12:08:30 +01:00
Vineeth TM
215cfcf993 gstreamer: Fix memory leaks when context parse fails
When g_option_context_parse fails, context and error variables are not getting free'd
which results in memory leaks. Free'ing the same.

And replacing g_error_free with g_clear_error, which checks if the error being passed
is not NULL and sets the variable to NULL on free'ing.

https://bugzilla.gnome.org/show_bug.cgi?id=753851
2015-10-02 17:31:11 +03:00
Tim-Philipp Müller
6a9b191fb2 tools: gst-launch: fix --exclude command line option
This has not worked (as in: crashed) since 2005, so
perhaps it should just be removed instead.
2015-09-05 11:19:53 +01:00
Vivia Nikolaidou
957a81eef9 gst-indent: Add support for gindent as executable name
gst-indent used to support gnuindent and indent as executable names.
However, on OSX one can "brew install gnu-indent" and then the
executable name will be gindent. Added support for that.

https://bugzilla.gnome.org/show_bug.cgi?id=750351
2015-06-03 18:09:24 +02:00
Tim-Philipp Müller
8e6561be91 Remove obsolete Android build cruft
This is not needed any longer.
2015-04-26 17:49:44 +01:00
Mathieu Duponchelle
5d96658874 tools: remove outdated completion script
+ Remove the associated test

https://bugzilla.gnome.org/show_bug.cgi?id=744877#c21
2015-03-18 14:16:48 +01:00
Stefan Sauer
a4e561c7f8 gst-inspect: only print presets line if num-presets > 0
Also check for an empty strv.
2015-01-04 23:26:19 +01:00
Stefan Sauer
d3958b912e gst-inspect: fix output for -a
Use n_print to ensure all lines are prefixed with the element name.
2015-01-04 22:52:19 +01:00
Stefan Sauer
a536c62ed6 gst-inspect: print preset names
If the element supports presets and ships some, print them.
Fixes #741427
2014-12-21 14:15:54 +01:00
Sebastian Dröge
154eefecc9 Don't compare booleans for equality to TRUE and FALSE
TRUE is 1, but every other non-zero value is also considered true. Comparing
for equality with TRUE would only consider 1 but not the others.

Also normalize booleans in a few places.
2014-12-01 09:51:37 +01:00
Aurélien Zanelli
c2390c8943 gst-inspect: add G_PARAM_DEPRECATED to known flags
Display 'deprecated' instead of flag value when using G_PARAM_DEPRECATED
in element properties.

https://bugzilla.gnome.org/show_bug.cgi?id=739518
2014-11-02 12:50:04 +00:00
Jan Schmidt
8f4b4a9497 gst-indent: Run indent twice. Once is not idempotent, twice seems to be. 2014-10-20 23:55:47 +11:00
Stefan Sauer
d5518edf12 fixme: bump leftover 0.11 fixme comments 2014-09-25 21:27:03 +02:00
Tim-Philipp Müller
d3de22d802 tools: gst-inspect: don't list pad functions
Don't print all the different pad functions, it's just
confusing and no one has ever needed to know this for
anything ever anyway, it's just useless information.
Besides, we also label the default implementations as
'custom' implementations (the code that tries to
prevent that doesn't actually work it seems).

https://bugzilla.gnome.org/show_bug.cgi?id=736377
2014-09-12 14:13:54 +01:00
Руслан Ижбулатов
35fc309544 gst-launch: Support SIGINT (Ctrl+C) on W32
W32 has no SIGINT, but it does have SetConsoleCtrlHandler(), which sets up
a handler for Ctrl+C.

https://bugzilla.gnome.org/show_bug.cgi?id=733814
2014-07-28 09:21:40 +02:00
Sebastian Dröge
7f9c0d06dd docs: There is no decodebin2 anymore, don't pretend otherwise 2014-07-08 11:18:05 +02:00
Tim-Philipp Müller
721a1c7553 tools: suppress GLib warnings when gst-inspecting deprecated properties
GLib in git will spew a g_warning() when a property marked as
deprecated via param spec flags is accessed. Suppress this by
setting the appropriate environment variable.
2014-07-04 19:40:28 +01:00
Olivier Crête
7992174a1a DeviceProvider: Rename from DeviceMonitor 2014-06-26 14:45:30 -04:00
Wim Taymans
df7bfb6a10 inspect: print structure values of properties 2014-04-12 07:13:02 +02:00
Edward Hervey
98ea309bea gst-launch.1: Playbin2 is dead, long live playbin
Looks like that was the last remaining mention in core ...
2014-04-03 07:37:11 +02:00
Sebastian Dröge
338a150a1b gst-inspect: Add missing \n in output 2014-04-02 23:52:24 +02:00
Wim Taymans
f85ce91e9d launch: place the deep-notify on the right pipeline
If the toplevel bin is not not a pipeline, we place the bin in a
pipeline. Also make sure that we connect to the deep-notify of this new
pipeline because we will g_signal_handler_disconnect() from it later.
2014-03-25 12:38:07 +01:00
Olivier Crête
59611a01ac gst-inpect: Print device monitor 2014-03-16 20:50:53 -04:00
Sebastian Dröge
be32ae0252 gst-inspect: Fix yet another compiler warning
https://bugzilla.gnome.org/show_bug.cgi?id=724045
2014-02-10 17:09:59 +01:00
Sebastian Dröge
53d8460bfd gst-inspect: Make clang happy with our g_vprintf() wrapper 2014-02-08 16:42:55 +01:00
Sebastian Dröge
c1ec592ec2 tools: Support non-ASCII tags
By calling setlocale() to get us multi-byte/UTF-8 support.

https://bugzilla.gnome.org/show_bug.cgi?id=723164
2014-01-30 21:25:48 +01:00
Edward Hervey
12b3a37b5e gst-launch: Handle taglist copy failure
If we couldn't copy the tags, just return instead of trying to use bogus
values.
2013-12-10 18:30:03 -05:00
Edward Hervey
60b94c6498 gst-inspect: Index features are no more
So remove code that will never be used
2013-12-10 18:25:22 -05:00