Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8eeb083e71 | ||
|
|
a8b625d3b1 | ||
|
|
1e64edb7d8 | ||
|
|
42302e6037 | ||
|
|
22bed138c1 | ||
|
|
95abd6b82a | ||
|
|
eb02fdde90 | ||
|
|
e2bb20c43e | ||
|
|
3959702a1d | ||
|
|
4826eb8daf | ||
|
|
2a79912ef1 | ||
|
|
7dbed3f019 | ||
|
|
ecd2d90190 | ||
|
|
73e4094770 | ||
|
|
f5572919e4 | ||
|
|
93bf6eba3b | ||
|
|
150aeafdd2 | ||
|
|
1ef0d02245 | ||
|
|
74be07c36d | ||
|
|
54c371a293 | ||
|
|
4788b8323c |
No files matched your search
+5
-5
@@ -313,12 +313,12 @@ Available filters are:
|
||||
channels 0 and 1 into output channel 2 (which could be sent to a
|
||||
subwoofer for example).
|
||||
|
||||
.. note::
|
||||
.. note::
|
||||
|
||||
If you just want to force remixing to a certain output channel
|
||||
layout, it is easier to use the ``force`` filter. For example,
|
||||
``mpv '--af=force=channels=5.1' '--channels=5.1'`` would always
|
||||
force remixing audio to 5.1 and output it like this.
|
||||
If you just want to force remixing to a certain output channel layout,
|
||||
it is easier to use the ``force`` filter. For example,
|
||||
``mpv '--af=force=channels=5.1' '--channels=5.1'`` would always force
|
||||
remixing audio to 5.1 and output it like this.
|
||||
|
||||
``sub[=fc:ch]``
|
||||
Adds a subwoofer channel to the audio stream. The audio data used for
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ Available audio output drivers are:
|
||||
Set the name of the mixer element (default: ``Master``). This is for
|
||||
example ``PCM`` or ``Master``.
|
||||
``mixer-index=<number>``
|
||||
Set the index of the mixer channel (default: 0). Consider the output
|
||||
Set the index of the mixer channel (default: 0). Consider the output of
|
||||
"``amixer scontrols``", then the index is the number that follows the
|
||||
name of the element.
|
||||
|
||||
|
||||
@@ -182,8 +182,8 @@ input.conf and Slave Commands
|
||||
|
||||
This lists only commands that are not always gracefully handled by the
|
||||
internal legacy translation layer. If an input.conf contains any legacy
|
||||
commands, they will be displayed with ``-v`` when it is loaded, and show
|
||||
and the replacement commands.
|
||||
commands, a warning will be printed when starting the player. The warnings
|
||||
also show the replacement commands.
|
||||
|
||||
Properties containing ``_`` to separate words use ``-`` instead.
|
||||
|
||||
@@ -222,7 +222,7 @@ input.conf and Slave Commands
|
||||
+--------------------------------+----------------------------------------+
|
||||
| ``show_chapters`` | ``show_text ${chapter-list}`` |
|
||||
+--------------------------------+----------------------------------------+
|
||||
| ``af_switch``, ``af_add``, ... | ``af [set|add|...]`` |
|
||||
| ``af_switch``, ``af_add``, ... | ``af set|add|...`` |
|
||||
+--------------------------------+----------------------------------------+
|
||||
|
||||
Other
|
||||
|
||||
@@ -35,7 +35,7 @@ Newlines always start a new binding. ``#`` starts a comment (outside of quoted
|
||||
string arguments). To bind commands to the ``#`` key, ``SHARP`` can be used.
|
||||
|
||||
``<key>`` is either the literal character the key produces (ASCII or Unicode
|
||||
character), or a symbol name.
|
||||
character), or a symbolic name (as printed by ``--input-keylist``).
|
||||
|
||||
``<section>`` (braced with ``{`` and ``}``) is the input section for this
|
||||
command.
|
||||
@@ -326,6 +326,9 @@ should be replaced by properties), ``stop`` (questionable use), ``get_property``
|
||||
Input Command Prefixes
|
||||
----------------------
|
||||
|
||||
These prefixes are placed between key name and the actual command. Multiple
|
||||
prefixes can be specified. They are separated by whitespace.
|
||||
|
||||
``osd-auto`` (default)
|
||||
Use the default behavior for this command.
|
||||
``no-osd``
|
||||
@@ -390,7 +393,7 @@ Name W Comment
|
||||
``speed`` x see ``--speed``
|
||||
``filename`` currently played file (path stripped)
|
||||
``path`` currently played file (full path)
|
||||
``media-title`` filename or libquvi ``QUVIPROP_PAGETITLE``
|
||||
``media-title`` filename, title tag, or libquvi ``QUVIPROP_PAGETITLE``
|
||||
``demuxer``
|
||||
``stream-path`` filename (full path) of stream layer filename
|
||||
``stream-pos`` x byte position in source stream
|
||||
@@ -457,7 +460,7 @@ Name W Comment
|
||||
``sub`` x alias for ``sid``
|
||||
``sub-delay`` x see ``--sub-delay``
|
||||
``sub-pos`` x see ``--sub-pos``
|
||||
``sub-visibility`` x whether current subtitle is rendered
|
||||
``sub-visibility`` x see ``--sub-visibility``
|
||||
``sub-forced-only`` x see ``--sub-forced-only``
|
||||
``sub-scale`` x subtitle font size multiplicator
|
||||
``ass-use-margins`` x see ``--ass-use-margins``
|
||||
@@ -471,7 +474,7 @@ Name W Comment
|
||||
``playlist-pos`` current position on playlist
|
||||
``playlist-count`` number of total playlist entries
|
||||
``playlist`` playlist, current entry marked
|
||||
``track-list`` list of audio/video/sub tracks, cur. entr. marked
|
||||
``track-list`` list of audio/video/sub tracks, current entry marked
|
||||
``chapter-list`` list of chapters, current entry marked
|
||||
``quvi-format`` x see ``--quvi-format``
|
||||
``af`` x see ``--af``
|
||||
|
||||
+9
-29
@@ -12,7 +12,7 @@ a movie player
|
||||
##############
|
||||
|
||||
:Author: wm4
|
||||
:Date: 2013-07-08
|
||||
:Date: 2013-09-08
|
||||
:Copyright: GPLv3
|
||||
:Version: git
|
||||
:Manual section: 1
|
||||
@@ -202,8 +202,7 @@ corresponding adjustment, or the software equalizer (``--vf=eq``).)
|
||||
7 and 8
|
||||
Adjust saturation.
|
||||
|
||||
(The following keys are valid only when using the corevideo video output
|
||||
driver.)
|
||||
(The following keys are valid only on OSX.)
|
||||
|
||||
command + 0
|
||||
Resize movie window to half its original size.
|
||||
@@ -232,7 +231,7 @@ PREVIOUS and NEXT
|
||||
Seek backward/forward 1 minute.
|
||||
|
||||
(The following keys are only valid if you compiled with TV or DVB input
|
||||
support and will take precedence over the keys defined above.)
|
||||
support.)
|
||||
|
||||
h and k
|
||||
Select previous/next channel.
|
||||
@@ -252,24 +251,6 @@ button 3 and button 4
|
||||
button 5 and button 6
|
||||
Decrease/increase volume.
|
||||
|
||||
Joystick Control
|
||||
----------------
|
||||
|
||||
left and right
|
||||
Seek backward/forward 10 seconds.
|
||||
|
||||
up and down
|
||||
Seek forward/backward 1 minute.
|
||||
|
||||
button 1
|
||||
Pause.
|
||||
|
||||
button 2
|
||||
Toggle OSD states: none / seek / seek + timer / seek + timer + total time.
|
||||
|
||||
button 3 and button 4
|
||||
Decrease/increase volume.
|
||||
|
||||
|
||||
USAGE
|
||||
=====
|
||||
@@ -314,6 +295,8 @@ file1.mkv ``--a --b --c``
|
||||
file2.mkv ``--a --b --c``
|
||||
=============== ===========================
|
||||
|
||||
(This is different from MPlayer and mplayer2.)
|
||||
|
||||
Also, if any option is changed at runtime (via input commands), they are not
|
||||
reset when a new file is played.
|
||||
|
||||
@@ -408,7 +391,7 @@ profile name ``default`` to continue with normal options.
|
||||
::
|
||||
|
||||
[vo.vdpau]
|
||||
# Use hardware decoding (this might break playback of some h264 files)
|
||||
# Use hardware decoding (might break playback of some h264 files)
|
||||
hwdec=vdpau
|
||||
|
||||
[protocol.dvd]
|
||||
@@ -498,7 +481,7 @@ behavior of mpv.
|
||||
|
||||
FFmpeg/Libav:
|
||||
This library accesses various environment variables. However, they are not
|
||||
centrally documented, and documenting them is not our job. Therefore, the
|
||||
centrally documented, and documenting them is not our job. Therefore, this
|
||||
list is incomplete.
|
||||
|
||||
Notable environment variables:
|
||||
@@ -601,13 +584,10 @@ FILES
|
||||
EXAMPLES OF MPV USAGE
|
||||
=====================
|
||||
|
||||
Quickstart Blu-ray playing:
|
||||
Blu-ray playback:
|
||||
- ``mpv bd:////path/to/disc``
|
||||
- ``mpv bd:// --bluray-device=/path/to/disc``
|
||||
|
||||
Quickstart DVD playing:
|
||||
``mpv dvd://1``
|
||||
|
||||
Play in Japanese with English subtitles:
|
||||
``mpv dvd://1 --alang=ja --slang=en``
|
||||
|
||||
@@ -643,6 +623,6 @@ mpv is a MPlayer fork based on mplayer2, which in turn is a fork of MPlayer.
|
||||
MPlayer was initially written by Arpad Gereoffy. See the ``AUTHORS`` file for
|
||||
a list of some of the many other contributors.
|
||||
|
||||
MPlayer is (C) 2000-2012 The MPlayer Team
|
||||
MPlayer is (C) 2000-2013 The MPlayer Team
|
||||
|
||||
This man page was written mainly by Gabucino, Jonas Jermann and Diego Biurrun.
|
||||
+67
-57
@@ -69,8 +69,7 @@
|
||||
Specify a priority list of audio languages to use. Different container
|
||||
formats employ different language codes. DVDs use ISO 639-1 two-letter
|
||||
language codes, Matroska, MPEG-TS and NUT use ISO 639-2 three-letter
|
||||
language codes, while OGM uses a free-form identifier. mpv prints the
|
||||
available languages when run in verbose (``-v``) mode. See also ``--aid``.
|
||||
language codes, while OGM uses a free-form identifier. See also ``--aid``.
|
||||
|
||||
.. admonition:: Examples
|
||||
|
||||
@@ -183,7 +182,7 @@
|
||||
offset scale factor, not what the video filter chain or the video output
|
||||
use.
|
||||
|
||||
``--ass-vsfilter-color-compat=<basic|full|force-601|no``
|
||||
``--ass-vsfilter-color-compat=<basic|full|force-601|no>``
|
||||
Mangle colors like (xy-)vsfilter do (default: basic). Historically, VSFilter
|
||||
was not colorspace aware. This was no problem as long as the colorspace
|
||||
used for SD video (BT.601) was used. But when everything switched to HD
|
||||
@@ -249,8 +248,8 @@
|
||||
See ``--geometry`` for details how this is handled with multi-monitor
|
||||
setups.
|
||||
|
||||
Use ``--autofit-larger`` instead if you do not want the window to get
|
||||
larger.
|
||||
Use ``--autofit-larger`` instead if you just want to limit the maximum size
|
||||
of the window, rather than always forcing a window size.
|
||||
|
||||
Use ``--geometry`` if you want to force both window width and height to a
|
||||
specific size.
|
||||
@@ -307,17 +306,6 @@
|
||||
out. This delay in reaction time to sudden A/V offsets should be the only
|
||||
side-effect of turning this option on, for all sound drivers.
|
||||
|
||||
``--bandwidth=<bytes>``
|
||||
Specify the maximum bandwidth for network streaming (for servers that are
|
||||
able to send content in different bitrates). Useful if you want to watch
|
||||
live streamed media behind a slow connection. With Real RTSP streaming, it
|
||||
is also used to set the maximum delivery bandwidth allowing faster cache
|
||||
filling and stream dumping.
|
||||
|
||||
.. note::
|
||||
|
||||
Probably broken/useless.
|
||||
|
||||
``--untimed``
|
||||
Do not sleep when outputting video frames. Useful for benchmarks when used
|
||||
with ``--no-audio.``
|
||||
@@ -331,6 +319,10 @@
|
||||
Specify the Blu-ray disc location. Must be a directory with Blu-ray
|
||||
structure.
|
||||
|
||||
.. admonition:: Example
|
||||
|
||||
``mpv bd:// --bluray-device=/path/to/bd/``
|
||||
|
||||
``--border``, ``--no-border``
|
||||
Play movie with window border and decorations. Since this is on by
|
||||
default, use ``--no-border`` to disable the standard window decorations.
|
||||
@@ -357,7 +349,7 @@
|
||||
|
||||
``--cache-default=<kBytes|no>``
|
||||
Set the size of the cache in kilobytes (default: 320 KB). Using ``no``
|
||||
will not automatically enable the cache e.h. when playing from a network
|
||||
will not automatically enable the cache e.g. when playing from a network
|
||||
stream. Note that using ``--cache`` will always override this option.
|
||||
|
||||
``--cache-pause=<no|percentage>``
|
||||
@@ -433,11 +425,6 @@
|
||||
libavcodec downmixes the audio into the requested number of channels if
|
||||
possible.
|
||||
|
||||
.. note::
|
||||
|
||||
This option is honored by codecs (AC-3 only), filters (surround) and
|
||||
audio output drivers (OSS at least).
|
||||
|
||||
The ``--channels`` option either takes a channel number or an explicit
|
||||
channel layout. Channel numbers refer to default layouts, e.g. 2 channels
|
||||
refer to stereo, 6 refers to 5.1.
|
||||
@@ -446,6 +433,13 @@
|
||||
lists speaker names, which can be used to express arbitrary channel
|
||||
layouts (e.g. ``fl-fr-lfe`` is 2.1).
|
||||
|
||||
.. note::
|
||||
|
||||
Currently, this option is not very useful. The main effect of this
|
||||
option is that automatic stereo downmixing is disabled. It depends
|
||||
mainly on the selected audio output and the associated audio subsystem
|
||||
how playback of files with surround audio will behave.
|
||||
|
||||
``--chapter=<start[-end]>``
|
||||
Specify which chapter to start playing at. Optionally specify which
|
||||
chapter to end playing at. Also see ``--start``.
|
||||
@@ -584,7 +578,7 @@
|
||||
|
||||
This is default in order to reduce latency when opening HTTP streams.
|
||||
|
||||
``--demuxer-lavf-format=<value>``
|
||||
``--demuxer-lavf-format=<name>``
|
||||
Force a specific libavformat demuxer.
|
||||
|
||||
``--demuxer-lavf-genpts-mode=<auto|lavf|builtin|no>``
|
||||
@@ -667,12 +661,14 @@
|
||||
|
||||
.. admonition:: Example
|
||||
|
||||
- ``mpv sample-720x576.yuv --demuxer=rawvideo --demuxer-rawvideo=w=720:h=576``
|
||||
Play a raw YUV sample.
|
||||
Play a raw YUV sample::
|
||||
|
||||
mpv sample-720x576.yuv --demuxer=rawvideo \
|
||||
--demuxer-rawvideo=w=720:h=576
|
||||
|
||||
``--demuxer-rawvideo-format=<value>``
|
||||
Colorspace (fourcc) in hex or string for ``--demuxer=rawvideo``
|
||||
(default: YV12).
|
||||
(default: ``YV12``).
|
||||
|
||||
``--demuxer-rawvideo-mp-format=<value>``
|
||||
Colorspace by internal video format for ``--demuxer=rawvideo``. Use
|
||||
@@ -708,6 +704,10 @@
|
||||
also specify a directory that contains files previously copied directly
|
||||
from a DVD (with e.g. vobcopy).
|
||||
|
||||
.. admonition:: Example
|
||||
|
||||
``mpv dvd:// --dvd-device=/path/to/dvd/``
|
||||
|
||||
``--dvd-speed=<speed>``
|
||||
Try to limit DVD speed (default: 0, no change). DVD base speed is 1385
|
||||
kB/s, so an 8x drive can read at speeds up to 11080 kB/s. Slower speeds
|
||||
@@ -750,7 +750,7 @@
|
||||
|
||||
``--no-fixed-vo``, ``--fixed-vo``
|
||||
``--no-fixed-vo`` enforces closing and reopening the video window for
|
||||
multiple files (one (un)initialization for all files).
|
||||
multiple files (one (un)initialization for each file).
|
||||
|
||||
``--flip``
|
||||
Flip image upside-down.
|
||||
@@ -959,11 +959,7 @@
|
||||
See also ``--autofit`` and ``--autofit-larger`` for fitting the window into
|
||||
a given size without changing aspect ratio.
|
||||
|
||||
``--grabpointer``, ``--no-grabpointer``
|
||||
``--no-grabpointer`` tells the player to not grab the mouse pointer after a
|
||||
video mode change (``--vm``). Useful for multihead setups.
|
||||
|
||||
``--heartbeat-cmd``
|
||||
``--heartbeat-cmd=<command>``
|
||||
Command that is executed every 30 seconds during playback via *system()* -
|
||||
i.e. using the shell. The time between the commands can be customized with
|
||||
the ``--heartbeat-interval`` option.
|
||||
@@ -1027,7 +1023,10 @@
|
||||
|
||||
.. admonition:: Example
|
||||
|
||||
``mpv --http-header-fields='Field1: value1','Field2: value2' http://localhost:1234``
|
||||
::
|
||||
|
||||
mpv --http-header-fields='Field1: value1','Field2: value2' \
|
||||
http://localhost:1234
|
||||
|
||||
Will generate HTTP request::
|
||||
|
||||
@@ -1052,7 +1051,7 @@
|
||||
``<api>`` can be one of the following:
|
||||
|
||||
:no: always use software decoding (default)
|
||||
:vdpau: works with nvidia drivers only, requires ``--vo=vdpau``
|
||||
:vdpau: requires ``--vo=vdpau`` (Linux only)
|
||||
:vda: OSX
|
||||
:crystalhd: Broadcom Crystal HD
|
||||
|
||||
@@ -1307,8 +1306,9 @@
|
||||
``--no-sub``
|
||||
Do not select any subtitle when the file is loaded.
|
||||
|
||||
``--no-sub-visibility``
|
||||
Disable display of subtitles, but still select and decode them.
|
||||
``--sub-visibility``, ``--no-sub-visibility``
|
||||
Can be used to disable display of subtitles, but still select and decode
|
||||
them.
|
||||
|
||||
``--no-video``
|
||||
Do not play video. With some demuxers this may not work. In those cases
|
||||
@@ -1334,13 +1334,15 @@
|
||||
|
||||
``--osd-bar-align-x=<-1-1>``
|
||||
Position of the OSD bar. -1 is far left, 0 is centered, 1 is far right.
|
||||
Fractional values (like 0.5) are allowed.
|
||||
|
||||
``--osd-bar-align-y=<-1-1>``
|
||||
Position of the OSD bar. -1 is top, 0 is centered, 1 is bottom.
|
||||
Fractional values (like 0.5) are allowed.
|
||||
|
||||
``--osd-bar-w=<1-100>``
|
||||
Width of the OSD bar, in percentage of the screen width (default: 75).
|
||||
A value of 0.5 means the bar is half the screen wide.
|
||||
A value of 50 means the bar is half the screen wide.
|
||||
|
||||
``--osd-bar-h=<0.1-50>``
|
||||
Height of the OSD bar, in percentage of the screen height (default: 3.125).
|
||||
@@ -1374,8 +1376,8 @@
|
||||
For example, ``#FF0000`` is red. This is similar to web colors.
|
||||
|
||||
You can specify transparency by specifying an alpha value in the form
|
||||
``#AARRGGBB``. 0 is fully transparent, while ``FF`` is opaque (opaque is
|
||||
default with the shorter color specification).
|
||||
``#AARRGGBB``. ``00`` is fully transparent, while ``FF`` is opaque (opaque
|
||||
is default with the shorter color specification).
|
||||
|
||||
.. admonition:: Examples
|
||||
|
||||
@@ -1480,7 +1482,7 @@
|
||||
|
||||
``--playing-msg=<string>``
|
||||
Print out a string after starting playback. The string is expanded for
|
||||
properties, e.g. ``--playing-msg=file: ${filename}`` will print the string
|
||||
properties, e.g. ``--playing-msg='file: ${filename}'`` will print the string
|
||||
``file:`` followed by a space and the currently played filename.
|
||||
|
||||
See `Property Expansion`_.
|
||||
@@ -1611,6 +1613,8 @@
|
||||
Particularly useful on slow terminals or broken ones which do not properly
|
||||
handle carriage return (i.e. ``\r``).
|
||||
|
||||
Also see ``--really-quiet`` and ``--msglevel``.
|
||||
|
||||
``--quvi-format=<best|default|...>``
|
||||
Video format/quality that is directly passed to libquvi (default: ``best``).
|
||||
This is used when opening links to streaming sites like YouTube. The
|
||||
@@ -1725,10 +1729,6 @@
|
||||
- ``--reset-on-next-file=""``
|
||||
Do not reset pause mode.
|
||||
|
||||
``--reuse-socket``
|
||||
(udp:// only)
|
||||
Allows a socket to be reused by other processes as soon as it is closed.
|
||||
|
||||
``--saturation=<-100-100>``
|
||||
Adjust the saturation of the video signal (default: 0). You can get
|
||||
grayscale output with this option. Not supported by all video output
|
||||
@@ -1752,12 +1752,12 @@
|
||||
multiple displays), this option tells mpv which screen to display the
|
||||
movie on.
|
||||
|
||||
This option does not always work. In these cases, try to use ``--geometry``
|
||||
to position the window explicitly.
|
||||
|
||||
.. admonition:: Note (X11)
|
||||
|
||||
This option does not work properly with all window managers.
|
||||
This option does not work properly with all window managers. In these
|
||||
cases, you can try to use ``--geometry`` to position the window
|
||||
explicitly. It's also possible that the window manager provides native
|
||||
features to control which screens application windows should use.
|
||||
|
||||
See also ``--fs-screen``.
|
||||
|
||||
@@ -1872,8 +1872,7 @@
|
||||
Specify a priority list of subtitle languages to use. Different container
|
||||
formats employ different language codes. DVDs use ISO 639-1 two letter
|
||||
language codes, Matroska uses ISO 639-2 three letter language codes while
|
||||
OGM uses a free-form identifier. mpv prints the available languages
|
||||
when run in verbose (``-v``) mode. See also ``--sid``.
|
||||
OGM uses a free-form identifier. See also ``--sid``.
|
||||
|
||||
.. admonition:: Examples
|
||||
|
||||
@@ -1927,6 +1926,14 @@
|
||||
current level. With values below 100 the initial volume (which is 100%)
|
||||
will be above the maximum, which e.g. the OSD cannot display correctly.
|
||||
|
||||
.. admonition:: Note
|
||||
|
||||
The maximum value of ``--volume`` as well as the ``volume`` property
|
||||
is always 100. Likewise, the volume OSD bar always goes from 0 to 100.
|
||||
This means that with ``--softvol-max=200``, ``--volume=100`` sets
|
||||
maximum amplification, i.e. amplify by 200%. The default volume (no
|
||||
change in volume) will be ``50`` in this case.
|
||||
|
||||
``--speed=<0.01-100>``
|
||||
Slow down or speed up playback by the factor given as parameter.
|
||||
|
||||
@@ -1985,7 +1992,8 @@
|
||||
|
||||
``--stop-screensaver``, ``--no-stop-screensaver``
|
||||
Turns off the screensaver (or screen blanker and similar mechanisms) at
|
||||
startup and turns it on again on exit (default: yes).
|
||||
startup and turns it on again on exit (default: yes). The screensaver is
|
||||
always reenabled when the player is paused.
|
||||
|
||||
This is not supported on all video outputs or platforms. Sometimes it is
|
||||
implemented, but does not work (happens often on GNOME). You might be able
|
||||
@@ -2032,8 +2040,8 @@
|
||||
- ``--subcp=latin2``
|
||||
- ``--subcp=cp1250``
|
||||
|
||||
If the player was compiled with ENCA support, you can use special syntax
|
||||
to use that::
|
||||
If the player was compiled with ENCA support, you can control it with the
|
||||
following syntax::
|
||||
|
||||
--subcp=enca:<language>:<fallback codepage>
|
||||
|
||||
@@ -2112,10 +2120,10 @@
|
||||
to fix the playback speed for frame-based subtitle formats. Works for
|
||||
external text subtitles only.
|
||||
|
||||
.. admonition:: Examples
|
||||
.. admonition:: Example
|
||||
|
||||
- ``--sub-speed=25/23.976`` plays frame based subtitles which have been
|
||||
loaded assuming a framerate of 23.976 at 25 FPS.
|
||||
`--sub-speed=25/23.976`` plays frame based subtitles which have been
|
||||
loaded assuming a framerate of 23.976 at 25 FPS.
|
||||
|
||||
``--sws=<n>``
|
||||
Specify the software scaler algorithm to be used with ``--vf=scale``. This
|
||||
@@ -2157,7 +2165,9 @@
|
||||
.. warning::
|
||||
|
||||
There is a danger of this causing significant CPU usage, depending on
|
||||
the properties used and the window manager.
|
||||
the properties used and the window manager. Changing the window title
|
||||
is often a slow operation, and if the title changes every frame,
|
||||
playback can be ruined.
|
||||
|
||||
``--tv=<option1:option2:...>``
|
||||
This option tunes various properties of the TV capture module. For
|
||||
|
||||
+5
-7
@@ -22,12 +22,9 @@ in the list. Suboptions are optional and can mostly be omitted.
|
||||
Available video output drivers are:
|
||||
|
||||
``xv`` (X11 only)
|
||||
Uses the XVideo extension to enable hardware-accelerated playback. This is
|
||||
Uses the XVideo extension to enable hardware-accelerated display. This is
|
||||
the most compatible VO on X, but may be low-quality, and has issues with
|
||||
OSD and subtitle display.
|
||||
For information about what colorkey is used and how it is drawn, run
|
||||
mpv with the ``-v`` option and look out for the lines tagged with ``[xv
|
||||
common]`` at the beginning.
|
||||
|
||||
``adaptor=<number>``
|
||||
Select a specific XVideo adaptor (check xvinfo results).
|
||||
@@ -265,7 +262,9 @@ Available video output drivers are:
|
||||
|
||||
|
||||
There are some more filters. For a complete list, pass ``help`` as
|
||||
value, e.g.: ``mpv --vo=opengl:lscale=help``
|
||||
value, e.g.::
|
||||
|
||||
mpv --vo=opengl:lscale=help
|
||||
|
||||
``lparam1=<value>``
|
||||
Set filter parameters. Ignored if the filter is not tunable. These are
|
||||
@@ -609,8 +608,7 @@ Available video output drivers are:
|
||||
The following options are only useful if writing your own fragment programs.
|
||||
|
||||
``customprog=<filename>``
|
||||
Load a custom fragment program from ``<filename>``. See
|
||||
``TOOLS/edgedect.fp`` for an example.
|
||||
Load a custom fragment program from ``<filename>``.
|
||||
``customtex=<filename>``
|
||||
Load a custom "gamma ramp" texture from ``<filename>``. This can be used
|
||||
in combination with ``yuv=4`` or with the ``customprog`` option.
|
||||
|
||||
@@ -44,8 +44,8 @@ SOURCES-$(LIBBS2B) += audio/filter/af_bs2b.c
|
||||
SOURCES-$(LIBPOSTPROC) += video/filter/vf_pp.c
|
||||
SOURCES-$(LIBSMBCLIENT) += stream/stream_smb.c
|
||||
|
||||
SOURCES-$(MACOSX_BUNDLE) += osdep/macosx_bundle.m
|
||||
SOURCES-$(COCOA) += video/out/cocoa_common.m \
|
||||
osdep/macosx_bundle.m \
|
||||
osdep/macosx_application.m \
|
||||
osdep/macosx_events.m \
|
||||
osdep/ar/HIDRemote.m
|
||||
@@ -294,11 +294,12 @@ DIRS = . \
|
||||
audio/decode \
|
||||
audio/filter \
|
||||
audio/out \
|
||||
core \
|
||||
mpvcore \
|
||||
mpvcore/input \
|
||||
mpvcore/timeline \
|
||||
demux \
|
||||
osdep \
|
||||
osdep/ar \
|
||||
stream \
|
||||
sub \
|
||||
video \
|
||||
|
||||
@@ -389,13 +389,15 @@ static int decode_new_packet(struct sh_audio *sh)
|
||||
}
|
||||
int got_frame = 0;
|
||||
int ret = avcodec_decode_audio4(avctx, priv->avframe, &got_frame, &pkt);
|
||||
if (ret > 0) {
|
||||
// At least "shorten" decodes sub-frames, instead of the whole packet.
|
||||
// At least "mpc8" can return 0 and wants the packet again next time.
|
||||
if (ret >= 0) {
|
||||
ret = FFMIN(ret, mpkt->len); // sanity check against decoder overreads
|
||||
mpkt->buffer += ret;
|
||||
mpkt->len -= ret;
|
||||
mpkt->pts = MP_NOPTS_VALUE; // don't reset PTS next time
|
||||
}
|
||||
if (mpkt->len == 0 || ret <= 0) {
|
||||
if (mpkt->len == 0 || ret < 0) {
|
||||
talloc_free(mpkt);
|
||||
priv->packet = NULL;
|
||||
}
|
||||
|
||||
@@ -316,16 +316,15 @@ Optional features:
|
||||
--disable-bluray disable Blu-ray support [autodetect]
|
||||
--disable-dvdread disable libdvdread [autodetect]
|
||||
--disable-enca disable ENCA charset oracle library [autodetect]
|
||||
--enable-macosx-bundle enable Mac OS X bundle file locations [disabled]
|
||||
--disable-pthreads disable Posix threads support [autodetect]
|
||||
--disable-libass disable subtitle rendering with libass [autodetect]
|
||||
--disable-libass-osd disable OSD rendering with libass [autodetect]
|
||||
--enable-rpath enable runtime linker path for extra libs [disabled]
|
||||
--disable-libpostproc disable postprocess filter (vf_pp) [autodetect]
|
||||
--disable-libavdevice enable libavdevice demuxers [autodetect]
|
||||
--disable-libavfilter enable libavfilter [autodetect]
|
||||
--disable-vf-lavfi enable vf_lavfi libavfilter bridge [audodetect]
|
||||
--disable-af-lavfi enable af_lavfi libavfilter bridge [audodetect]
|
||||
--disable-libavdevice disable libavdevice demuxers [autodetect]
|
||||
--disable-libavfilter disable libavfilter [autodetect]
|
||||
--disable-vf-lavfi disable vf_lavfi libavfilter bridge [audodetect]
|
||||
--disable-af-lavfi disable af_lavfi libavfilter bridge [audodetect]
|
||||
|
||||
Codecs:
|
||||
--enable-mng enable MNG input support [autodetect]
|
||||
@@ -474,7 +473,6 @@ _cdda=auto
|
||||
_coreaudio=auto
|
||||
_corevideo=auto
|
||||
_cocoa=auto
|
||||
_macosx_bundle=no
|
||||
_enca=auto
|
||||
_pthreads=auto
|
||||
_ass=auto
|
||||
@@ -708,7 +706,6 @@ for ac_option do
|
||||
--disable-corevideo) _corevideo=no ;;
|
||||
--enable-cocoa) _cocoa=yes ;;
|
||||
--disable-cocoa) _cocoa=no ;;
|
||||
--enable-macosx-bundle) _macosx_bundle=yes ;;
|
||||
|
||||
--enable-manpage) _build_man=yes ;;
|
||||
--disable-manpage) _build_man=no ;;
|
||||
@@ -1546,19 +1543,6 @@ fi
|
||||
echores "$_sys_sysinfo"
|
||||
|
||||
|
||||
if darwin; then
|
||||
|
||||
echocheck "Mac OS X Bundle file locations"
|
||||
if test "$_macosx_bundle" = yes ; then
|
||||
extra_ldflags="$extra_ldflags -headerpad_max_install_names"
|
||||
def_macosx_bundle='#define CONFIG_MACOSX_BUNDLE 1'
|
||||
else
|
||||
def_macosx_bundle='#undef CONFIG_MACOSX_BUNDLE'
|
||||
fi
|
||||
echores "$_macosx_bundle"
|
||||
|
||||
fi #if darwin
|
||||
|
||||
echocheck "pkg-config"
|
||||
if $($_pkg_config --version > /dev/null 2>&1); then
|
||||
if test "$_ld_static"; then
|
||||
@@ -3078,7 +3062,6 @@ LIBQUVI = $_libquvi4
|
||||
LIBQUVI9 = $_libquvi9
|
||||
LIBGUESS = $_libguess
|
||||
LIRC = $_lirc
|
||||
MACOSX_BUNDLE = $_macosx_bundle
|
||||
MNG = $_mng
|
||||
MPG123 = $_mpg123
|
||||
OPENAL = $_openal
|
||||
@@ -3164,7 +3147,6 @@ $def_termios
|
||||
$def_dl
|
||||
$def_dos_paths
|
||||
$def_iconv
|
||||
$def_macosx_bundle
|
||||
$def_priority
|
||||
|
||||
|
||||
|
||||
+23
-4
@@ -863,12 +863,31 @@ static void demux_seek_lavf(demuxer_t *demuxer, float rel_seek_secs,
|
||||
// API by default, because there are some major issues.
|
||||
// Set max_ts==ts, so that demuxing starts from an earlier position in
|
||||
// the worst case.
|
||||
int r = avformat_seek_file(priv->avfc, -1, INT64_MIN,
|
||||
priv->last_pts, priv->last_pts, avsflags);
|
||||
// To make this horrible situation even worse, some lavf demuxers have
|
||||
// broken timebase handling (everything that uses
|
||||
// ff_subtitles_queue_seek()), and always uses the stream timebase. So
|
||||
// we use the timebase and stream index of the first enabled stream
|
||||
// (i.e. a stream which can participate in seeking).
|
||||
int stream_index = -1;
|
||||
AVRational time_base = {1, AV_TIME_BASE};
|
||||
for (int n = 0; n < priv->num_streams; n++) {
|
||||
struct sh_stream *stream = priv->streams[n];
|
||||
AVStream *st = priv->avfc->streams[n];
|
||||
if (stream && st->discard != AVDISCARD_ALL) {
|
||||
stream_index = n;
|
||||
time_base = st->time_base;
|
||||
break;
|
||||
}
|
||||
}
|
||||
int64_t pts = priv->last_pts;
|
||||
if (pts != AV_NOPTS_VALUE)
|
||||
pts = pts / (double)AV_TIME_BASE * av_q2d(av_inv_q(time_base));
|
||||
int r = avformat_seek_file(priv->avfc, stream_index, INT64_MIN,
|
||||
pts, pts, avsflags);
|
||||
// Similar issue as in the normal seeking codepath.
|
||||
if (r < 0) {
|
||||
avformat_seek_file(priv->avfc, -1, INT64_MIN,
|
||||
priv->last_pts, INT64_MAX, avsflags);
|
||||
avformat_seek_file(priv->avfc, stream_index, INT64_MIN,
|
||||
pts, INT64_MAX, avsflags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+13
-4
@@ -188,7 +188,7 @@ typedef struct mkv_demuxer {
|
||||
|
||||
uint64_t skip_to_timecode;
|
||||
int v_skip_to_keyframe, a_skip_to_keyframe;
|
||||
bool subtitle_preroll;
|
||||
int subtitle_preroll;
|
||||
} mkv_demuxer_t;
|
||||
|
||||
#define REALHEADER_SIZE 16
|
||||
@@ -196,6 +196,9 @@ typedef struct mkv_demuxer {
|
||||
#define RAPROPERTIES4_SIZE 56
|
||||
#define RAPROPERTIES5_SIZE 70
|
||||
|
||||
// Maximum number of subtitle packets that are accepted for pre-roll.
|
||||
#define NUM_SUB_PREROLL_PACKETS 100
|
||||
|
||||
/**
|
||||
* \brief ensures there is space for at least one additional element
|
||||
* \param array array to grow
|
||||
@@ -2266,7 +2269,10 @@ static int handle_block(demuxer_t *demuxer, struct block_info *block_info)
|
||||
if (mkv_d->v_skip_to_keyframe)
|
||||
use_this_block = 0;
|
||||
} else if (track->type == MATROSKA_TRACK_SUBTITLE) {
|
||||
use_this_block |= mkv_d->subtitle_preroll;
|
||||
if (!use_this_block && mkv_d->subtitle_preroll) {
|
||||
mkv_d->subtitle_preroll--;
|
||||
use_this_block = 1;
|
||||
}
|
||||
if (use_this_block) {
|
||||
if (laces > 1) {
|
||||
mp_msg(MSGT_DEMUX, MSGL_WARN, "[mkv] Subtitles use Matroska "
|
||||
@@ -2313,7 +2319,7 @@ static int handle_block(demuxer_t *demuxer, struct block_info *block_info)
|
||||
if (stream->type == STREAM_VIDEO) {
|
||||
mkv_d->v_skip_to_keyframe = 0;
|
||||
mkv_d->skip_to_timecode = 0;
|
||||
mkv_d->subtitle_preroll = false;
|
||||
mkv_d->subtitle_preroll = 0;
|
||||
} else if (stream->type == STREAM_AUDIO)
|
||||
mkv_d->a_skip_to_keyframe = 0;
|
||||
|
||||
@@ -2594,7 +2600,10 @@ static void demux_mkv_seek(demuxer_t *demuxer, float rel_seek_secs,
|
||||
a_tnum = track->tnum;
|
||||
}
|
||||
}
|
||||
mkv_d->subtitle_preroll = (flags & SEEK_SUBPREROLL) && st_active[STREAM_SUB];
|
||||
mkv_d->subtitle_preroll = 0;
|
||||
if ((flags & SEEK_SUBPREROLL) && st_active[STREAM_SUB] &&
|
||||
st_active[STREAM_VIDEO])
|
||||
mkv_d->subtitle_preroll = NUM_SUB_PREROLL_PACKETS;
|
||||
if (!(flags & (SEEK_BACKWARD | SEEK_FORWARD))) {
|
||||
if (flags & SEEK_ABSOLUTE || rel_seek_secs < 0)
|
||||
flags |= SEEK_BACKWARD;
|
||||
|
||||
+14
-12
@@ -888,7 +888,7 @@ exit:
|
||||
static void load_playback_resume(m_config_t *conf, const char *file)
|
||||
{
|
||||
char *fname = get_playback_resume_config_filename(file);
|
||||
if (fname) {
|
||||
if (fname && mp_path_exists(fname)) {
|
||||
// Never apply the saved start position to following files
|
||||
m_config_backup_opt(conf, "start");
|
||||
try_load_config(conf, fname, false);
|
||||
@@ -4151,6 +4151,19 @@ static void play_current_file(struct MPContext *mpctx)
|
||||
|
||||
mpctx->add_osd_seek_info &= OSD_SEEK_INFO_EDITION;
|
||||
|
||||
if (opts->reset_options) {
|
||||
for (int n = 0; opts->reset_options[n]; n++) {
|
||||
const char *opt = opts->reset_options[n];
|
||||
if (opt[0]) {
|
||||
if (strcmp(opt, "all") == 0) {
|
||||
m_config_backup_all_opts(mpctx->mconfig);
|
||||
} else {
|
||||
m_config_backup_opt(mpctx->mconfig, opt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
load_per_protocol_config(mpctx->mconfig, mpctx->filename);
|
||||
load_per_extension_config(mpctx->mconfig, mpctx->filename);
|
||||
load_per_file_config(mpctx->mconfig, mpctx->filename, opts->use_filedir_conf);
|
||||
@@ -4168,17 +4181,6 @@ static void play_current_file(struct MPContext *mpctx)
|
||||
load_per_file_options(mpctx->mconfig, mpctx->playlist->current->params,
|
||||
mpctx->playlist->current->num_params);
|
||||
|
||||
if (opts->reset_options) {
|
||||
for (int n = 0; opts->reset_options[n]; n++) {
|
||||
const char *opt = opts->reset_options[n];
|
||||
if (strcmp(opt, "all") == 0) {
|
||||
m_config_backup_all_opts(mpctx->mconfig);
|
||||
} else {
|
||||
m_config_backup_opt(mpctx->mconfig, opt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// We must enable getch2 here to be able to interrupt network connection
|
||||
// or cache filling
|
||||
if (opts->consolecontrols && !opts->slave_mode) {
|
||||
|
||||
+1
-1
@@ -550,7 +550,7 @@ const m_option_t mp_opts[] = {
|
||||
{"auto", SOFTVOL_AUTO})),
|
||||
OPT_FLOATRANGE("softvol-max", softvol_max, 0, 10, 10000),
|
||||
OPT_INTRANGE("volstep", volstep, 0, 0, 100),
|
||||
OPT_FLOATRANGE("volume", mixer_init_volume, 0, -1, 10000),
|
||||
OPT_FLOATRANGE("volume", mixer_init_volume, 0, -1, 100),
|
||||
OPT_CHOICE("mute", mixer_init_mute, M_OPT_OPTIONAL_PARAM,
|
||||
({"auto", -1},
|
||||
{"no", 0},
|
||||
|
||||
+26
-7
@@ -40,12 +40,13 @@
|
||||
|
||||
#if defined(__MINGW32__)
|
||||
#include <windows.h>
|
||||
#include <shlobj.h>
|
||||
#elif defined(__CYGWIN__)
|
||||
#include <windows.h>
|
||||
#include <sys/cygwin.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACOSX_BUNDLE
|
||||
#ifdef CONFIG_COCOA
|
||||
#include "osdep/macosx_bundle.h"
|
||||
#endif
|
||||
|
||||
@@ -53,7 +54,7 @@
|
||||
typedef char *(*lookup_fun)(const char *);
|
||||
static const lookup_fun config_lookup_functions[] = {
|
||||
mp_find_user_config_file,
|
||||
#ifdef CONFIG_MACOSX_BUNDLE
|
||||
#ifdef CONFIG_COCOA
|
||||
get_bundled_path,
|
||||
#endif
|
||||
mp_find_global_config_file,
|
||||
@@ -77,10 +78,24 @@ char *mp_find_config_file(const char *filename)
|
||||
char *mp_find_user_config_file(const char *filename)
|
||||
{
|
||||
char *homedir = NULL, *buff = NULL;
|
||||
static char *homepath = NULL;
|
||||
#ifdef __MINGW32__
|
||||
static char *config_dir = "mpv";
|
||||
char *config_dir = "mpv";
|
||||
|
||||
if (homepath == NULL) {
|
||||
char buf[MAX_PATH];
|
||||
if (SHGetFolderPathA(NULL, CSIDL_LOCAL_APPDATA|CSIDL_FLAG_CREATE, NULL,
|
||||
SHGFP_TYPE_CURRENT, buf) == S_OK) {
|
||||
|
||||
homepath = buf;
|
||||
}
|
||||
}
|
||||
#else
|
||||
static char *config_dir = ".mpv";
|
||||
char *config_dir = ".mpv";
|
||||
|
||||
if (homepath == NULL) {
|
||||
homepath = getenv("HOME");
|
||||
}
|
||||
#endif
|
||||
#if defined(__MINGW32__) || defined(__CYGWIN__)
|
||||
char *temp = NULL;
|
||||
@@ -88,15 +103,19 @@ char *mp_find_user_config_file(const char *filename)
|
||||
/* Hack to get fonts etc. loaded outside of Cygwin environment. */
|
||||
int i, imax = 0;
|
||||
int len = (int)GetModuleFileNameA(NULL, exedir, 260);
|
||||
for (i = 0; i < len; i++)
|
||||
|
||||
for (i = 0; i < len; i++) {
|
||||
if (exedir[i] == '\\') {
|
||||
exedir[i] = '/';
|
||||
imax = i;
|
||||
}
|
||||
}
|
||||
|
||||
exedir[imax] = '\0';
|
||||
|
||||
if (filename)
|
||||
if (filename) {
|
||||
temp = mp_path_join(NULL, bstr0(exedir), bstr0(filename));
|
||||
}
|
||||
|
||||
if (temp && mp_path_exists(temp) && !mp_path_isdir(temp)) {
|
||||
homedir = exedir;
|
||||
@@ -106,7 +125,7 @@ char *mp_find_user_config_file(const char *filename)
|
||||
#endif
|
||||
if ((homedir = getenv("MPV_HOME")) != NULL) {
|
||||
config_dir = "";
|
||||
} else if ((homedir = getenv("HOME")) == NULL) {
|
||||
} else if ((homedir = homepath) == NULL) {
|
||||
#if defined(__MINGW32__) || defined(__CYGWIN__)
|
||||
homedir = exedir;
|
||||
#else
|
||||
|
||||
@@ -432,11 +432,20 @@ static bool psn_matches_current_process(char *psn_arg_to_check)
|
||||
return [real_psn isEqualToString:in_psn];
|
||||
}
|
||||
|
||||
static bool bundle_started_from_finder(int argc, char **argv)
|
||||
{
|
||||
bool bundle_detected = [[NSBundle mainBundle] bundleIdentifier];
|
||||
bool pre_mavericks_args = argc==2 && psn_matches_current_process(argv[1]);
|
||||
bool post_mavericks_args = argc==1;
|
||||
|
||||
return bundle_detected && (pre_mavericks_args || post_mavericks_args);
|
||||
}
|
||||
|
||||
void macosx_finder_args_preinit(int *argc, char ***argv)
|
||||
{
|
||||
Application *app = mpv_shared_app();
|
||||
|
||||
if (*argc==2 && psn_matches_current_process((*argv)[1])) {
|
||||
if (bundle_started_from_finder(*argc, *argv)) {
|
||||
macosx_redirect_output_to_logfile("mpv");
|
||||
macosx_wait_fileopen_events();
|
||||
|
||||
|
||||
@@ -736,6 +736,7 @@ static int stream_enable_cache(stream_t **stream, int64_t size, int64_t min,
|
||||
|
||||
cache->url = talloc_strdup(cache, orig->url);
|
||||
cache->mime_type = talloc_strdup(cache, orig->mime_type);
|
||||
cache->demuxer = talloc_strdup(cache, orig->demuxer);
|
||||
cache->lavf_type = talloc_strdup(cache, orig->lavf_type);
|
||||
cache->opts = orig->opts;
|
||||
cache->start_pos = orig->start_pos;
|
||||
|
||||
+6
-2
@@ -729,8 +729,12 @@ static int demux_open_tv(demuxer_t *demuxer, enum demux_check check)
|
||||
/* get IMAGE FORMAT */
|
||||
int fourcc;
|
||||
funcs->control(tvh->priv, TVI_CONTROL_VID_GET_FORMAT, &fourcc);
|
||||
sh_video->gsh->codec = "rawvideo";
|
||||
sh_video->format = fourcc;
|
||||
if (fourcc == MP_FOURCC_MJPEG) {
|
||||
sh_video->gsh->codec = "mjpeg";
|
||||
} else {
|
||||
sh_video->gsh->codec = "rawvideo";
|
||||
sh_video->format = fourcc;
|
||||
}
|
||||
|
||||
/* set FPS and FRAMETIME */
|
||||
|
||||
|
||||
@@ -410,6 +410,7 @@ static void uninit_avctx(sh_video_t *sh)
|
||||
#if !HAVE_AVUTIL_REFCOUNTING
|
||||
mp_buffer_pool_free(&ctx->dr1_buffer_pool);
|
||||
#endif
|
||||
ctx->last_sample_aspect_ratio = (AVRational){0, 0};
|
||||
}
|
||||
|
||||
static void uninit(sh_video_t *sh)
|
||||
|
||||
Reference in new issue
Block a user