Commit graph

62 commits

Author SHA1 Message Date
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
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
Tim-Philipp Müller
7e9d6720ca gst-play: use Fisher-Yates shuffle for shuffling the playlist 2018-08-10 12:28:41 +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
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
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
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
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
Vivia Nikolaidou
cca823b490 tools: gst-play: Use g_build_filename instead of g_strconcat
When running gst-play against a directory name, and suffix the path with a
directory separator (e.g. tab completion), gst-play was printing two directory
separators in a row. g_build_filename fixes this, and additionally allows for
both '/' and '\' as separators on Windows.
2015-08-18 15:19:03 +03:00
Tim-Philipp Müller
2b0e71f4de tools: gst-play: seek at least in steps of a second
In case of very short files we might end up seeking in
steps of a fraction of a second, which is silly and gives
the impression that seeking doesn't actually work. Make
minimum seek step a second instead.
2015-07-24 10:15:21 +01:00
Vineeth TM
9efa9dfcc8 gst-play: fix memory leak
In gst-play, for GST_MESSAGE_ELEMENT bus message,
event is being allocated through
gst_navigation_message_parse_event, but not freed.

https://bugzilla.gnome.org/show_bug.cgi?id=752040
2015-07-07 09:26:03 +01:00
Vineeth T M
eec791a37f tools: gst-play: fix seeking issue
For positive seeking segment.stop value will be -1,
when we change rate to -1, then the stop value will be udpated
with the current position. And then again if we change rate to 1,
the segment.stop value does not get updated and remains as position
where we last changed rate to -1. Hence playback stops at that point.
In case of positive rates, call gst_element_new_seek with correct values

https://bugzilla.gnome.org/show_bug.cgi?id=751213
2015-06-19 10:09:24 -04:00
Tim-Philipp Müller
247a6aab9a tools: gst-play: error out instead of crashing if there's no playbin element 2015-06-16 22:32:49 +01:00
Vivia Nikolaidou
0aacd7f393 tools: gst-play: don't print 64 whitespaces next to the time indication
Printing 64 whitespaces to erase the "Paused" message (after \r) would make
it wrap to the next line on shorter terminals. Instead we only print the
amount of spaces needed. Also mark the "Paused" string for translation
while we're at it.
2015-06-09 20:08:15 +01:00
Tim-Philipp Müller
6ed7ea73cf tools: gst-play: add shortcuts to switch audio/subtitle/video tracks 2015-06-09 10:20:58 +01:00
Vivia Nikolaidou
4fdbe215dc tools: gst-play: sort directory entries
When adding a directory to the playlist, the order would be whatever
g_dir_read_name returned. Sorting these using natural sort order.

https://bugzilla.gnome.org/show_bug.cgi?id=750585
2015-06-08 20:25:40 +01:00
Luis de Bethencourt
22302db7fc tools: gst-play: remove unnecessary variable
The second assignment of sret is never used. We can remove the first assignment
and use the value directly instead.
2015-05-30 15:34:57 +01:00
Tim-Philipp Müller
83463b2061 tools: gst-play: keep configured playback rate and trick mode when seeking
Instead of resetting rate to 1.0
2015-05-24 18:58:51 +01:00
Tim-Philipp Müller
c7893ef59f tools: gst-play: mark more strings for translation 2015-05-24 18:46:21 +01:00
danny song
bd35bf5933 tools: gst-play: add keyboard shortcut help
https://bugzilla.gnome.org/show_bug.cgi?id=749740
2015-05-24 16:12:04 +01:00
Tim-Philipp Müller
b74d4f972a tools: gst-play: enable interative mode by default
And change --interactive option to --no-interactive.
2015-05-21 12:38:53 +01:00
Tim-Philipp Müller
5a8d1d2246 gst-play: add some more key navigation mappings
And don't feed multi-character key descriptors to the
event handler, it won't be what it expects.
2015-04-29 15:47:46 +01:00
Edward Hervey
bba3f57c8b tools: Add mouse/keyboard handling from messages
Allows the user to control playback with the window in focus

