Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e371f2ebd3 | ||
|
|
29b68d69c0 | ||
|
|
6c770eb6df | ||
|
|
965f336917 | ||
|
|
47fae324c7 | ||
|
|
6ab0dbf2ed | ||
|
|
c002196ffe | ||
|
|
3c8fc4588d | ||
|
|
416015f059 | ||
|
|
773db053aa | ||
|
|
a8c09d003f | ||
|
|
1284a6b6b0 | ||
|
|
78c35e42ea |
No files matched your search
@@ -1369,8 +1369,7 @@ OPTIONS
|
||||
:trace: very noisy debug messages
|
||||
|
||||
One special case is the ``identify`` module name. This is silenced by
|
||||
default, and can be set to ``trace`` level to enable the remains of the
|
||||
code once enabled with the ``-identify`` option.
|
||||
default, and can be enabled with the ``-identify`` option.
|
||||
|
||||
``--msgmodule``
|
||||
Prepend module name in front of each console message.
|
||||
@@ -2023,8 +2022,10 @@ OPTIONS
|
||||
the top of the screen) alongside the normal subtitle, and provides a way
|
||||
to render two subtitles at once.
|
||||
|
||||
there are some caveats associated with this feature. For example, secondary
|
||||
subtitles are never shown on the terminal if video is disabled.
|
||||
there are some caveats associated with this feature. For example, bitmap
|
||||
subtitles will always be rendered in their usual position, so selecting a
|
||||
bitmap subtitle as secondary subtitle will result in overlapping subtitles.
|
||||
Secondary subtitles are never shown on the terminal if video is disabled.
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
+2
-2
@@ -429,7 +429,7 @@ Available filters are:
|
||||
``'--vf=lavfi=yadif:o="threads=2,thread_type=slice"'``
|
||||
forces a specific threading configuration.
|
||||
|
||||
``noise[=<strength>[:average][:pattern][:temporal][:uniform][:hq]``
|
||||
``noise[=<strength>[:averaged][:pattern][:temporal][:uniform][:hq]``
|
||||
Adds noise.
|
||||
|
||||
``strength``
|
||||
@@ -438,7 +438,7 @@ Available filters are:
|
||||
(using ``--vf=lavfi=[noise=...]``), or tell the libavfilter developers
|
||||
to stop being stupid.
|
||||
|
||||
``average``
|
||||
``averaged``
|
||||
averaged temporal noise (smoother, but a lot slower)
|
||||
|
||||
``pattern``
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
Changes
|
||||
-------
|
||||
|
||||
- Build system switches to waf. The old build system is still available by
|
||||
running ``./old-configure``, but it will be removed some time in the future.
|
||||
- The "run" input command changes in a not backwards compatible way.
|
||||
- Some input.conf commands were replaced (such as speed_mult).
|
||||
- Many audio/video filter have changed sub-options in a not backwards
|
||||
compatible way. (This is a consequence of unifying audio/video filter
|
||||
option parsing.)
|
||||
- Most video filters now use libavfilter internally if available.
|
||||
- Disable key autorepeat for some key binds, which prevents accidentally
|
||||
triggering a binding multiple times.
|
||||
- Encoding: install and include encoding profiles by default.
|
||||
|
||||
Bug fixes
|
||||
---------
|
||||
|
||||
- Fix a bug that degraded vdpau playback after ~1 hour of runtime.
|
||||
- Restrict hardware decoding to codecs where it generally makes sense. This
|
||||
excludes mpeg4 for example, which often causes hardware decoders to decode to
|
||||
garbage. Use ``--hwdec-codecs`` to enable hardware decoding for more codecs.
|
||||
|
||||
New features
|
||||
------------
|
||||
|
||||
- Add window-scale property, which allows changing the window size via mpv key
|
||||
bindings.
|
||||
- Add revert_seek command, which is meant to undo accidental seeks.
|
||||
- Hardware decoding (vdpau, vda, vaapi) can now be used with vo_opengl.
|
||||
- Pulseaudio: set pulse stream name to mpv window title (like MPlayer).
|
||||
- Support showing 2 subtitles at a time (``--secondary-sid``).
|
||||
- Re-add some basic ``dvdnav://`` support. This doesn't handle navigation
|
||||
highlights correctly, but navigation should mostly work. (Note that
|
||||
``dvdnav://`` by default starts the longest title, instead of the DVD menu.
|
||||
The menu is available with ``dvdnav://menu``.)
|
||||
- Win32: you can drop files on the mpv window.
|
||||
|
||||
This listing is not complete. There are many more bug fixes and changes. The
|
||||
complete change log can be viewed by running ``git log f572d2..f06a87`` in
|
||||
the git repository.
|
||||
@@ -19,5 +19,14 @@
|
||||
// At this point both gcc and clang had __sync_synchronize support for some
|
||||
// time. We only support a full memory barrier.
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#if HAVE_ATOMIC_BUILTINS
|
||||
# define mp_memory_barrier() __atomic_thread_fence(__ATOMIC_SEQ_CST)
|
||||
# define mp_atomic_add_and_fetch(a, b) __atomic_add_fetch(a, b,__ATOMIC_SEQ_CST)
|
||||
#elif HAVE_SYNC_BUILTINS
|
||||
# define mp_memory_barrier() __sync_synchronize()
|
||||
# define mp_atomic_add_and_fetch(a, b) __sync_add_and_fetch(a, b)
|
||||
#else
|
||||
# error "this should have been a configuration error, report a bug please"
|
||||
#endif
|
||||
@@ -2,11 +2,14 @@
|
||||
Type=Application
|
||||
Name=mpv Media Player
|
||||
Name[ca]=Reproductor multimèdia mpv
|
||||
Name[cs]=mpv přehrávač
|
||||
Name[pl]=mpv odtwarzacz multimedialny
|
||||
Name[ru]=Проигрыватель mpv
|
||||
GenericName=Multimedia player
|
||||
GenericName[cs]=Multimediální přehrávač
|
||||
Comment=Play movies and songs
|
||||
Comment[ca]=Reproduïu vídeos i cançons
|
||||
Comment[cs]=Přehrává filmy a hudbu
|
||||
Comment[de]=Filme und Musik abspielen
|
||||
Comment[es]=Reproduzca vídeos y canciones
|
||||
Comment[fr]=Lecteur multimédia
|
||||
|
||||
@@ -1329,6 +1329,38 @@ if test "$_pthreads" = no ; then
|
||||
die "Unable to find pthreads support."
|
||||
fi
|
||||
|
||||
|
||||
echocheck "compiler support for __atomic built-ins"
|
||||
_atomic=no
|
||||
for _ld_tmp in "" "-latomic" ; do
|
||||
statement_check stdint.h 'int64_t test = 0; test = __atomic_add_fetch(&test, 1, __ATOMIC_SEQ_CST)' $_ld_tmp &&
|
||||
libs_mplayer="$libs_mplayer $_ld_tmp" && _atomic=yes && break
|
||||
done
|
||||
if test "$_atomic" = yes ; then
|
||||
def_atomic="#define HAVE_ATOMIC_BUILTINS 1"
|
||||
else
|
||||
def_atomic="#define HAVE_ATOMIC_BUILTINS 0"
|
||||
fi
|
||||
echores "$_atomic"
|
||||
|
||||
if test "$_atomic" = no ; then
|
||||
echocheck "compiler support for __sync built-ins"
|
||||
_sync=no
|
||||
statement_check stdint.h 'int64_t test = 0; test = __sync_add_and_fetch(&test, 1)' && _sync=yes
|
||||
if test "$_sync" = yes ; then
|
||||
def_sync="#define HAVE_SYNC_BUILTINS 1"
|
||||
else
|
||||
def_sync="#define HAVE_SYNC_BUILTINS 0"
|
||||
fi
|
||||
echores "$_sync"
|
||||
else
|
||||
def_sync="#define HAVE_SYNC_BUILTINS 0"
|
||||
fi
|
||||
|
||||
if test "$_atomic" = no && test "$_sync" = no ; then
|
||||
die "your compiler must support either __atomic or __aync bult-ins."
|
||||
fi
|
||||
|
||||
if test "$_pthreads" = yes ; then
|
||||
|
||||
# Cargo-cult for -lrt, which is needed on not so recent glibc version for
|
||||
@@ -3521,6 +3553,8 @@ $def_avresample_has_set_channel_mapping
|
||||
|
||||
$def_fast_64bit
|
||||
$def_pthreads
|
||||
$def_atomic
|
||||
$def_sync
|
||||
|
||||
#define HAVE_INLINE_ASM 1
|
||||
|
||||
|
||||
@@ -1299,6 +1299,17 @@ static int parse_msglevels(struct mp_log *log, const m_option_t *opt,
|
||||
if (param.start == NULL)
|
||||
return M_OPT_MISSING_PARAM;
|
||||
|
||||
if (bstr_equals0(param, "help")) {
|
||||
mp_info(log, "Syntax: --msglevel=module1=level:module2=level:...\n"
|
||||
"'module' is output prefix as shown with -v, or a prefix\n"
|
||||
"of it. level is one of:\n\n"
|
||||
" fatal error warn info status v debug trace\n\n"
|
||||
"The level specifies the minimum log level a message\n"
|
||||
"must have to be printed.\n"
|
||||
"The special module name 'all' affects all modules.\n");
|
||||
return M_OPT_EXIT;
|
||||
}
|
||||
|
||||
bstr s = param;
|
||||
while (1) {
|
||||
int res = mp_msg_split_msglevel(&s, &(bstr){0}, &(int){0});
|
||||
|
||||
@@ -57,6 +57,13 @@ bool mp_parse_cfgfiles(struct MPContext *mpctx)
|
||||
bool r = true;
|
||||
char *conffile;
|
||||
|
||||
// The #if is a stupid hack to avoid errors if libavfilter is not available.
|
||||
#if HAVE_VF_LAVFI && HAVE_ENCODING
|
||||
conffile = mp_find_config_file(tmp, mpctx->global, "encoding-profiles.conf");
|
||||
if (conffile && mp_path_exists(conffile))
|
||||
m_config_parse_config_file(mpctx->mconfig, conffile, 0);
|
||||
#endif
|
||||
|
||||
if (m_config_parse_config_file(conf, MPLAYER_CONFDIR "/mpv.conf", 0) < 0) {
|
||||
r = false;
|
||||
goto done;
|
||||
@@ -77,13 +84,6 @@ bool mp_parse_cfgfiles(struct MPContext *mpctx)
|
||||
}
|
||||
}
|
||||
|
||||
// The #if is a stupid hack to avoid errors if libavfilter is not available.
|
||||
#if HAVE_VF_LAVFI && HAVE_ENCODING
|
||||
conffile = mp_find_config_file(tmp, mpctx->global, "encoding-profiles.conf");
|
||||
if (conffile && mp_path_exists(conffile))
|
||||
m_config_parse_config_file(mpctx->mconfig, conffile, 0);
|
||||
#endif
|
||||
|
||||
done:
|
||||
talloc_free(tmp);
|
||||
return r;
|
||||
|
||||
+1
-1
@@ -281,7 +281,7 @@ void reselect_demux_streams(struct MPContext *mpctx)
|
||||
// Note: we assume that all demuxer streams are covered by the track list.
|
||||
for (int t = 0; t < mpctx->num_tracks; t++) {
|
||||
struct track *track = mpctx->tracks[t];
|
||||
if (track->demuxer)
|
||||
if (track->demuxer && track->stream)
|
||||
demuxer_select_track(track->demuxer, track->stream, track->selected);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,6 +65,7 @@ static void reconfig_video(struct MPContext *mpctx,
|
||||
const struct mp_image_params *params,
|
||||
bool probe_only)
|
||||
{
|
||||
struct MPOpts *opts = mpctx->opts;
|
||||
struct dec_video *d_video = mpctx->d_video;
|
||||
|
||||
d_video->decoder_output = *params;
|
||||
@@ -96,6 +97,19 @@ static void reconfig_video(struct MPContext *mpctx,
|
||||
int r = vo_reconfig(mpctx->video_out, &p, 0);
|
||||
if (r < 0)
|
||||
d_video->vfilter->initialized = -1;
|
||||
|
||||
if (r >= 0) {
|
||||
if (opts->gamma_gamma != 1000)
|
||||
video_set_colors(d_video, "gamma", opts->gamma_gamma);
|
||||
if (opts->gamma_brightness != 1000)
|
||||
video_set_colors(d_video, "brightness", opts->gamma_brightness);
|
||||
if (opts->gamma_contrast != 1000)
|
||||
video_set_colors(d_video, "contrast", opts->gamma_contrast);
|
||||
if (opts->gamma_saturation != 1000)
|
||||
video_set_colors(d_video, "saturation", opts->gamma_saturation);
|
||||
if (opts->gamma_hue != 1000)
|
||||
video_set_colors(d_video, "hue", opts->gamma_hue);
|
||||
}
|
||||
}
|
||||
|
||||
static void recreate_video_filters(struct MPContext *mpctx)
|
||||
|
||||
@@ -436,17 +436,6 @@ int video_reconfig_filters(struct dec_video *d_video,
|
||||
|
||||
d_video->vf_input = p;
|
||||
|
||||
if (opts->gamma_gamma != 1000)
|
||||
video_set_colors(d_video, "gamma", opts->gamma_gamma);
|
||||
if (opts->gamma_brightness != 1000)
|
||||
video_set_colors(d_video, "brightness", opts->gamma_brightness);
|
||||
if (opts->gamma_contrast != 1000)
|
||||
video_set_colors(d_video, "contrast", opts->gamma_contrast);
|
||||
if (opts->gamma_saturation != 1000)
|
||||
video_set_colors(d_video, "saturation", opts->gamma_saturation);
|
||||
if (opts->gamma_hue != 1000)
|
||||
video_set_colors(d_video, "hue", opts->gamma_hue);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ main_dependencies = [
|
||||
'desc': 'linker support for --nxcompat --no-seh --dynamicbase',
|
||||
'func': check_cc(linkflags=['-Wl,--nxcompat', '-Wl,--no-seh', '-Wl,--dynamicbase'])
|
||||
}, {
|
||||
'name': 'ebx_available',
|
||||
'name': 'ebx-available',
|
||||
'desc': 'ebx availability',
|
||||
'func': check_cc(fragment=load_fragment('ebx.c'))
|
||||
} , {
|
||||
@@ -98,6 +98,27 @@ main_dependencies = [
|
||||
'func': check_pthreads,
|
||||
'req': True,
|
||||
'fmsg': 'Unable to find pthreads support.'
|
||||
}, {
|
||||
'name': 'atomic-builtins',
|
||||
'desc': 'compiler support for __atomic built-ins',
|
||||
'func': check_libs(['atomic'],
|
||||
check_statement('stdint.h',
|
||||
'int64_t test = 0;'
|
||||
'test = __atomic_add_fetch(&test, 1, __ATOMIC_SEQ_CST)'))
|
||||
}, {
|
||||
'name': 'sync-builtins',
|
||||
'desc': 'compiler support for __sync built-ins',
|
||||
'func': check_statement('stdint.h',
|
||||
'int64_t test = 0;'
|
||||
'test = __sync_add_and_fetch(&test, 1)'),
|
||||
'deps_neg': [ 'atomic-builtins' ],
|
||||
}, {
|
||||
'name': 'thread-synchronization-builtins',
|
||||
'desc': 'compiler support for usable thread synchronization built-ins',
|
||||
'func': check_true,
|
||||
'deps_any': ['atomic-builtins', 'sync-builtins'],
|
||||
'req': True,
|
||||
'fmsg': 'your compiler must support either __atomic or __aync bult-ins',
|
||||
}, {
|
||||
'name': 'librt',
|
||||
'desc': 'linking with -lrt',
|
||||
|
||||
Reference in new issue
Block a user