Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b677937c27 | ||
|
|
fdd648bdf9 | ||
|
|
334fd10f1c | ||
|
|
226735331c | ||
|
|
5523370ab9 | ||
|
|
8c7d61f1d9 | ||
|
|
f021b5a379 | ||
|
|
43e164964c | ||
|
|
aeb64723fd | ||
|
|
f935838b2d | ||
|
|
ec46ad79e2 | ||
|
|
d6ccc4d8de | ||
|
|
8664dc3c47 | ||
|
|
51ce535822 | ||
|
|
e33df9b7bc | ||
|
|
6310bd60e6 | ||
|
|
6729e39983 | ||
|
|
88f247c0af |
No files matched your search
@@ -25,6 +25,7 @@ API changes
|
||||
|
||||
::
|
||||
|
||||
--- mpv 0.5.0 is released ---
|
||||
1.3 - add MPV_MAKE_VERSION()
|
||||
1.2 - remove "stream-time-pos" property (no replacement)
|
||||
1.1 - remap dvdnav:// to dvd://
|
||||
|
||||
@@ -332,6 +332,8 @@ Slave mode
|
||||
|
||||
Assuming the system supports ``/dev/stdin``.
|
||||
|
||||
(The option was readded in 0.5.1 and sets exactly these options.)
|
||||
|
||||
* A JSON RPC protocol giving access to the client API is planned, but nothing
|
||||
has emerged yet.
|
||||
|
||||
|
||||
@@ -74,6 +74,10 @@ The ``mp`` module is preloaded, although it can be loaded manually with
|
||||
These two commands are equivalent, except that the first version breaks
|
||||
if the filename contains spaces or certain special characters.
|
||||
|
||||
Note that properties are *not* expanded. You can use either ``mp.command``,
|
||||
the ``expand-properties`` prefix, or the ``mp.get_property`` family of
|
||||
functions.
|
||||
|
||||
``mp.get_property(name [,def])``
|
||||
Return the value of the given property as string. These are the same
|
||||
properties as used in input.conf. See `Properties`_ for a list of
|
||||
|
||||
@@ -1544,35 +1544,6 @@ Window
|
||||
depending on GPU drivers and hardware. For other VOs, this just makes
|
||||
rendering slower.
|
||||
|
||||
``--fs-missioncontrol``
|
||||
(OS X only)
|
||||
Use OS X Mission Control's fullscreen feature instead of the custom one
|
||||
provided by mpv. This can potentially break a lot of stuff like
|
||||
``--geometry`` and is disabled by default. On the other hand it provides
|
||||
a more 'OS X-like' user experience.
|
||||
|
||||
``--cursor-autohide=<number|no|always>``
|
||||
Make mouse cursor automatically hide after given number of milliseconds.
|
||||
``no`` will disable cursor autohide. ``always`` means the cursor will stay
|
||||
hidden.
|
||||
|
||||
``--cursor-autohide-fs-only``
|
||||
If this option is given, the cursor is always visible in windowed mode. In
|
||||
fullscreen mode, the cursor is shown or hidden according to
|
||||
``--cursor-autohide``.
|
||||
|
||||
``--no-fixed-vo``, ``--fixed-vo``
|
||||
``--no-fixed-vo`` enforces closing and reopening the video window for
|
||||
multiple files (one (un)initialization for each file).
|
||||
|
||||
``--force-rgba-osd-rendering``
|
||||
Change how some video outputs render the OSD and text subtitles. This
|
||||
does not change appearance of the subtitles and only has performance
|
||||
implications. For VOs which support native ASS rendering (like ``vdpau``,
|
||||
``opengl``, ``direct3d``), this can be slightly faster or slower,
|
||||
depending on GPU drivers and hardware. For other VOs, this just makes
|
||||
rendering slower.
|
||||
|
||||
``--force-window-position``
|
||||
Forcefully move mpv's video output window to default location whenever
|
||||
there is a change in video parameters, video stream or file. This used to
|
||||
|
||||
+1
-1
@@ -562,7 +562,7 @@ Available video output drivers are:
|
||||
|
||||
This is equivalent to::
|
||||
|
||||
--vo=opengl:lscale=spline36:dither-depth=auto:fbo-format=rgb16
|
||||
--vo=opengl:lscale=spline36:dither-depth=auto:fbo-format=rgba16
|
||||
|
||||
Note that some cheaper LCDs do dithering that gravely interferes with
|
||||
``opengl``'s dithering. Disabling dithering with ``dither-depth=no`` helps.
|
||||
|
||||
@@ -24,6 +24,8 @@ Release procedure
|
||||
|
||||
- Create and/or update the ``VERSION`` file.
|
||||
|
||||
- Update ``DOCS/client-api-changes.rst`` (on major releases).
|
||||
|
||||
- Create tag v0.X.Y.
|
||||
|
||||
- Push branch and tag to GitHub.
|
||||
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
Release 0.5.1
|
||||
=============
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
- Add audio/flac to the MIME type list in mpv.desktop.
|
||||
- The --slave-broken option has been reintroduced and is equivalent to using
|
||||
--input-file=/dev/stdin and --input-terminal=no.
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Fix screenshots with anamorphic videos in the vdpau vo.
|
||||
- Fix a crash happening when mpv fails to create a vdpau mixer in the vdpau vo.
|
||||
- Don't quit when the --loop-file option is used.
|
||||
- Always load the cursor theme in the wayland vo (this fixes a crash caused by
|
||||
moving the mouse cursor over the video).
|
||||
- Properly return non-zero from the zsh completion script when no matches are
|
||||
found (this fixes the use of user-defined zsh completion matchers).
|
||||
- Fix the description of the opengl-hq vo default options in the manpage.
|
||||
- Remove duplicated content from the manpage that was accidentally added in the
|
||||
manpage reorganization from the previous release.
|
||||
- Avoid clobbering playback position on video end (when both audio and video
|
||||
streams reached the end, the playback poisition was briefly set at 0).
|
||||
- Avoid overwriting user input in the coreaudio_device ao.
|
||||
|
||||
This listing is not complete. There are many more bug fixes and changes. The
|
||||
complete change log can be viewed by running ``git log 6729e39..fdd648b`` in
|
||||
the git repository.
|
||||
|
||||
Release 0.5.0
|
||||
=============
|
||||
|
||||
Changes
|
||||
-------
|
||||
|
||||
- Support setting the start time relative to the start PTS with --start.
|
||||
- Use /dev/sr0 as default cdrom/dvd device on Linux.
|
||||
- Change "cache" property representation to float.
|
||||
- Split the ao_coreaudio audio output into ao_coreaudio (which uses the
|
||||
AudioUnits and the CoreAudio sound server) and ao_coreaudio_device (which uses
|
||||
direct device access).
|
||||
- Complete supported URL schemes in the zsh completion script.
|
||||
- Enable compiler optimizations (-O2) during build.
|
||||
- Allow precise seeking with percent-based seeks too.
|
||||
- Do precise seeks when clicking on the OSC seekbar.
|
||||
- Remove support for older VDA hwaccel versions on Mac OS X (requires recent
|
||||
versions of ffmpeg/libav).
|
||||
- Remove the last remains of slave mode (--slave-broken option). Support for
|
||||
reading input commands from stdin can be emulated using: --input-terminal=no
|
||||
--input-file=/dev/stdin.
|
||||
- Some key binding were remapped or removed:
|
||||
+ "LEFT" and "RIGHT" have been remapped to seek 5 seconds instead of 10.
|
||||
+ "c" for changing the YUV color space was unmapped.
|
||||
+ OSD level cycling has been remapped from "o" to "O".
|
||||
+ "o" is now mapped to the show_progress command (like "P").
|
||||
+ "PGUP" and "PGDWN" have been remapped to chapter-based seeks (the old
|
||||
bindings "@" and "!" are still available). The old behvaiour has been
|
||||
remapped to "Shift+PGUP" and "Shift+PGDWM".
|
||||
+ Increasing/decreasing audio delay have been remapped from "+" and "-" to
|
||||
"Ctrl++" and "Ctrl+-".
|
||||
+ "(" and ")" for adjusting audio balance have been unmapped.
|
||||
+ "F" for toggling the "sub-forced-only" option has been unmapped.
|
||||
+ "TAB" for cycling TS programs has been unmapped.
|
||||
+ "A" for cycling DVD angle has been unmapped.
|
||||
+ "U" for stopping playback has been unmapped.
|
||||
+ "l" and "L" for cycling quvi format have been unmapped.
|
||||
- Make it possible to build the client API (libmpv) on Mac OS X.
|
||||
- Do necessary checks for nested Wayland compositors which only have limited
|
||||
interfaces.
|
||||
- The options in the manpage have been re-organized into sections and ordered by
|
||||
usage to make it easier to navigate.
|
||||
- The "hard" framedrop mode has been removed (this behaviour is still available
|
||||
via the --vd-lavc-framedrop option).
|
||||
- Show the basename of a subtitle file only (without the directory part).
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Use a default color space for files with no video (this fixes color managed
|
||||
OSD messages when no video channel is present).
|
||||
- Fix key equivalent dispatching for Cocoa on Mac OS X.
|
||||
- Disable non-interleaved audio formats by default with ao_alsa, since some
|
||||
ALSA plugins don't cope well with them (non-interleaved formats can still be
|
||||
enabled using the "non-interleaved" ao_alsa option).
|
||||
- Fix deadlock in the client API when calling mpv_terminate_destroy() before
|
||||
mpv_initialize().
|
||||
- Fix flushing of filter chain (this fixes a bug where the last frames would get
|
||||
dropped on EOF, if buffered by filters).
|
||||
- Actually use the channels.conf configuration file for DVB.
|
||||
- Restore the --dvbin-file option.
|
||||
- Fix off by one error in the command parser which caused a segfault when using
|
||||
the mp.commandv() Lua function with 10 or more arguments.
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- Search for config files in $XDG_CONFIG_HOME and $XDG_CONFIG_DIRS in addition
|
||||
to ~/.mpv. The config file has also been renamed to mpv.conf (although the
|
||||
old file still works and will be loaded even if the new one exists).
|
||||
- Add "playback-time" property that returns the current playback time always
|
||||
starting at 0. This is now used to show the playback time in the OSD and the
|
||||
status line, fixing the shown playback time for transport streams that start
|
||||
at a completely random timestamp.
|
||||
- Add cache-related "cache-free", "cache-used" and "cache-idle" properties.
|
||||
- Add option to list supported protocols (--list-protocols).
|
||||
- Allow setting libavformat stream options with the --stream-lavf-o option.
|
||||
- Support running the demuxer in a separate thread and prefetch packets (this
|
||||
can be enabled using the --demuxer-thread option).
|
||||
|
||||
This listing is not complete. There are many more bug fixes and changes. The
|
||||
complete change log can be viewed by running ``git log cb250d4..52f2f67`` in
|
||||
the git repository.
|
||||
+17
-9
@@ -42,9 +42,14 @@ my $tmpl = <<"EOS";
|
||||
|
||||
# mpv zsh completion
|
||||
|
||||
local curcontext="\$curcontext" state state_descr line
|
||||
typeset -A opt_args
|
||||
|
||||
local rc=1
|
||||
|
||||
_arguments -C -S \\
|
||||
$opts_str
|
||||
'*:files:->mfiles'
|
||||
'*:files:->mfiles' && rc=0
|
||||
|
||||
case \$state in
|
||||
ao)
|
||||
@@ -53,7 +58,7 @@ case \$state in
|
||||
$ao_str
|
||||
)
|
||||
|
||||
_describe -t values 'audio outputs' values
|
||||
_describe -t values 'audio outputs' values && rc=0
|
||||
;;
|
||||
|
||||
vo)
|
||||
@@ -62,7 +67,7 @@ $ao_str
|
||||
$vo_str
|
||||
)
|
||||
|
||||
_describe -t values 'video outputs' values
|
||||
_describe -t values 'video outputs' values && rc=0
|
||||
;;
|
||||
|
||||
af)
|
||||
@@ -71,7 +76,7 @@ $vo_str
|
||||
$af_str
|
||||
)
|
||||
|
||||
_describe -t values 'audio filters' values
|
||||
_describe -t values 'audio filters' values && rc=0
|
||||
;;
|
||||
|
||||
vf)
|
||||
@@ -80,24 +85,27 @@ $af_str
|
||||
$vf_str
|
||||
)
|
||||
|
||||
_describe -t values 'video filters' values
|
||||
_describe -t values 'video filters' values && rc=0
|
||||
;;
|
||||
|
||||
mfiles)
|
||||
local expl
|
||||
_tags files urls
|
||||
while _tags; do
|
||||
_requested files expl 'media file' _files -g \\
|
||||
"*.(#i)(asf|asx|avi|flac|flv|m1v|m2p|m2v|m4v|mjpg|mka|mkv|mov|mp3|mp4|mpe|mpeg|mpg|ogg|ogm|ogv|qt|rm|ts|vob|wav|webm|wma|wmv)(-.)" && ret=0
|
||||
"*.(#i)(asf|asx|avi|flac|flv|m1v|m2p|m2v|m4v|mjpg|mka|mkv|mov|mp3|mp4|mpe|mpeg|mpg|ogg|ogm|ogv|qt|rm|ts|vob|wav|webm|wma|wmv)(-.)" && rc=0
|
||||
if _requested urls; then
|
||||
while _next_label urls expl URL; do
|
||||
_urls "\$expl[@]" && ret=0
|
||||
compadd -S '' "\$expl[@]" $protos_str && ret=0
|
||||
_urls "\$expl[@]" && rc=0
|
||||
compadd -S '' "\$expl[@]" $protos_str && rc=0
|
||||
done
|
||||
fi
|
||||
(( ret )) || return 0
|
||||
(( rc )) || return 0
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
return rc
|
||||
EOS
|
||||
|
||||
print $tmpl;
|
||||
|
||||
@@ -404,15 +404,6 @@ static int init(struct ao *ao)
|
||||
|
||||
if (p->opt_list) ca_print_device_list(ao);
|
||||
|
||||
*p = (struct priv) {
|
||||
.muted = false,
|
||||
.stream_asbd_changed = 0,
|
||||
.hog_pid = -1,
|
||||
.stream = 0,
|
||||
.stream_idx = -1,
|
||||
.changed_mixing = false,
|
||||
};
|
||||
|
||||
OSStatus err = ca_select_device(ao, p->opt_device_id, &p->device);
|
||||
CHECK_CA_ERROR("failed to select device");
|
||||
|
||||
@@ -676,6 +667,14 @@ const struct ao_driver audio_out_coreaudio_exclusive = {
|
||||
.pause = audio_pause,
|
||||
.resume = audio_resume,
|
||||
.priv_size = sizeof(struct priv),
|
||||
.priv_defaults = &(const struct priv){
|
||||
.muted = false,
|
||||
.stream_asbd_changed = 0,
|
||||
.hog_pid = -1,
|
||||
.stream = 0,
|
||||
.stream_idx = -1,
|
||||
.changed_mixing = false,
|
||||
},
|
||||
.options = (const struct m_option[]) {
|
||||
OPT_INT("device_id", opt_device_id, 0, OPTDEF_INT(-1)),
|
||||
OPT_FLAG("list", opt_list, 0),
|
||||
|
||||
+1
-1
@@ -23,5 +23,5 @@ Exec=mpv --no-terminal --force-window -- %U
|
||||
Terminal=false
|
||||
NoDisplay=true
|
||||
Categories=AudioVideo;Audio;Video;Player;TV;
|
||||
MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/mp4;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-flv;video/x-theora;video/x-matroska;video/webm;audio/x-flac;audio/x-vorbis+ogg;video/x-ogm+ogg;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;video/mp2t;
|
||||
MimeType=application/ogg;application/x-ogg;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/m4a;audio/x-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg;video/x-mpeg2;video/mp4;video/msvideo;video/x-msvideo;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/x-fli;video/x-flv;video/x-theora;video/x-matroska;video/webm;audio/x-flac;audio/x-vorbis+ogg;video/x-ogm+ogg;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;video/mp2t;audio/flac;
|
||||
X-KDE-Protocols=ftp,http,https,mms,rtmp,rtsp,sftp,smb
|
||||
@@ -527,6 +527,8 @@ const m_option_t mp_opts[] = {
|
||||
OPT_SUBSTRUCT("", encode_opts, encode_config, 0),
|
||||
#endif
|
||||
|
||||
OPT_FLAG("slave-broken", slave_mode, CONF_GLOBAL),
|
||||
|
||||
{0}
|
||||
};
|
||||
|
||||
|
||||
@@ -237,6 +237,8 @@ typedef struct MPOpts {
|
||||
|
||||
int w32_priority;
|
||||
|
||||
int slave_mode;
|
||||
|
||||
int network_cookies_enabled;
|
||||
char *network_cookies_file;
|
||||
char *network_useragent;
|
||||
|
||||
@@ -375,6 +375,12 @@ int mp_initialize(struct MPContext *mpctx)
|
||||
mp_msg_update_msglevels(mpctx->global);
|
||||
}
|
||||
|
||||
if (opts->slave_mode) {
|
||||
MP_WARN(mpctx, "--slave-broken is deprecated (see manpage).\n");
|
||||
opts->consolecontrols = 0;
|
||||
m_config_set_option0(mpctx->mconfig, "input-file", "/dev/stdin");
|
||||
}
|
||||
|
||||
mpctx->input = mp_input_init(mpctx->global);
|
||||
mpctx->global->stream_interrupt_cb = check_stream_interrupt;
|
||||
mpctx->global->stream_interrupt_cb_ctx = mpctx;
|
||||
|
||||
+4
-5
@@ -734,6 +734,7 @@ static void handle_loop_file(struct MPContext *mpctx)
|
||||
{
|
||||
struct MPOpts *opts = mpctx->opts;
|
||||
if (opts->loop_file && mpctx->stop_play == AT_END_OF_FILE) {
|
||||
mpctx->stop_play = KEEP_PLAYING;
|
||||
set_osd_function(mpctx, OSD_FFW);
|
||||
queue_seek(mpctx, MPSEEK_ABSOLUTE, get_start_time(mpctx), 0, true);
|
||||
}
|
||||
@@ -887,12 +888,10 @@ void run_playloop(struct MPContext *mpctx)
|
||||
}
|
||||
|
||||
if (mpctx->video_status == STATUS_EOF &&
|
||||
mpctx->audio_status >= STATUS_PLAYING)
|
||||
mpctx->audio_status >= STATUS_PLAYING &&
|
||||
mpctx->audio_status < STATUS_EOF)
|
||||
{
|
||||
double a_pos = 0;
|
||||
if (mpctx->d_audio)
|
||||
a_pos = playing_audio_pts(mpctx);
|
||||
mpctx->playback_pts = a_pos;
|
||||
mpctx->playback_pts = playing_audio_pts(mpctx);
|
||||
}
|
||||
|
||||
handle_dummy_ticks(mpctx);
|
||||
|
||||
@@ -906,7 +906,7 @@ static struct mp_image *get_screenshot(struct vo *vo)
|
||||
if (vc->screenshot_surface == VDP_INVALID_HANDLE) {
|
||||
vdp_st = vdp->output_surface_create(vc->vdp_device,
|
||||
OUTPUT_RGBA_FORMAT,
|
||||
vc->vid_width, vc->vid_height,
|
||||
vo->params->d_w, vo->params->d_h,
|
||||
&vc->screenshot_surface);
|
||||
CHECK_VDP_WARNING(vo, "Error when calling vdp_output_surface_create");
|
||||
}
|
||||
|
||||
@@ -819,20 +819,15 @@ static bool create_cursor (struct vo_wayland_state *wl)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (wl->cursor.pointer) {
|
||||
// only create cursor surface if a pointer interface is available
|
||||
// without this check it leads to problems with compositor which don't
|
||||
// have pointer interfaces
|
||||
wl->cursor.surface =
|
||||
wl_compositor_create_surface(wl->display.compositor);
|
||||
wl->cursor.surface =
|
||||
wl_compositor_create_surface(wl->display.compositor);
|
||||
|
||||
if (!wl->cursor.surface)
|
||||
return false;
|
||||
if (!wl->cursor.surface)
|
||||
return false;
|
||||
|
||||
wl->cursor.theme = wl_cursor_theme_load(NULL, 32, wl->display.shm);
|
||||
wl->cursor.default_cursor = wl_cursor_theme_get_cursor(wl->cursor.theme,
|
||||
"left_ptr");
|
||||
}
|
||||
wl->cursor.theme = wl_cursor_theme_load(NULL, 32, wl->display.shm);
|
||||
wl->cursor.default_cursor = wl_cursor_theme_get_cursor(wl->cursor.theme,
|
||||
"left_ptr");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -170,6 +170,9 @@ static int create_vdp_mixer(struct mp_vdpau_mixer *mixer)
|
||||
VDP_NUM_MIXER_PARAMETER,
|
||||
parameters, parameter_values,
|
||||
&mixer->video_mixer);
|
||||
if (vdp_st != VDP_STATUS_OK)
|
||||
mixer->video_mixer = VDP_INVALID_HANDLE;
|
||||
|
||||
CHECK_VDP_ERROR(mixer, "Error when calling vdp_video_mixer_create");
|
||||
|
||||
mixer->initialized = true;
|
||||
|
||||
Reference in new issue
Block a user