1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-27 17:42:17 +00:00
Commit Graph

63 Commits

Author SHA1 Message Date
wm4
88849fd1d4 commands: add choice type to input commands
Allow using the choice type (as it used for command line) for arguments
of input commands. Change the magic integer arguments of some commands
(like seek) to use choices instead. The old numeric values are still
allowed (but only those which made sense before, not arbitrary
integers).

In order to do this, remove the input.c specific types (like
MP_CMD_ARG_INT) completely and specify commands using the m_option
types.

Also, add the special choice "-" to some arguments. It's supposed to
signify the default value, so arguments can be easily skipped. Maybe the
choice option should recognize this and not change the previous value,
but we'll leave this for later.

For now, leave compatibility integer values for all new choice
arguments, e.g. "0" maps to 0. We could let the choice option type do
this automatically, but we don't, because we want user input values and
internal mplayer values decoupled in general. The compatibility options
will be removed one day, too.

Also, remove optional args for strings - would require either annoying
additional code, or copying strings twice. It's not used, so remove it.
2012-10-12 10:10:32 +02:00
wm4
d232012287 input: handle escapes always in command parser
Previously, both the command parser and property expansion
(m_properties_expand_string) handled escapes with '\'. Move all escape
handling into the command parser, and remove it from the property code.

This removes the need to escape strings twice for commands that use
property expansion.

The command parser is practically rewritten: it uses m_option for the
actual parsing, and reduces hackish C-string handling.
2012-10-12 10:10:32 +02:00
wm4
45b432f4c3 commands: replace "switch" with "add" and "cycle"
Now it depends on the command whether a property wraps around, or stops
at min/max valid property value.

For practically all properties, it's quite unambiguous what the "switch"
command should have done, and there's technically no need to replace it
with these new commands. More over, most properties that cycle are
boolean anyway. But it seems more orthogonal to make the difference
explicit, rather than hardcoding it. Having different commands also
makes it more explicit to the user what these commands do, both just due
to the naming, and what wrapping policy is used. The code is simpler
too.
2012-10-12 10:10:31 +02:00
wm4
6f1486b397 commands: replace --hardframedrop, change framedropping property
Replace --hardframedrop with --framedrop=hard. Rename the framedrop
property from "framedropping" to "framedrop" for the sake of making
command line options have the same name as their corresponding
property. Change the property to accept choice values instead of
numeric values.

Remove unused/forgotten auto_quality variable.
2012-10-12 10:10:30 +02:00
wm4
a749c61437 commands: rename osd_show_[property_]text and osd_show_progression
osd_show_[property_]text => show_text
osd_show_progression => show_progress

show_text, osd_show_property_text and osd_show_text both map to the
code for the previous osd_show_property_text. The only special thing
about osd_show_text is that you don't need to escape "$". Also,
unfortunately osd_show_property_text requires escaping things twice,
one time for the command parser, and the other time for the property
formatting code, while osd_show_text needed only one level of escaping.
2012-10-12 10:10:30 +02:00
wm4
950999dd7b commands: remove speed_set/speed_incr commands
Redundant with set/switch commands.
2012-10-12 10:10:30 +02:00
wm4
4e2fab5846 commands: rename properties, update input.conf
Use "-" instead of "_" in property names. The intent is that property
names and options names should be the same (if they refer to the same
thing), and options use "-" as word separator.

Rename some other properties too, e.g. "switch_audio" -> "audio".

Add a way to translate the old property names to the new ones, similar
to the input command legacy bridge.

Update input.conf. Use the new property names, and don't use legacy
commands.
2012-10-12 10:10:30 +02:00
Rudolf Polzer
f5b8b6ac12 encode: video encoding now supported using mencoder-like options 2012-09-18 21:08:20 +02:00
wm4
f97a85595b options: remove -subalign
It can't be re-implemented, because this isn't supported by libass. The
-subalign option and the associated sub-align slave property did
nothing. Remove them.
2012-09-18 21:07:29 +02:00
wm4
88728c6fad core: runtime Matroska edition switching
Add a new slave property which switches the current Matroska edition.
Since each edition can define an entirely new timeline, switching the
edition will simply restart playback at the beginning of the file with
the new edition selected.

Add 'E' as new keybinding to step the edition property.

DVD titles are still separate. Apparently they work similarly, but I
don't have any multi-title DVDs for testing. Also, cdda (for audio CDs)
uses the same mechanism as DVDs to report a number of titles, so there
seems to be confusion what exactly this mechanism is supposed to do.
That's why the edition code is completely separate for now.