https://bugzilla.gnome.org/show_bug.cgi?id=747245
2015-04-29 15:47:49 +02:00
Tim-Philipp Müller
12ed0428a9 gst-play: fix compiler warning
‘return’ with no value, in function returning non-void
2015-02-28 13:31:41 +00:00
Tim-Philipp Müller
0e9dac0cc7 gst-play: add keyboard shortcut to cycle through trick modes
Make "t" activate trick modes and cycle through the various
modes.
2015-02-28 13:11:45 +00:00
Tim-Philipp Müller
a257fcf366 gst-play: fix indentation
Prevent gst-indent from messing up indentation, it
really doesn't like the G_GNUC_PRINTF thing here.
2015-02-28 11:37:27 +00:00
Tim-Philipp Müller
b4c45935b7 gst-play: more fine-grained playback rate control
Use smaller steps for lower rates to allow more
fine-grained control. Handle jump across 0 properly
from both sides (just flip direction where we would
have gone down to 0 instead). Don't artificially
limit rates to +/- 10x. Print new rate.

https://bugzilla.gnome.org/show_bug.cgi?id=745174
2015-02-26 11:00:29 +00:00
Tim-Philipp Müller
0c8967348f gst-play: stash current playback rate in app structure
https://bugzilla.gnome.org/show_bug.cgi?id=745174
2015-02-26 11:00:26 +00:00
Víctor Manuel Jáquez Leal
c243f386c9 gst-play: support changing the playback rate in interactive mode
It is fun to have this feature, also it is useful for testing decoders.

https://bugzilla.gnome.org/show_bug.cgi?id=745174
2015-02-26 10:10:58 +00:00
Thiago Santos
921aa7c52b gst-play: do not set system's volume to 100% by default
Only change the volume if requested
2014-12-01 22:29:18 -03:00
Sebastian Dröge
3e14b0edd6 gst-play: Fix format string compiler warning
gst-play.c:92:28: error: format string is not a string literal
      [-Werror,-Wformat-nonliteral]
  len = g_vasprintf (&str, format, args);
                           ^~~~~~
2014-09-22 10:40:01 +03:00
Tim-Philipp Müller
87cef8befc gst-play: add --quiet option to suppress output 2014-09-19 18:29:54 +01:00
Tim-Philipp Müller
64b4b2a20a tools: play: use cubic volume factor when adjusting volume
This is more natural and better-suited for a playback application.
2014-05-23 19:21:35 +01:00
Sebastian Dröge
86c698a46f gst-play: Free playlist_file string if only printing the version 2014-05-19 11:17:33 +02:00
Anuj Jaiswal
59131a4ceb audio_sink and video_sink leakage fixed
https://bugzilla.gnome.org/show_bug.cgi?id=730010
2014-05-19 11:16:35 +02:00
Ravi Kiran K N
96efc280d5 gst-play: add option to supply media files from playlist file
https://bugzilla.gnome.org/show_bug.cgi?id=728845
2014-04-28 15:03:20 +01:00
Wim Taymans
1c5c49a94c play: Improve pipeline states
First set the pipeline to the PAUSED state to check if we are dealing
with a live pipeline or not. Then move to the desired state.

If we don't do this, it is possible that we receive a BUFFERING message
before we know that the pipeline is live and we would set the pipeline
to PAUSED and deadlock.
2014-04-21 15:40:33 +02:00
Wim Taymans
c268eab145 play: Update buffering state for live pipelines
Update the buffering variable, even for live pipelines so that we don't
print \n for each buffering message.
2014-04-21 15:40:32 +02:00
Tim-Philipp Müller
6767d26cb2 tools: gst-play: add volume control 2014-02-14 20:16:27 +00:00
Sebastian Dröge
01bfc79766 gst-play: 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:18:04 +01:00
Sebastian Dröge
2aa26a9807 gst-play: Handle CLOCK_LOST message
It is necessary for playbin gapless playback when switching
between audio-only and video-only files for example.
2014-01-17 15:13:15 +01:00