| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
(cherry picked from commit 8ec9bce2d367541f9d3939f773b669beebd0be6d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some UI elements in OS X – like Launchpad and Dock folders – are implemented
using borderless windows in background demonized applications.
When we use these elements, mpv doesn't stop to be the active application, but
the mpv window leaves keyWindow state while we use the OS controls.
This commit just keeps track of window state to update the cursor visibility
accordingly.
Fixes #513
(cherry picked from commit ce239f1577ccd7eabccaac5b3b34fbe3959d860e)
|
|
|
|
|
|
|
| |
Prevents out-of-window coordinates being reported for mouse coordinates.
Previously they could be out-of-window coordinates on init or on resize.
(cherry picked from commit 39537f64746d8e0ea0f828efee251fb84acdf11f)
|
|
|
|
|
|
|
|
| |
Make MpvEventsView -signalMousePosition a public method so it can be
called without a compiler warning. Previously, the mouse position would
be reported as (0,0) until the cursor was moved.
(cherry picked from commit bce753060eb9fb99ebc64fb6027d130a37b918a6)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mpv would attempt to load ICC profiles several times during VO init
even if no window is displayed. This potentially causes it to load
a profile for a different screen than it is going to be displayed
on, thereby invalidating the profile cache and rebuilding the LUT
every single time.
It would not unload a previously loaded profile when the video
window is moved to a display without an installed profile.
Fix these issues and tweak the log messages a little.
(cherry picked from commit 1bab7f69aeb1ee80fdd2f75d7658cd5fef7ee2e3)
|
|
|
|
| |
(cherry picked from commit 5cddd4ccca79405ea57fcd423a554ddf12da0126)
|
|
|
|
|
|
|
|
|
| |
Always keep around our private state and destroy it when we are really done in
the async uninit callback.
Fixes #1657
(cherry picked from commit c66b51dab02d9eb0629dc87612459436cd1a882e)
|
|
|
|
|
|
|
| |
This is missing from the previous commit. Not that harmful, but also
slightly un-nice since even a failed seek will reset the cache.
(cherry picked from commit f0ab1f2048d6d04744957d75623ca5bd04fc23fa)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A user reported a webm stream that couldn't be played. The issue was
that this stream 1. was on an unseekable HTTP connection, and 2. had a
SeekHead element (wtf?). The code reading the SeekHead marked the
element as unreadable too early: although you can't seek in the stream,
reading the header elements after the SeekHead read them anyway. Marking
them as unreadable only after the normal header reading fixes this.
(The way the failing stream was setup was pretty retarded: inserting
these SeekHead elements makes absolutely no sense for a stream that
cannot be seeked.)
Fixes #1656.
(cherry picked from commit 12dcc5eaacdabb5ac56846ee81e9595857f4553e)
|
|
|
|
|
|
|
|
|
|
|
| |
The global unpack function got moved to table.unpack in Lua 5.2, and
it's only available as the global if 5.2 is built with compatibility
enabled (the default). Lua 5.3 does not build with 5.1 compatibility by
default.
Fixes #1648.
(cherry picked from commit 4ff29f33b0d86888a02524df5d6085c4bc29477e)
|
|
|
|
|
|
|
|
|
|
|
| |
If the audio decoder was created, but no audio filter chain created yet
(still trying to decode a first audio frame), setting the "speed"
property could explode. It tried to recreate the filter chain, even
though no format was set yet.
This is inconvenient and should not happen.
(cherry picked from commit 720d4a5a1a82b2fa2da78dc2a3b1ca6ab87f973c)
|
|
|
|
|
|
| |
The MSYS2 ones already mention Lua.
(cherry picked from commit 3fe61ada84fcbd3cef1bafe7c3369542afac1017)
|
|
|
|
|
|
|
|
| |
Using check_statement() with an empty statement just to check for the
header is quite a hack. Fix check_headers() (so it takes a "use"
parameter), and use it for the checks instead.
(cherry picked from commit dfa562b5db95735edca8f7730d887f420e1cd585)
|
|
|
|
| |
(cherry picked from commit e9ff136dd3e5200f95e92739333e2d303e8fd174)
|
|
|
|
|
|
|
| |
FFmpeg can be compiled with them disabled, and then it won't provide the
public headers specific to these APIs, causing mpv compilation failure.
(cherry picked from commit baa354c64c19ea159fe6574263024c41108c4967)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of "vaapi", simply by changing the probe order.
"vaapi" uses the GLX GL interop, which has causing us more problems than
it solved.
Unfortunately this leads also to copying if "--hwdec=auto --vo=vaapi" is
used, even though GLX is not involved in this case - but I don't care
enough to make the probe logic cleverer just for this. You can still get
the zero-copy path with --hwdec=vaapi.
(cherry picked from commit 27b5492a828b5321a2f379f88f8f425cac0bbb85)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This duplicates the logic which FFmpeg's libavcodec uses. The effects
are unknown, though it's somewhat clear that a single thread doesn't
necessarily saturate a single CPU.
(Eventually we should just let FFmpeg auto-init the thread count, but
for now I prefer it this way, so e.g. verbose mode will print the
thread count.)
(cherry picked from commit 9657e5a2caef74de799fab0b9920284660865da9)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The vaapi equalizer have a custom range, and can have a smaller range
than mpv's normalized video equalizer values. The result is that a vaapi
equalizer value can map to multiple mpv values, so changing a mpv value
by 1 can get "stuck". Fix by remember the mpv value, and returning it if
it still corresponds to the vaapi value.
Really fixes #1647.
(Why am I even bothering with this irredeemable crap?)
(cherry picked from commit fc571e0adb2498cc9278ee51f9aa6b00ee165644)
|
|
|
|
|
|
|
| |
Probably fixes #1647 (if it's correct at all). I couldn't reproduce with
the vdpau libva driver, but a driver can use different ranges.
(cherry picked from commit 4e3f8ccb9d24f2f0940e93d1a8582e562265dede)
|
|
|
|
| |
(cherry picked from commit 6d4a75829522f9fe376a08a97ea3ae8d6cb72575)
|
|
|
|
|
|
| |
It was annoying and didn't ever help with anything.
(cherry picked from commit 55f69605fb330e73e71f6dc7254bf72bed8607dd)
|
|
|
|
|
|
|
|
| |
If we're caching a stream with unknown size, and we reach EOF, then
consider the EOF position the file size. Typically makes sense when
reading from a pipe or a http connection that did not send a size.
(cherry picked from commit 3cd394995f812aba93166febd1032e3f4208d49b)
|
|
|
|
|
|
|
| |
Also write something about MPlayer, since this is a frequently asked
question.
(cherry picked from commit 771cb349325661d86edab6b1cac46d4ecf765a16)
|
|
|
|
|
|
|
|
|
| |
Stupid compiler.
For decode_surrogate_pair(), I changed the order of evaluation; it
shouldn't matter, but this order is more readable in my opinion.
(cherry picked from commit 85bf102f54cfae9945d26f1edc0e642975881dfa)
|
|
|
|
| |
(cherry picked from commit 3c3f9a8042b9d681481eb1469dc1514833452f29)
|
|
|
|
|
|
| |
This crap seems to break every other fullmoon.
(cherry picked from commit 0bbf36b796336c41ce8a7ef2054276254ba56067)
|
|
|
|
|
|
|
| |
All cdda options (except --cdrom-drive) were ignored, because the priv
struct (with the options set) was just replaced. Oops.
(cherry picked from commit 1ba24d25853c0bb42526344345dc1c20741af338)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It was possible to make the player play local files by putting rar://
links into remote playlists, and some other potentially unsafe things.
Redo the handling of it. Now the rar-redirector (the thing in
demux_playlist.c) sets disable_safety, which makes the player open any
playlist entries returned. This is fine, because it redirects to the
same file anyway (just with different selection/interpretation of the
contents). On the other hand, rar:// itself is now considered fully
unsafe, which means that it is ignored if found in normal playlists.
(cherry picked from commit a4b6bf8c41b54554286117b97e78412a32b5147f)
|
|
|
|
|
|
|
|
| |
This should be sufficient.
If stdatomic.h is not available, we make no difference.
(cherry picked from commit 01b87e509c292189acdd96bc7a216b50eafbce9e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This time (there are a lot of times), libswscale randomly ignores
brightness/saturation/contrast settings.
Looking at MPlayer code, it appears the return value of
sws_setColorspaceDetails() signals if changing these settings is
supported at all.
(Nevermind that supporting this feature has almost 0 value, and
obviously eats maintenance time.)
(cherry picked from commit 08199a64d2e7e9f1a9430f0258a98285cdf1c902)
|
|
|
|
|
|
|
|
| |
When used with mp.get_screen_size(), mp.get_screen_margins() allows a
Lua script to determine what portion of the mpv window actually has the
video in it.
(cherry picked from commit 1bbf1eb3ce2bdb0ef3ec3b045074bcb2f3af6a7a)
|
|
|
|
|
|
|
|
|
| |
It is also used for initialization in channel-list setup.
Should fix compilation on FreeBSD, and is more correct
since it is used unconditionally.
Reverts 6445648 .
(cherry picked from commit 40c9e7906831e67ad3b83324d5a95f4c8a869b9e)
|
|
|
|
|
|
|
|
| |
Just use makeFirstResponder on the mpv events view from client code
if you need the built in keyboard events (this is easier for dealing with view
nesting).
(cherry picked from commit 03a69bac95ce4e15016138104cd198a6a60c38cd)
|
|
|
|
| |
(cherry picked from commit 721e430cd2da16e0802781171a3cedb3849eec24)
|
|
|
|
|
| |
Signed-off-by: wm4 <wm4@nowhere>
(cherry picked from commit b74238416237d8a4b9fb02278e7b4fadf1f4b4f7)
|
|
|
|
|
|
|
| |
Essentially a leak, but not that bad since it's small and allocated only
once.
(cherry picked from commit 73c5c3df5336348367902ec76a5f702909549696)
|
|
|
|
| |
(cherry picked from commit e7b7a5a476a9082320173a7c09b22d3b679fe557)
|
|
|
|
|
|
| |
Unused since the previous commit. (Apparently it was a stupid idea.)
(cherry picked from commit fbf76da913b2d39a7da3cc7cea3d8b61f3c2f540)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactors an older hack, which for some reason used a more complicated
way. This generates the playlist representing the contents of the rar
file in demux_playlist.c. The pseudo-demuxer could easily be separate
from the the playlist parsers (and in fact there's almost no shared
code), but I don't think this obscure feature deserves a separate file.
Sample files created with:
rar a -v20000k -m0 files.rar file1.mkv file1.mkv
(cherry picked from commit 5824eb7107a612880f68cc8e4f42cfff1bbf88ba)
|
|
|
|
|
|
|
|
| |
A use of NO_STREAM_ID_FILTER was added to the DVB code recently. While I
have no idea what it's needed for, it makes mpv fail to compile on
FreeBSD 10.1. Add it to the dvb configure check.
(cherry picked from commit 64456488b3b6bbbcbc4d3c96aab1b45cbd215439)
|
|
|
|
|
|
|
|
| |
The way I interpreted it, it seemed like this was not default behavior
and could be enabled with --audio-pitch-correction - it should be made
clearer that this is actually *the default behavior*.
(cherry picked from commit 0f99b302f5dae5fe7df4e21aeb0900109b0ab042)
|
|
|
|
|
|
|
|
| |
Broken drivers are an issue rather often. Maybe this gives the user an
idea that this could be the reason. (We can't dump much more info on a
80x24 terminal.)
(cherry picked from commit a5f3083ae726452d07fca3ed8acdfbcaed84b0a7)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change test_fbo() so that it checks the FBO lazily, and restructure
check_gl_features() to invoke it only if we know that a FBO will be
needed for a certain enabled feature.
This can avoid strange error messages when using --vo=opengl and the
FBO format does not work. It's also less confusing when reading the
verbose log (users might think that the FBO is actually used, etc.).
(cherry picked from commit 280c826379dfdebb9e949d22583c01d532a504c7)
|
|
|
|
|
|
|
|
|
|
| |
This can happen with the "no-colorkey" suboption. Then the code in
xv_draw_colorkey() can be run before vo_x11_config_vo_window(), when
vo_gc is not allocated yet.
Fixes #1629.
(cherry picked from commit a2e0cd7f251f0c1750bbe7adaff6d408ae7dcd37)
|
| |
|
|
|
|
|
|
| |
This reverts commit ff10bd65d68883d51cad9db5066f5e0baf74be30.
Fixes #1631.
|
| |
|
| |
|
|
|
|
| |
(cherry picked from commit e85bcc12233ee08b7609382372dd80482fd016f2)
|
|
|
|
|
|
|
| |
Saves some memory. Should be especially helpful if many small files are
loaded, like when mass-loading subtitle files and the cache is enabled.
(cherry picked from commit 899f0cd51eaadf6d0249d854efc3d0d1029045bd)
|
|
|
|
| |
(cherry picked from commit f3eb6ae7836b4759a351e083babe49cd7b17d375)
|
|
|
|
|
|
|
| |
It's needed for the DisplayLink functions so it must be enabled for the basic
cocoa code.
(cherry picked from commit 8e80b3fd2fea8bf11abaeb108d85b2bdfbe14695)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the cache is enabled, the demuxer is closed and opened again (because
currently, the cache can not be enabled atfer data was already read).
The call for opening a new demuxer uses the same params struct, which
references the ctx->uids array. But there is a MP_TARRAY_GROW()
invocation somewhere on the way, which can reallocate the ctx->uids
array, making params.uids a dangling pointer.
This issue probably existed for a longer time, probably since 5cd33853
(slightly more obvious since f50b105d).
(cherry picked from commit 9349cfca910990d1126b973fd2ca55cb2351d35f)
|
|
|
|
|
|
|
|
|
| |
Again removes some indirections and extra arguments.
Also replace some memcpy/memmoves with assignments. (Assignments became
possible only later, when reference UIDs were turned into a struct.)
(cherry picked from commit 02bd54c0ac0933bc2fe982666bbe4da75957c485)
|
|
|
|
|
|
| |
Removes tripple pointer indirections and such.
(cherry picked from commit 2bf0a5f2bcb5f0eea72f35d85e59125ad89566bf)
|
|
|
|
|
|
|
|
| |
Should behave about the same, but reduces code some duplication with
seeking and reading a header element pointed to by a SeekHead. It also
makes behavior with incomplete files slightly better.
(cherry picked from commit 2e23be5a7b104c43d4754b07c85423e5027e2b5d)
|
|
|
|
|
|
|
| |
Limit it to a single message. It often printed more than that, and in
some cases (old files with "cluster" index), spammed a lot.
(cherry picked from commit a761a1531a9883abb2de5d29c98f4c96a93138a3)
|
| |
|
|
|
|
| |
Broken by unchecked cherry-picking of 53867aa.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of rendering and upscaling each video frame on every vsync, this
version of the algorithm only draws them once and caches the result,
so the only operation that has to run on every vsync is a cheap linear
interpolation, plus CMS/dithering.
On my machine, this is a huge speedup for 24 Hz content (on a 60 Hz
monitor), up to 120% faster. (The speedup is not quite 250% because of
the overhead that the larger FBOs and CMS provides)
In terms of the implementation, this commit basically swaps
interpolation and upscaling - upscaling is moved to inter_program, and
interpolation is moved to the final_program.
Furthermore, the main bulk of the frame rendering logic (upscaling etc.)
was moved to a separete function, which is called from
gl_video_interpolate_frame only if it's actually necessarily, and
skipped otherwise.
(cherry picked from commit 010cf183fe3133fe6f581f9b25137827c6b26a39)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hopefully, this will really clear up how the thing is supposed to work
(and that it's not SVP, nor MVTools).
I also removed instances of the word "interpolation", since that's a
term that's easily misleading.
Finally, I expanded on smoothmotion-threshold since the purpose/meaning
was a bit confusing.
(cherry picked from commit 9fa73b6f645952247d3d18e617a357a5d02f644e)
|
|
| |