| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
see boxalpha option
|
|\
| |
| |
| |
| |
| |
| | |
This adds support for ChapterSegmentEditionUID (pull request #258),
and also fixes issue #278 (pull request #292).
In fact, this is a straight merge of pr/292, which also contains pr/258.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
If a source is shorter than the requested chapter length, account for
the time missing.
|
| |
| |
| |
| |
| |
| | |
When adding or removing frames to avoid 1-frame seeks on chapter
boundaries, the end of the chapter needs to be pushed or pulled by the
same amount to keep the intended end frame the same.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Since ordered editions can reference external files, when an ordered
chapter references another ordered edition, we have to go and figure out
what is is referencing as well.
|
| |
| |
| |
| |
| |
| |
| | |
When playing a Matroska file with ordered chapters, it may reference
another file by edition uid. When this edition is also ordered, it may
reference other files. When this occurs, the new segment/edition pair is
added to the list of sources to search for.
|
| |
| |
| |
| |
| | |
This will need to be recursive to support chapters referencing ordered
editions in other files.
|
| | |
|
| |
| |
| |
| |
| |
| | |
To support edition references in matroska chapters, editions need to be
remembered for each chapter and source. To facilitate easier management
of these now-paired uids, a single structure is used.
|
| | |
|
| | |
|
| |
| |
| |
| | |
camelCase from some of the option names removed. If you were using those, you'll have to update them in your config.
|
| |
| |
| |
| | |
and store it freshly on first mouse_move event when entering again
|
| |
| |
| |
| | |
A documentation explaing where and how to create one instead will follow.
|
| |
| |
| |
| |
| | |
When the main mpv config file, "info" is used, so this makes things
consistent.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now you can pretend the config file is quite literally command line
values dumped into a file, e.g.
--option1=value
--option2=value
...
although the underlying mechanisms are quite different.
|
| |
| |
| |
| |
| |
| | |
Until now it used both char[] and bstr variants in the same code, which
was nasty. For example, the next commit would have additionally required
using memmove() to remove the prefix from the char[] string.
|
| |
| |
| |
| | |
Can can disable it with --osc=no.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes handling of e.g. "--vf=lavfi=[ noise ]" when used with
playback resume functionality. The spaces made it bug out, and there are
more cases where it could potentially break.
We could always escape for simplicity, but for now make old and new mpv
builds somewhat interoperable and use this new escaping only if needed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This parses "%len%string" escapes, where string can contain any
characters. This method of escaping has also been used in other parts
of mplayer and mpv, so it's not a new idea.
(Also, don't confuse with URL encoding.)
Needed by the following commit.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also change what the FFmpeg version info looks like, and additionally
dump lavfi/lavr/lswr versions. (Don't bother with libavdevice and
libpostproc, they're not important enough.)
Unfortunately, there's no "single" FFmpeg/Libav version due to fatal
braindeath on the FFmpeg/Libav side. We can't map the versions to
releases either (it simply isn't accessible anywhere).
|
| |
| |
| |
| |
| |
| | |
when OSC not visible
The mouse area that covers the OSC is now only activated when the OSC is actually visible, to make sure the mouse still hides if it happens to be parked in the OSC area without making the OSC show up.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
vo_image didn't handle OSD redrawing correctly anymore after OSD
redrawing behavior was changed in commit ed9295c (or maybe it has been a
problem for a longer time, and only showed up now). Basically, flip_page
was called unexpectedly and when no image was stored, which made it
crash trying to access the image. This could happen when for example
provoking OSD redrawing by pausing while using --vo=image, or by using
this command line: mpv --vo=image '-vf=lavfi="select=not(mod(n\,3))"'
Fix by removing the code that pretends vo_image can redraw OSD, and by
removing the framestepping fallback, which could make bad things happen
if the VO didn't support OSD redrawing. By now, there aren't any real
VOs that can't redraw the OSD properly, so this code is not needed and
just complicates things like vo_image.
This change likely will also be useful for vo_lavc (encoding).
|
| |
| |
| |
| |
| |
| | |
Libass is technically an optional dependency, but in practice users
tend to disable libass accidentally or for the hell of it to get
something "minimal", without being aware of the consequences.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The deadzone-size is now by default zero, so movement on the entire window will make the OSC show up. To avoid it showing up by randomly moving mice, the option 'minmousemove' controls how many pixels movement (default: 1) between ticks (frames) are necessary to make the OSC show up.
The deadzone can be reenabeled by setting the option 'deadzonesize' (default: 0 = no deadzone, 1 = entire area between OSC and opposite window border), to restore the old behavior, set it to ~0.92.
The OSC will hide immediately when leaving the window or entering the deadzone (if existing) or after the time specified with 'hidetimeout' (default: 500ms) passed without any new movement. Set to negative value to disabling auto-hide (thus restoring old behavior). The OSC will never hide if hovered by the mouse.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Change talloc destructor so that they can never signal failure, and
don't return a status code. This makes our talloc copy even more
incompatible to upstream talloc, but on the other hand this is
preparation for getting rid of talloc entirely.
(The talloc replacement in the next commit won't allow the talloc_free
equivalent to fail, and the destructor return value would be useless.
But I don't want to change any mpv code either; the idea is that the
talloc replacement commit can be reverted for some time in order to
test whether the talloc replacement introduced a regression.)
|
| |
| |
| |
| |
| |
| | |
Before this, they were shown on terminal only. Now they use the OSD
mechanism, which shows them on the video window or the terminal,
depending on settings and what's available.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Changing volume when audio is disabled was a feature request (github
issue #215), and was introduced with commit 327a779.
But trying to fix github issue #280 (volume is not correct in no-audio
mode, and if audio is re-enabled, the volume set in no-audio mode isn't
set), I concluded that it's not worth the trouble and the current
implementation is questionable all around. (For example, you can't
change the real volume in no-audio mode, even if the AO is open - this
could happen with gapless audio.) It's hard to get right, and the
current mixer code is already hilariously overcomplicated. (Virtually
all of mixer.c is an amalgamation of various obscure corner cases.)
So just remove this feature again.
Note that "options/volume" and "options/mute" still can be used in
idle mode to adjust the volume used next time, though these properties
can't be used during playback and thus not in audio-only mode.
Querying the volume still "works" in audio-only mode, though it can
return bogus values.
|
| |
| |
| |
| |
| | |
Letting some playlist functions randomly accept NULL, while others do
not isn't such a good idea.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The argument or this change is that --loop should set how often the
file is played, not the number of additional repeats.
Based on pull request 277, with additions to the manpage and removal
of "--loop=0".
Signed-off-by: wm4 <wm4@nowhere>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The primary effect of this commit is that it fixes playback resume if
libquvi 0.9 and German locale are used, and libkdecore is on the system.
(See github issue #279.)
libquvi uses libproxy to determine system-wide proxy settings. libproxy
in turn loads libkdecore (if present) to determine KDE proxy settings.
libkdecore has a global constructor, which calls setlocale(LC_ALL, ""),
switching the current locale from "C" to what the user's settings. This
breaks some basic C string processing functions. Note that the locale
won't be set on program start, but only when libproxy calls dlopen() on
its config_kde module, which actually causes libkdecore to be loaded and
initialized.
In particular, with German locale, snprintf() would use "," instead of
"." when formatting float values, which in combination with playback
resume, would lead to parse errors the next time mpv was started, which
is how this issue was found.
I'd consider this a bug with libkdecore or at least libproxy. No library
should ever even touch locale: it might break basic expectations on C
string handling functions, might override program settings, and it's not
thread-safe. But this is so nasty and severe, that a quick hack to fix
it hurts less.
See github issue #279 and KDE bug #325902.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before this patch, those will cause a crash:
mpv -playlist /dev/null
mpv -playlist <(bla) # if the result of bla is empty
Signed-off-by: Mohammad Alsaleh <CE.Mohammad.AlSaleh@gmail.com>
Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
|
| |
| |
| |
| |
| |
| | |
previously, mp_ring_read_cb() would allow reading past the end of the
ringbuffer when buffered > available. mp_ring_read() had logic for
splitting the read into two, which I duplicated into mp_ring_read_cb().
|
|/
|
|
|
|
|
|
|
| |
First, don't try to seek if the result is 0 (i.e. nothing found, or
subtitle event happens to be exactly on spot).
Second, since we never can make sure that we actually seek to the exact
subtitle PTS (seeking "snaps" to video PTS), offset the seek by 10ms.
Since most subtitle events are longer than 10ms, this should work fine.
|
|
|
|
| |
As expected, this is not liked.
|
|
|
|
|
|
| |
The OSC will now display cache fill status between the timecodes, but only if it's below 48% to not clutter the interface with erratically changing values.
By default, the displayed value is multiplied by 2 to not confuse users who are unfamillar with the inner workings of the caching system. This can be disabled using the iAmAProgrammer=true setting.
|
|
|
|
| |
If the OSC is rendered on a forced window (by --force-window), the scale can be configured with scaleForcedWindow.
|
| |
|
|
|
|
|
|
| |
Requested by github issue #255.
Does not work where mmap is not available (i.e. Windows).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You couldn't jump to the first entry in the playlist, if that entry was
marked as "too short". But this is usually fine, because it doesn't get
into the way of the user. (This feature is meant to allow being able to
jump backwards through the playlist even if a file immediately stops
playback right after initialization, not to prevent playing these files
at all.)
Also, apply the skip logic when wrapping around the playlist when going
backwards. This happens with --loop, because looping pretends the
playlist is infinitely repeated forwards and backwards (as long as the
playlist_prev/next commands are concerned).
Also add some comments.
|
|
|
|
|
| |
Just specifying a VO that doesn't exist would make it crash.
Regression caused by commit 6a0408b.
|
|
|
|
|
|
|
|
|
|
| |
When for example switching off the video stream, and --force-window is
used, forcefully reconfigure the VO. This will reset the size, and will
clear the window with black.
Needed some effort, because you don't always want to clear the window
on "discontinuity" points like going to a next file: this would
introduce some flicker.
|
|
|
|
|
|
|
| |
Essentially reuses the sub_step command, and is subject to the same
restrictions.
Seems to behave a bit strange sometimes, but generally works.
|
|
|
|
| |
A leftover from 10 years of refactoring.
|
|
|
|
|
|
| |
Can happen when seeking in audio files with attached picture.
MP_NOPTS_VALUE doesn't really make sense outside of mpv internals, so
don't return it.
|
|
|
|
| |
The OSD bar wasn't displayed, and instead a fallback message was shown.
|
|
|
|
|
|
|
| |
Didn't handle VO events, didn't handle OSD message management.
There is probably still some strangeness left. --idle mode was never
made for direct interaction.
|
|
|
|
| |
Closer to the ubiquitous 16:9 screen aspect ratio. Requested by ChrisK3.
|
|
|
|
|
|
|
|
|
|