| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Have to deal with some dumb stuff in LittleCMS2's API: its error handler
is global.
|
|
|
|
| |
Hopefully this works on Wayland and Cocoa, which I didn't test.
|
|
|
|
|
| |
Doesn't touch some parts, like the X11 error handler (which doesn't
allow setting a context pointer).
|
| |
|
| |
|
| |
|
|
|
|
| |
Commits 40624100 and 72f2942df didn't update the variable accordingly.
|
|
|
|
|
|
|
| |
This could happen if the input queue was full, and an unmapped key was
used, or something like this.
Possibly fixes github issue #224.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is mostly related to the fullscreen behaviour. cecbd8864 introduces an
option to make mpv behave like a OSX user would expect. This commit changes
the Cocoa parts of the code to be consistent with the behaviour on X11. Old
behaviour is still available through the option mentioned in cecbd8864.
There is still custom logic in the cocoa backend and it can probably be moved
to core:
* Don't perform autohide if the mouse is down
* Don't perform autohide outside of the video window
Fixes #218 (by accident)
|
| |
|
|
|
|
|
| |
The previous error message were not very usefull.
Also include a hint where to look for solutions.
|
|
|
|
| |
Helpful for debugging.
|
|
|
|
| |
This simply issues a seek after reloading.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libquvi 0.4 doesn't allow us listing the formats supported by a
streaming site without doing additional network accesses, so switching
formats was not supported with it. (It's different with libquvi 0.9.)
But the most important case is switching between SD and HD. Usually,
--quvi-format=default will get SD, while --quvi-format=best gives HD.
Use this, and pretend that an URL supported by libquvi 0.4 supports both
of these. "cycle quvi-format" will switch between these. If the user
specifies something else via --quvi-format, this is included in the list
of switchable formats additionally to "default" and "best".
|
|
|
|
| |
So that the "titles" property returns the number of titles.
|
|
|
|
|
| |
Instead of returning 0 if the stream doesn't have title info, make the
property unavailable.
|
| |
|
|
|
|
|
|
| |
It's annoying for users if you can't get a list of options with --help,
but on the other hand, printing all options would be overkill. So just
mentioned --list-options.
|
|
|
|
|
|
| |
Broken by commit 0054073.
Also add them to the pdf target.
|
|
|
|
| |
Took a superficial look at the manpage, and fixed whatever I spotted.
|
| |
|
|
|
|
| |
The previous method would break on the next release. Because I am stupid.
|
|
|
|
|
|
| |
This builds a PDF version of the manpage using rst2latex
and pdflatex, and installs it to PREFIX/share/doc/mpv by
default.
|
|
|
|
|
|
|
| |
This is generally more uniform.
Do the same for the file global title in demux_mkv.c, although that is
not strictly related to chapters.
|
|
|
|
|
|
|
| |
Why not...
Code for demangling Matroska-style prores video packets inspired by
libavformat's Matroska demuxer.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This could lead to a segfault, fixes #219
Signed-off-by: Gabriel Peixoto <gabrielrcp@gmail.com>
Signed-off-by: wm4 <wm4@nowhere>
|
|
|
|
|
|
|
|
|
|
| |
Retrieve per-chapter metadata, but don't do much with it. We just make
the metadata of the _current_ chapter available as chapter-metadata
property. Returning the full chapter list with metadata would be no
problem, except that the property interface isn't really good with
structured data, so it's not available for now.
Not sure if it's worth it, but it was requested via github issue #201.
|
|
|
|
|
| |
Make the code somewhat reuseable, instead of bound to a single demuxer
instance. The plan is to add support for per-chapter tags later.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Consider the cluster used for prerolling contains an insane amount of
subtitle packets. Then the demuxer packet queue would be full of
subtitle packets, and demux.c would refuse to read any further packets -
including video and audio packets, resulting in EOF. Since everything
involving Matroska and subtitles is 100% insane, this can actually
happen.
Fix this by putting a limit on the number of subtitle packets read by
preroll, and throw away any further packets if the limit is exceeded. If
this happens, the preroll mechanism will stop working, but the player's
operation is unaffected otherwise.
|
|
|
|
|
|
|
|
|
|
| |
Cherry picked from various commits in lua_experiment by ChrisK2.
The metrics of the OSD symbols change slightly, possibly due to the
font editor that was used, and the metrics were not correct to begin
with. (But the real reason seems unknown.) Remove the rescaling of
the OSD font in ASS_USE_OSD_FONT, because the height more or less fits
now. (This change wasn't in the lua_experiment branch.)
|
|
|
|
| |
Otherwise, events may overlap in arbitrary ways.
|
|
|
|
|
|
| |
run_playloop() is already stuffed enough. This function is still quite
big, but all the other code shares various variables, so it's not as
easy to split.
|
|
|
|
|
|
|
|
| |
This option makes the cursor always visible in windowed mode.
Apparently, this is what (some?) Windows and OSX users expect. It's
disabled by default for now.
Restructure the cursor hide logic a bit for this purpose.
|
|
|
|
| |
I have no idea why it exists, as it's redundant to --(no-)mouse-movements.
|
|
|
|
| |
No functional changes.
|
|
|
|
|
|
| |
Let all key events go through mp_input_feed_key() internally, and also
do double click and MP_INPUT_RELEASE_ALL handling there. Move
check_autorepeat() to where it's actually used.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This caused the OSC to be always visible at startup on X11:
- EnterNotify event send a mouse event to input.c
- OSC has not completely initialized yet, and no mouse area is set
- mouse event is dispatched to "showhide" OSC section
- OSC becomes visible, regardless of mouse position
Fix this by treating the mouse area as empty if it's not set, instead of
infinite as it was before this commit. This means an input section must
set a mouse area to receive mouse events at all. We also have to change
the default section to receive mouse events with the new behavior.
Also, if MOUSE_MOVE is unmapped (or mapped to something that doesn't
parse), and produces no command, the mouse position wouldn't be updated
(because the mouse position is bound to input commands), so we have to
generate a dummy command in this case.
(This matters only for the OSC, On Screen Controller, which isn't merged
yet, so these changes shouldn't have much effect right now.)
|
|
|
|
| |
Might give better behavior on load.
|
|
|
|
|
| |
Split it into queue_add_head() and queue_add_tail(). Gets rid of the
weird, rarely used boolean parameter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Until now, any command was dropped as soon as the input queue was full,
and the command was not an abort command (i.e. a command that exits the
player or goes to the next file).
This could cause issues with key down events (especially mouse buttons)
not being released.
Change it so that key up events can never be dropped. This is a bit
involved, because we know whether a key maps to an abort command only
after interpreting it, and interpreting it changes global state, which
in turn requires undoing the event if the input is dropped. Refactor
the code a bit to move more functionality into interpret_key() to make
this easier.
|
|
|
|
|
| |
This is actually quite useless. It also allows the control queue to
starve the key queue, because the control queue is always checked first.
|
|
|
|
|
|
| |
Remove options which are too obscure and most likely not very useful in
general, or update them to something more modern. Add some comments
about how configuration files work in general.
|
|
|
|
|
|
|
|
|
|
|
| |
Even if a subtitle was explicitly loaded with -sub, it was still auto-
loaded (if auto-loading applied to that file). Fix this by explicitly
checking whether a file is already loaded.
The check is maximal naive and just compares the filenames as strings.
The change in find_subfiles.c is so that "-sub something.ass" happens to
work (auto-loading prepended a "./" to it, so the naive filename
comparison check didn't work).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
External vobsubs usually come as .idx/.sub pairs. Loading the .idx file
implicitly loads the .sub file, whereas loading the .sub file will kind
of work, but miss important information such as subtitle resolution. Or
in other words, if the .idx file exists, adding the .sub file as track
is useless and confusing.
Explicitly remove .sub file from the auto-load suntitle list in these
cases. Standalone .sub files are still loaded.
We also drop that weird logic that excluded .utf8 files from being
loaded if -subcp was in use. I hope the associated use case didn't make
much sense to begin with. If not, we could still implement it properly,
instead of this weird hack.
|
|
|
|
|
|
|
| |
Remove a crap assert() (what... either it can't happen, or it should
error or at least abort() if it can't be handled).
Remove some dead definitions.
|
|
|
|
|
|
|
| |
Use mp_path_exists() to check for existence of a file (which in turn
uses stat()), instead of opening and closing it. The difference is that
if we don't have sufficient permissions to read the subtitle files, we
will loudly complain. Personally, I prefer this behavior.
|
|
|
|
|
| |
Did things like opendir("http://..."). Makes no sense, and just
generates noise.
|
|
|
|
| |
track.demuxer is never NULL (anymore).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Until now, options could be accessed as properties via "options/name",
but the access was read-only. Change it so that write access is possible
in --idle mode. (All options have to support setting options at that
time, simply because of the way MPlayer designed per-file options.
During playback, normal properties take care of changing things,
including things backed by options.)
This is work in progress. There are some issues: at least setting the
"vf" and "af" options won't work for strange reasons.
|
|
|
|
|
|
|
| |
chapter_display_name() always returns something.
The "chapter < -1" check is not needed, because this is done at the
start of the function.
|
|
|
|
|
|
|
| |
Pretty useful for people writing userscripts for web browsers. Links starting
with 'mpv://' are forwarded to the mpv OSX bundle. The leading 'mpv://' is
stripped from the recived url and the rest of the string is inserted as is in
the playlist.
|
|
|
|
|
| |
This allows to open URLs directly with mpv. This is useful for streaming and
libquvi supported sites.
|
|
|
|
|
|
|
|
| |
The --volume option accepted values up to 10000, but internally, the
value is always clipped to 0-100 range. What makes this even worse is
that --softvol-max suggests that it extends the range of --volume, which
is not the case. (And passing a volume larger than 100 to --volume
didn't even print a warning.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The really funny thing about this commit is that this code is added on
top of another work around. Basically, subtitle seeking in libavformat
is completely broken. To make it useful, we have to add yet another
workaround.
The basic problem is that libavformat's subtitle seeking code always
uses the stream time base, instead of AV_TIME_BASE if stream index -1 is
passed to the avformat_seek_file() function.
Fixes github issue #216. Hopefully this will be fixed in ffmpeg too at
some point.
|
|
|
|
|
|
|
|
|
|
|
| |
This affects MOUSE_MOVE and MOUSE_LEAVE. Both are needed internally
(such as for the OSC), but not really useful for input.conf. Since the
warning has the purpose of notifying the user that a key is unmapped and
what key name to use for setting up a binding in input.conf, the warning
is rather useless in this case. It's also annoying in combination with
the
--no-input-default-bindings option, since that removes the default
bindings to "ignore" for these keys.
|
|
|
|
| |
I don't think we need this anymore.
|
|
|
|
|
| |
Well, this was dumb. The resume message was printed for every file,
whether a resume config file existed or not.
|
| |
|
|
|
|
|
|
| |
This was caused by a typo. Regression from add7c2955df.
Fixes #213
|
|
|
|
| |
In particular, this informs the user how to disable this.
|
|
|
|
|
|
|
|
|
|
|
|
| |
When enabling --save-position-on-quit, playback position stored not only
on quit, but in any case playback of a file was stopped. This includes
going to the next file with playlist navigation commands.
After some discussion on IRC, it turned out that nobody thought this was
good behavior. Disable it, and really make it save only on quit.
Maybe the option is useless now, as the user could remap the CLOSE_WIN
key binding. On the other hand, CLOSE_WIN sounds and _is_ a bit obscure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this commit, the player didn't write resume info if the playback
position was within the first or last percent of the file.
This was sometimes annoying, and with playlist resume can lead to
unintuitive behavior. (It wouldn't resume the playlist if the currently
played file was at 0-1% or 99-100%, even if you were in the middle of a
playlist.)
Moreover, the "percent > 99" check is a bit bogus anyway, because 100
(in integer) is rarely reached.
Drop the check, and make sure using --save-position-on-quit won't write
resume info when reaching EOF. The latter check is needed to make sure
playback of the file starts at beginning when playing it again after
EOF.
|
|
|
|
|
|
|
|
|
|
|
| |
The previous check just searched for a "://" substring. This was quite
bad, because "://" can be a valid part of a path. Later, I added
special handling for filenames starting with "." and "/", so that you
could reliably pass arbitrary filenames to mpv, no matter how messed
up they were.
Even though it doesn't really matter in practise anymore, this is still
crap, so add a more reliable check instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This includes the case of passing multiple files to command line
(internally this is the same as loading a playlist).
Resuming works by finding the first playlist entry that can be resumed.
A |