Seungha Yang
d944c27d96
gst-play: Add support for audio mute control
...
Assign 'm' keyboard input to control audio mute state
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/674 >
2020-10-30 01:32:31 +09:00
Jimmy Ohn
00bcf9d3e2
tools:discoverer: Remove short name for use-cache
...
There is no need to add short name for 'use-cache'.
The 'async' option already has 'a' short name.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/716 >
2020-06-22 17:52:20 +09:00
Thibault Saunier
545a993316
discoverer: Enhance printed information when not verbose
...
Basically print information about media tracks making without tags
nor buffers in caps making still quite small but containing all
information infos.
Stop making 'Topology' section and just print the info
before:
```
Topology:
container: MPEG-2 Transport Stream
audio: AC-3 (ATSC A/52)
video: H.264 (High Profile)
Properties:
Duration: 0:00:05.512394259
Seekable: yes
Live: no
Tags:
audio codec: AC-3 (ATSC A/52)
bitrate: 192000
video codec: H.264 (High Profile)
minimum bitrate: 12947
maximum bitrate: 12947
```
After:
```
Properties:
Duration: 0:00:05.512394259
Seekable: yes
Live: no
container: MPEG-2 Transport Stream
audio: AC-3 (ATSC A/52)
Stream ID: b076403d73e0c5fc13985832e8d585945603993437ba14b0799f422f9495e8ef:1/00001100
Language: <unknown>
Channels: 2 (front-left, front-right)
Sample rate: 48000
Depth: 32
Bitrate: 192000
Max bitrate: 0
video: H.264 (High Profile)
Stream ID: b076403d73e0c5fc13985832e8d585945603993437ba14b0799f422f9495e8ef:1/00001011
Width: 1920
Height: 1080
Depth: 24
Frame rate: 30000/1001
Pixel aspect ratio: 1/1
Interlaced: true
Bitrate: 10363396
Max bitrate: 12947
```
2020-04-06 10:01:32 -04:00
Jan Schmidt
0bc8998bdf
gst-play: Add -i parameter for instant rate changes
...
Add a command line flag that enables use of the
instant rate changes flag when doing rate changes.
2020-04-01 21:01:38 +00:00
Peter Seiderer
51253830f3
meson: static linkig of tools needs gmodule_dep
...
Add gmodule_dep (analog to gstreamer/tools/meson.build).
Fixes:
.../bin/ld: .../usr/lib/libgstreamer-1.0.a(gstplugin.c.o): in function `gst_plugin_register_func':
gstplugin.c:(.text+0x3bc): undefined reference to `g_module_make_resident'
.../bin/ld: .../usr/lib/libgstreamer-1.0.a(gstplugin.c.o): in function `_priv_gst_plugin_load_file_for_registry':
gstplugin.c:(.text+0x1228): undefined reference to `g_module_supported'
.../bin/ld: gstplugin.c:(.text+0x126c): undefined reference to `g_module_open'
.../bin/ld: gstplugin.c:(.text+0x1368): undefined reference to `g_module_symbol'
.../bin/ld: gstplugin.c:(.text+0x1494): undefined reference to `g_module_supported'
.../bin/ld: gstplugin.c:(.text+0x17f4): undefined reference to `g_module_close'
.../bin/ld: gstplugin.c:(.text+0x1a2c): undefined reference to `g_module_error'
2020-03-04 14:48:15 +00:00
Thibault Saunier
e8a907e413
tools: Add support for CameraSource pipeline description
2019-11-27 12:13:43 +00:00
Seungha Yang
fd830868bf
gst-play: Handle KeyDown event instead of KeyUp on Win32 keyboard handler
...
To handle long press case, KeyDown input should be handled instead of KeyUp.
Note that OS will take care of the sensitivity of KeyDown event, so we can safely
assume one KeyDown as one input. That will not break user experience.
2019-11-19 17:48:26 +09:00
Seungha Yang
60d58038df
gst-play: Remove timer GSource from Win32 keyboard handler
...
Use WaitForMultipleObjects to handle keyboard input only if pending
keyboard input exists.
2019-11-19 17:48:22 +09:00
Tim-Philipp Müller
289d8e53e2
Remove autotools build system
2019-10-13 14:15:43 +01:00
Matthew Waters
56b0ced0bc
build: fix werror build on windows
...
_isatty() is in the io.h header
2019-10-01 01:29:47 +00:00
Mathieu Duponchelle
0e1da383a7
device-monitor: fix device listing without --follow
...
In !427 , I removed the call to get_devices in order to always
print added devices from the bus handler, however this requires
the main loop to run until all pending messages have been consumed.
This commit achieves this by always running the main loop, and
simply adding an idle source to quit it in the non --follow case.
2019-09-30 18:54:12 +00:00
Seungha Yang
f1d3307e03
gst-play: Add support for interacting console input on Windows
...
Add Windows keyboard input handler. This could make gst-play UX
consistent between *nix and Windows.
2019-09-26 03:02:31 +09:00
Seungha Yang
dfe06287d6
gst-play: Use gst_print* to avoid broken stdout string on Windows
...
Equvalant to https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/258
When debug enabled, the debug string might be broken on Windows.
2019-09-24 15:40:20 +09:00
Matthew Waters
8ce2460ad5
build: fix debug output werror build with newer gcc
...
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/tag/tag.h:25,
from ../gst-libs/gst/tag/gsttageditingprivate.h:24,
from ../gst-libs/gst/tag/gsttageditingprivate.c:23:
../gst-libs/gst/tag/gsttageditingprivate.c: In function ‘__exif_tag_capturing_white_balance_to_exif_value’:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/tag/gsttageditingprivate.c:265:3: note: in expansion of macro ‘GST_WARNING’
265 | GST_WARNING ("Invalid white balance: %s", str);
| ^~~~~~~~~~~
../gst-libs/gst/tag/gsttageditingprivate.c:265:40: note: format string is defined here
265 | GST_WARNING ("Invalid white balance: %s", str);
| ^~
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/tag/tag.h:25,
from ../gst-libs/gst/tag/gstxmptag.c:39:
../gst-libs/gst/tag/gstxmptag.c: In function ‘deserialize_exif_gps_direction’:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:818:5: note: in expansion of macro ‘GST_WARNING’
818 | GST_WARNING ("Missing %s tag", dirref_str);
| ^~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:818:27: note: format string is defined here
818 | GST_WARNING ("Missing %s tag", dirref_str);
| ^~
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/tag/tag.h:25,
from ../gst-libs/gst/tag/gstxmptag.c:39:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:814:5: note: in expansion of macro ‘GST_WARNING’
814 | GST_WARNING ("Missing %s tag", dir_str);
| ^~~~~~~~~~~
../gst-libs/gst/tag/gstxmptag.c:814:27: note: format string is defined here
814 | GST_WARNING ("Missing %s tag", dir_str);
| ^~
In file included from ../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gst.h:55,
from ../gst-libs/gst/gl/gstgl_fwd.h:24,
from ../gst-libs/gst/gl/gl.h:24,
from ../gst-libs/gst/gl/gstglsl.c:25:
../gst-libs/gst/gl/gstglsl.c: In function ‘gst_glsl_version_profile_from_string’:
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:645:5: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
645 | gst_debug_log ((cat), (level), __FILE__, GST_FUNCTION, __LINE__, \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
646 | (GObject *) (object), __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../dist/linux_x86_64/include/gstreamer-1.0/gst/gstinfo.h:1068:27: note: in expansion of macro ‘GST_CAT_LEVEL_LOG’
1068 | #define GST_WARNING(...) GST_CAT_LEVEL_LOG (GST_CAT_DEFAULT, GST_LEVEL_WARNING, NULL, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
../gst-libs/gst/gl/gstglsl.c:333:7: note: in expansion of macro ‘GST_WARNING’
333 | GST_WARNING ("Invalid preprocesser directive detected: %s", version_s);
| ^~~~~~~~~~~
../gst-libs/gst/gl/gstglsl.c:333:62: note: format string is defined here
333 | GST_WARNING ("Invalid preprocesser directive detected: %s", version_s);
| ^~
In function ‘print_stream_info’,
inlined from ‘print_topology’ at ../tools/gst-discoverer.c:352:3:
../tools/gst-discoverer.c:316:3: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
316 | g_print ("%*s%s: %s\n", 2 * GPOINTER_TO_INT (depth), " ",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
317 | gst_discoverer_stream_info_get_stream_type_nick (info), desc);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-09-23 17:59:12 +10:00
Mathieu Duponchelle
dff5399e87
gst-device-monitor: stop calling gst_device_monitor_get_devices()
...
See https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/280
2019-09-17 14:55:00 +00:00
Matthew Waters
1f2028e2ef
device-monitor: print caps features in the caps
2019-09-17 21:34:42 +10:00
Seungha Yang
0b44ac28b7
gst-play: Handle "space" key event correctly on Windows
...
The key name string given by GetKeyNameText() can have uppercase letter.
2019-06-30 13:10:50 +09:00
Seungha Yang
a84abe0efc
tools: gst-play: Update man page
...
Add some missing option descriptions including the newly introduced one by
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/185
2019-03-31 17:44:15 +09:00
Seungha Yang
5b5fd9033c
gst-play: Add wait-on-eos option for image file playback
...
Since gst-play is stopping playback on EOS message, image file playback
is almost impossible until now. Not only for image file, this option
seems to helpful if an user wants to see the last frame.
2019-03-29 19:52:16 +09:00
Thibault Saunier
0149f87626
tools:discoverer: Add an option to print the cache directory
2019-03-07 20:59:29 +00:00
Thibault Saunier
54920276b0
discoverer: Implement GstDiscovererInfo caching
...
This uses the gst_discoverer_info_from/to_variant API and saves
the variants on disc (in the user data cache dir) allowing much
faster retrieval of the information after the cache has been built.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/398
2019-03-07 20:59:29 +00:00
Thibault Saunier
78431e7887
tools: device-monitor: Add support for modified devices
2019-02-08 22:01:24 +00:00
Tim-Philipp Müller
7e9d6720ca
gst-play: use Fisher-Yates shuffle for shuffling the playlist
2018-08-10 12:28:41 +01:00
Vivia Nikolaidou
effd892021
discoverer: Don't crash when running with -v if channel-mask==0 and >7 channels
...
For e.g. 16-channel audio, if the channel mask is 0 (which it usually
is), gst_audio_channel_positions_from_mask would get confused,
ultimately leading into a crash.
https://bugzilla.gnome.org/show_bug.cgi?id=796578
2018-06-14 15:13:51 +03:00
Christoph Reiter
b163f373c3
meson: install the man pages for the command line tools
...
https://bugzilla.gnome.org/show_bug.cgi?id=796274
2018-05-20 13:29:30 +01:00
Edward Hervey
cb28f49625
tools: Fix discoverer deprecation
...
The only information provided by "misc" was the missing plugins which
is already handled with another API
2018-04-02 08:53:28 +02:00
Antonio Ospite
cfc1be0d61
tools: play: fix leaving STDIN in non-blocking mode after exit
...
gst-play-1.0 sets STDIN to non-blocking mode to have the input
characters read as soon as they arrive.
However, when gst_play_kb_set_key_handler() gets called from
restore_terminal() it forgets to restore the STDIN blocking status.
This can result in broken behavior for cli command executed in the same
terminal after gst-play-1.0 exited.
It turns out that putting STDIN in non-blocking mode is not even the
proper way to achieve the desired effect, instead VMIN and VTIME in
struct termios should be set to 0.
Let's do that, and don't mess with the STDIN blocking mode now that it's
not necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=794591
2018-03-26 11:59:56 +01:00
Edward Hervey
3de5fd4342
gst-play: Prevent disabling all streams
...
This would have bad effects :)
2017-10-27 09:51:29 +02:00
Seungha Yang
a8e05cc9cc
gst-play: Support track change on playbin3
...
* playbin3 does not support {current,n}-{audio,video,text}
properties, and they were replaced by GstStreams API.
So, GstStreams API and select-stream event should be used
for track change in case of playbin3.
see also https://bugzilla.gnome.org/show_bug.cgi?id=769079
* By using commend line option "--use-playbin3", gst-play will
use playbin3 regardless of "USE_PLAYBIN" env variable.
https://bugzilla.gnome.org/show_bug.cgi?id=775469
2017-10-27 09:45:39 +02:00
Mathieu Duponchelle
889bb92882
discoverer: output channel positions
...
https://bugzilla.gnome.org/show_bug.cgi?id=783722
2017-10-11 19:47:24 +02:00
Mathieu Duponchelle
1d5a6627d8
discoverer: output whether the uri is live
...
https://bugzilla.gnome.org/show_bug.cgi?id=783722
2017-10-11 19:47:24 +02:00
Olivier Crête
41c1064f5f
tools: gst-device-monitor: Print gst-launch example
...
Print a gst-launch-1.0 line that could get to this device,
useful as we don't have other ways to see what it does exactly.
This may not work if the create element has configurations other than
properties.
https://bugzilla.gnome.org/show_bug.cgi?id=781152
2017-04-11 14:27:59 -04:00
Tim-Philipp Müller
a1085c3b1f
tools: gst-play: improve verbose output of property notifications
...
Use new message notify API and print caps and taglists in a nicer
to read way, just like gst-launch-1.0 does nowadays, without
escaping everything three times.
2017-03-07 00:25:03 +00:00
Nicolas Dechesne
7c0c59ccdf
tools: gst-play: set GST_GL_XINITHREADS
...
This ensure that XInitThreads is called and so gl contexts are properly
initialized.
https://bugzilla.gnome.org/show_bug.cgi?id=776403
2016-12-23 12:18:10 +02:00
Tim-Philipp Müller
c90f18994c
tools: gst-play: cycle between video tracks without disabling video
2016-09-04 16:04:00 +01:00
Nirbheek Chauhan
5c4f4ac1bd
Add support for Meson as alternative/parallel build system
...
https://github.com/mesonbuild/meson
With contributions from:
Tim-Philipp Müller <tim@centricular.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-20 11:09:51 +01:00
Jan Schmidt
657a9c23d6
gst-play: Allow disabling audio/video/subtitle tracks
...
When cycling through tracks, add 'disable' to the set
of states.
2016-07-15 22:51:35 +10:00
Guillaume Desmottes
a3c47a0754
tools: fix device leaks in gst-device-monitor
...
gst_message_parse_device_{added,removed} is actually returning a new ref
on the device.
https://bugzilla.gnome.org/show_bug.cgi?id=768776
2016-07-15 12:58:53 +01:00
Guillaume Desmottes
ef1a99d4d8
gst-play: call gst_deinit()
...
So we can use gst-play to track memory leaks.
https://bugzilla.gnome.org/show_bug.cgi?id=765216
2016-04-18 11:36:39 -04:00
Vincent Penquerc'h
509d4a0f92
gst-play: remove peculiar setting of invalid -v property
2016-03-04 13:10:49 +00:00
Tim-Philipp Müller
a153804566
tools: gst-play: add 'n' and 'b' as additional shortcuts for next/previous item
...
< and > are composed with shift + something else on many keyboards
layouts, so don't work well when injecting them via windowing systems
which will send them as shift key press and separate other key, and
we the don't combine that to < or > properly. n/b are easier.
2016-02-25 23:16:22 +00:00
Tim-Philipp Müller
4f5a263381
tools: gst-play: allow setting of flags in serialized foo+bar format
...
https://bugzilla.gnome.org/show_bug.cgi?id=751901
2016-01-18 19:21:52 +00:00
Hugues Fruchet
1c72c6ddce
tools: gst-play: add command line options for verbose output and playbin flags
...
https://bugzilla.gnome.org/show_bug.cgi?id=751901
2016-01-18 19:21:52 +00:00
Nirbheek Chauhan
bc90841c7d
gst-device-monitor: Use g_printerr instead of g_error
...
g_error is meant to be used for programmer errors (causes an abort),
not for expected runtime errors.
2016-01-14 17:51:13 +00:00
Tim-Philipp Müller
f2ecf85103
tools: gst-device-monitor: print uint properties in both decimal and hex
...
Some values are easier to read and make sense of in hex.
https://bugzilla.gnome.org//show_bug.cgi?id=759780
2015-12-29 11:29:31 +00:00
Tim-Philipp Müller
69d3b098a2
tools: gst-device-monitor: print non-string device properties too
2015-12-26 11:43:22 +00:00
Nirbheek Chauhan
49e71afe7b
tools: gst-device-monitor: fix two memory leaks
...
The removed GList link needs to be freed too, and
the G_OPTION_REMAINING arguments need to be freed.
2015-10-28 18:56:03 +00:00
Vivia Nikolaidou
476dff826e
gst-play: Removed erroneous comment
...
The "fall through" comment was wrong. Removed.
https://bugzilla.gnome.org/show_bug.cgi?id=755440
2015-10-02 17:28:27 +03:00
Vivia Nikolaidou
2528a5bbd8
gst-play: Add keyboard shortcut '0' to seek to beginning
...
https://bugzilla.gnome.org/show_bug.cgi?id=755440
2015-10-02 17:28:24 +03:00
Vineeth TM
8e5f7f27f5
gstreamer: base: 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=753852
2015-10-02 17:26:27 +03:00