Remove demuxer.num_titles. It was just a rather useless cache for the
return value of the DVD titles related STREAM_CTRL.

One rather obscure corner case isn't taken care of: if the ordered
chapters file has file local options set, they are reset on playback
restart. This is unexpected, because edition switching is meant to
behave like seeking back to the beginning of the file.
2012-09-18 21:04:45 +02:00
wm4
41fbcee1f5 Remove dvdnav support (DVD menus)
When the internal mplayer MPEG demuxer was removed (commit 1fde09db),
the default demuxer when using dvdnav was set to libavformat. Now it
turns out that this doesn't work with libavformat. It will terminate
playback right after the audio runs out (instead of looping it like the
video, or whatever it's supposed to do). I'm not sure what exactly the
problem is, but since 1. even mplayer-svn can't handle DVD menus
directly (missing highlights), 2. DVD menus are essentially worthless,
and 3. I don't directly watch DVDs, don't bother with it and remove it.

For basic playback, there's still libdvdread support.

Also, use pkg-config for libdvdread, and drop support for in-tree
libdvdread. Remove support for in-tree libdvdcss as well.
2012-08-16 17:17:49 +02:00
wm4
87ed789162 input.conf: put dvdnav commands under {dvdnav}
This means these key binding will basically not exist, unless dvdnav is
in use (at runtime).
2012-08-05 15:50:41 +02:00
wm4
ebaaa41f2a Remove teletext support
Teletext requires special OSD support. Because I can't even test
teletext, I can't restore support for it. Since teletext can be
considered ancient and obscure, and since it doesn't make sense to keep
the remaining teletext code without being able to use it, I'm removing
it.
2012-08-03 00:12:46 +02:00
wm4
89a17bcda6 mplayer: turn playtree into a list, and change per-file option handling
Summary:
- There is no playtree anymore. It's reduced to a simple list.
- Options are now always global. You can still have per-file options,
  but these are optional and require special syntax.
- The slave command pt_step has been removed, and playlist_next
  and playlist_prev added. (See etc/input.conf changes.)
  This is a user visible incompatible change, and will break slave-mode
  applications.
- The pt_clear slave command is renamed to playlist_clear.
- Playtree entries could have multiple files. This is not the case
  anymore, and playlist entries have always exactly one entry. Whenever
  something adds more than one file (like ASX playlists or dvd:// or
  dvdnav:// on the command line), all files are added as separate
  playlist entries.

Note that some of the changes are quite deep and violent. Expect
regressions.

The playlist parsing code in particular is of low quality. I didn't try
to improve it, and merely spent to least effort necessary to keep it
somehow working. (Especially ASX playlist handling.)

The playtree code was complicated and bloated. It was also barely used.
Most users don't even know that mplayer manages the playlist as tree,
or how to use it. The most obscure features was probably specifying a
tree on command line (with '{' and '}' to create/close tree nodes). It
filled the player code with complexity and confused users with weird
slave commands like pt_up.

Replace the playtree with a simple flat playlist. Playlist parsers that
actually return trees are changed to append all files to the playlist
pre-order.

It used to be the responsibility of the playtree code to change per-file
config options. Now this is done by the player core, and the playlist
code is free of such details.

Options are not per-file by default anymore. This was a very obscure and
complicated feature that confused even experienced users. Consider the
following command line:

    mplayer file1.mkv file2.mkv --no-audio file3.mkv

This will disable the audio for file2.mkv only, because options are
per-file by default. To make the option affect all files, you're
supposed to put it before the first file.

This is bad, because normally you don't need per-file options. They are
very rarely needed, and the only reasonable use cases I can imagine are
use of the encode backend (mplayer encode branch), or for debugging. The
normal use case is made harder, and the feature is perceived as bug.
Even worse, correct usage is hard to explain for users.

Make all options global by default. The position of an option isn't
significant anymore (except for options that compensate each other,
consider --shuffle --no-shuffle).

One other important change is that no options are reset anymore if a
new file is started. If you change settings with slave mode commands,
they will not be changed by playing a new file. (Exceptions include
settings that are too file specific, like audio/subtitle stream
selection.)

There is still some need for per-file options. Debugging and encoding
are use cases that profit from per-file options. Per-file profiles (as
well as per-protocol and per-VO/AO options) need the implementation
related mechanisms to backup and restore options when the playback file
changes.

Simplify the save-slot stuff, which is possible because there is no
hierarchical play tree anymore. Now there's a simple backup field.

Add a way to specify per-file options on command line. Example:

    mplayer f1.mkv -o0 --{ -o1 f2.mkv -o2 f3.mkv --} f4.mkv -o3

will have the following options per file set:

    f1.mkv, f4.mkv: -o0 -o3
    f2.mkv, f3.mkv: -o0 -o3 -o1 -o2

The options --{ and --} start and end per-file options. All files inside
the { } will be affected by the options equally (similar to how global
options and multiple files are handled). When playback of a file starts,
the per-file options are set according to the command line. When
playback ends, the per-file options are restored to the values when
playback started.
2012-07-31 21:33:26 +02:00
wm4
ce7562705e win32: support key modifiers (shift, ctrl, alt)
Support for this is rather simple, and some combinations of modifiers
and keys don't work. For example, Ctrl+Alt+character is not supported,
because Windows doesn't emit a WM_CHAR in this case.

Also add support for the pause and print screen keys. Remove the
pointless KEY_CTRL translation. Remove KEY_CTRL altogether, because it
was not clear what it was actually supposed to mean.
2012-04-06 23:56:30 +02:00
wm4
f30bf73bf2 etc/input.conf: make file contents match default key bindings
There were some slight differences between what input.conf mapped, and
what was in input.c def_cmd_binds[]. Make them match.

Add some minor documentation improvements in input.cfg.

Also remove double comments ('##'), because they were confusing.
2012-03-25 22:30:37 +03:00
Uoti Urpala
8b5efd6455 libmenu: remove OSD menu functionality (--menu)
Something like the OSD menu functionality could be useful. However the
current implementation has several problems and would require a
relatively large amount of work to get into good shape. As far as I
know there are few users of the existing functionality. Nobody is
working on the existing code and keeping it compiling at all while
changing other code would require extra work. So delete the menu code
and some related code elsewhere that's used by nothing else.
2011-10-25 07:05:47 +03:00
harklu
9e6933440a options, subs: add --ass-vsfilter-aspect-compat
Add option --ass-vsfilter-aspect-compat and corresponding property
ass_vsfilter_aspect_compat. The setting controls whether to enable the
emulation of traditional VSFilter behavior where subtitles are
stretched if the video is anamorphic (previously always enabled for
native SSA/ASS subtitles). Enabled by default. Add 'V' as a new
default keybinding to toggle the property.
2011-08-12 14:19:10 +03:00
Grigori Goronzy
17db5cc98f input: add useful default pointer button bindings
Add two mouse button bindings:
1) left button double click toggles fullscreen
2) right button pauses/unpauses
2011-06-14 19:58:55 +03:00
Uoti Urpala
5bb2f9787f input: add default keybindings Shift+[arrow] for small exact seeks 2010-12-20 19:02:24 +02:00
Uoti Urpala
67fd58d6f0 input: support bindings with modifier keys for X input
Add support for binding commands to modifier+key combinations like
"Shift+Left" or "Ctrl+Alt+x", and support reading such combinations
from the output window of X VOs.

The recognized modifier names are Shift, Ctrl, Alt and Meta. Any
combination of those and then a non-modifier key name, separated by
'+', is accepted as a key name in input.conf. For non-special keys
that produce characters shift is ignored as a modifier. For example
"A" is handled as a key without modifiers even if you use shift to
write the capital letter; 'a' vs 'A' already distinguishes the
combinations with a normal keymap, and having separate 'a', 'Shift+A'
and 'A' (written with caps lock for example) would bring more
confusion than benefit.

Currently reading the modifier+key combinations is only supported in
the output window of those VOs that use x11_common.c event
handling. It's not possible to input the key combinations in other VOs
or in a terminal window.
2010-12-20 19:02:24 +02:00
Uoti Urpala
7795726e0f Merge svn changes up to r31033 2010-04-26 18:25:34 +03:00
cehoyos
543504363f Add osd_show_progression: Show progress bar and elapsed/total time.
Patch by Hugo Chargois, hugo D chargois A free fr


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31028 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-04-09 19:20:52 +00:00
Anton Khirnov
87366694d8 Remove the internal GUI
The GUI is badly designed and too closely coupled to the internal
details of other code. The GUI code is in bad shape and unmaintained
for years. There is no indication that anyone would maintain it in the
future either. Even if someone did volunteer to implement a better
integrated GUI having the current code in the tree probably wouldn't
help much. So get rid of it.
2009-07-07 21:49:42 +03:00
Uoti Urpala
0eb321bf2c Remove trailing whitespace from most files 2009-07-07 02:34:35 +03:00
diego
6e9cbdc104 whitespace cosmetics: Remove all trailing whitespace.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29305 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-05-13 02:58:57 +00:00
compn
b901ebc9a0 make = and + both adjust audio delay, useful for keyboards without keypads
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29137 b3059339-0415-0410-9bf9-f77b7e298cf2
2009-04-04 04:27:09 +00:00
ben
59346bc23a Change DVDNAV command key names.
Parameters now use a string much more intuitive than previous int value.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@27100 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-06-19 18:51:42 +00:00
ben
95c672c96d Make "Menu" button of AppleIR remote call OSD Menu instead
of displaying the OSD status



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26801 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-18 12:28:34 +00:00
ben
d371732d64 Allow DVD Menus to be controlled by AppleIR Remote.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26800 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-18 12:19:51 +00:00
ben
577f567243 Use more intuitive and user-friendly DVDNAV control keys.
It is particularly useful for laptops users that obviously do
not have a keypad ;-)



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26761 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-05-13 17:30:18 +00:00
compn
624f8ca8e9 document ignore option
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26380 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-04-09 20:53:11 +00:00
compn
8f0139d0f3 add default deinterlace key
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25759 b3059339-0415-0410-9bf9-f77b7e298cf2
2008-01-15 19:37:16 +00:00
ulion
20e0248b37 Change the default osd menu command for AR_MENU in comment of input.conf.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25525 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-25 08:01:46 +00:00
ulion
0506b2b986 Add OSD menu keybindings for Apple Remote.
Since libmenu is still not enabled by default, we do not change default command
of Apple Remote input, only add a comment for using OSD menu with Apple Remote.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25372 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-12 04:00:07 +00:00
ulion
79ce1349ed Update comment that navigating keys is defined in menu.conf.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25371 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-12 02:48:47 +00:00
ben
f5f37dc414 allow osd menu being controlled by joystick
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25365 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-12-11 21:58:42 +00:00
diego
bcf0c984f0 Apple Remote support
patch by Zoltan Ponekker, pontscho kac.poliod hu
cleaned up by Ulion, ulion2002 gmail com with some help by Reimar and me


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24057 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-08-14 14:29:22 +00:00
albeu
1544e64717 Add the sub_scale property and command.
Patch from Anatoli Marinov (anatoli [dot] marinov [at] gmail [dot] com).


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23745 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-07-09 11:19:21 +00:00
zuxy
be09bd1c04 The audio balance feature implemented with af_pan.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23588 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-06-20 02:26:20 +00:00
compn
376d75f914 add mute bind which has been default for a while, any other missing defaults?
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22632 b3059339-0415-0410-9bf9-f77b7e298cf2
2007-03-16 13:59:02 +00:00
gpoirier
fb8e205585 remove duplicate entry
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21407 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-12-01 08:40:28 +00:00
gpoirier
9f2ebb584e fix indentation after last commit
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21397 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-30 08:48:31 +00:00
gpoirier
98760a8555 add more comments to input.conf, patch by compn % tempn A twmi P rr P com %
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21396 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-11-30 08:47:29 +00:00
nicodvb
8ad2effca3 KP7 bound to dvdnav 7 (previous menu)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19784 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-10 10:37:19 +00:00
nicodvb
f996d0e7ca added unallocated keys to navigate the dvdnav menus
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19776 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-09-09 21:57:45 +00:00
albeu
116ca0c768 Add a new command: osd_show_property_text that show an expanded property
string on the OSD. Based on a patch 'by someone named "veal" on irc'
that showed the filename.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18223 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-04-23 14:31:54 +00:00
diego
ce91ea74ce Switch audio delay keys to something more sane (+ to increase, - to decrease)
that happens to also match the documentation.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18101 b3059339-0415-0410-9bf9-f77b7e298cf2
2006-04-15 14:24:36 +00:00
reimar
b558338282 add hint to slave.txt
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17180 b3059339-0415-0410-9bf9-f77b7e298cf2
2005-12-11 21:59:13 +00:00
reimar
9f64599b8f allow changing playback speed during playback.
Based on patch by Steve Mueller (diffusor <at> ugcs (dot) caltech [dot] edu),
OSD support by Frank Schertan (scherthan (at) uni-landau <dot> de),
several modifications by me.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13711 b3059339-0415-0410-9bf9-f77b7e298cf2
2004-10-20 20:07:50 +00:00