| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This played e.g. a 1264x722 file as 1264x720. There was some code which
dropped the aspect ratio if the video (in original resolution) wasn't
scaled by more than 4 pixels. Commit 5f3c3f8c introduced this (although
I'm not really sure what the code replaced by it did).
Just remove this "feature".
(cherry picked from commit d96fad04bea738ae420f3c8da390e2c8932f5915)
|
|
|
|
|
|
|
|
|
| |
This partially reverts commit ae7228c6. I guess the old behavior was
slightly more popular.
Fixes #1693 (probably).
(cherry picked from commit 699fc0e51e4672d567f85a3589a140eda69c9ee2)
|
|
|
|
|
|
|
| |
This was probably broken for some time in git master, and the later
commit which happened to fix it was not picked.
Fixes #1689.
|
| |
|
|
|
|
| |
(cherry picked from commit 958dbca3ef480052ab3c801fd0fcbbdcb4600acb)
|
|
|
|
|
|
|
|
|
| |
The consequence was that some AOs (like ao_jack) could not output 8
channels.
Fixes #1688.
(cherry picked from commit c4f4b0901496411c93647e36042128b08f5d153d)
|
|
|
|
| |
(cherry picked from commit add4c9ee037bb619509e660664a08b6f56531c30)
|
|
|
|
|
|
| |
Fixes #1686
(cherry picked from commit efe0fb75bc4bc3572edd241e60f31d620413a919)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, mpv would hide the cursor when the autohide timer expired,
even if the window menu was open. This made it difficult to use the menu
with the mouse.
When handling VOCTRL_SET_CURSOR_VISIBILITY, instead of determining
whether to call SetCursor by checking if the cursor is in the client
area, call it based on the parameters to the last WM_SETCURSOR message.
When the window enters "menu mode," it gets a WM_SETCURSOR message with
HIWORD(lParam) set to 0 to indicate that the cursor shouldn't be set.
(cherry picked from commit acbac01a73e22ba1b0aa48be191f72f988133edd)
|
|
|
|
|
|
|
|
|
|
| |
I'm not comfortable with VOCTRL_GET_DISPLAY_FPS being called every
frame.
This requires the VO to set VO_EVENT_WIN_STATE if the FPS could have
changed. At least the X11 backend does this.
(cherry picked from commit 209f8225eda88f5b3a56ac37e459e4e9bda01d7e)
|
|
|
|
|
|
|
|
| |
Work around the randomized Perl hashtables by sorting the elements.
Fixes #1673.
(cherry picked from commit 7e9c441d41ea0972641d1fb5ffddf2e11e46f23d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of refusing to set properties like "fullscreen" if no VO was
created, always allow it. So if no VO is created, setting the property
merely changes the options (and will be applied once the VO is created).
This is consistent with similar behavior changes to some other
properties.
Improves the behavior reported in #1676.
Also, we shouldn't check the config_ok variable - the VO should do this.
(cherry picked from commit e9841630ad2962e106ebf6c6d1afd032cbf93b33)
|
|
|
|
|
|
|
|
|
|
|
|
| |
mpctx->filename is obviously not set if no file is playing.
When this code was written, it probably couldn't happen, because the
normal screenshot path fails much earlier in idle mode. But you can
still take screenshots in "full window" mode, and recently the
screenshot code was changed to use the "full window" mode if the normal
path does not work.
(cherry picked from commit ca474d22c98d678003cf5c94612d874d79eae442)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If you click on a window that doesn't have a focus, a LeaveNotify
followed by a EnterNotify event can be generated. The former will have
mode set to NotifyGrab, the latter to NotifyUngrab. This will make the
player think the mouse left the window, even though this is not the
case. Ignore these and only react to those with mode set to
NotifyNormal.
Probably fixes #1672, and some other strange issues on some WMs.
(cherry picked from commit 30860f7b1075d04b861e38cac72a6b1a2c951f6e)
|
|
|
|
|
|
|
| |
Having them autodetect is a bad idea since it would link cmocka in the main
mpv binary (which users don't want).
(cherry picked from commit ca0b33e9b1c5fb3bc12684c53bc2a1a22701a39d)
|
|
|
|
|
|
| |
Avoids stupid questions.
(cherry picked from commit c7790b4526aaef08cd76f135dc2ea2dd62fab045)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mpv_opengl_cb_render() is supposed to clear the screen with the
background color if there's no video... I think.
It didn't do this, because although uninit() requested gl_video_config()
to be called, this didn't happen, because this function checks whether
the VO is set - and it's unsert after uninit() releases the lock.
Also call the user wakeup callback in this situation, so the user
actually redraws immediately.
(cherry picked from commit eff265c1400f6795e284d4e7c9054cf288d6c0cf)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Basically, the idea behind the vp parameter is broken - I guess the
intention was to enable rendering to a specific subrectangle of the
target framebuffer, but there's nothing to specify the actual target
rectangle (the VO will still clear e.g. the borders between video and
framebuffer borders).
We're not going to keep the current semantics either with the upcoming
rework of vo_opengl, so declare this for broken. Maybe we can introduce
a function later which does this properly.
(cherry picked from commit 90adf2904e1c207a239fc4527e328b7facd22cad)
|
|
|
|
|
|
|
|
|
| |
Seems appropriate, and will probably avoid performance surprises with
scary architectures which don't have trivial implementations for atomic
loads. (Consider that demux_mkv calls this very often now, and
libavformat demuxers and streams did this for a while now.)
(cherry picked from commit b9307b71753f205baaac99f8e803774c7efdebeb)
|
|
|
|
|
|
|
|
| |
If this happens, the file is actually broken, but the assumption is
simply that the file was truncated, and printing a warning would be
strange.
(cherry picked from commit 112d9aeda1f059f22cd4cf0cbb2f489a74ecd9eb)
|
|
|
|
|
|
|
|
|
|
|
| |
Check async abort notification. libavformat already do something
equivalent.
Before this commit, the demuxer could enter resync mode (and print silly
warning messages) when the stream stopped returning data because of an
abort.
(cherry picked from commit 39fa05d3742aea94c7638c5b9223d680459b7799)
|
|
|
|
|
|
| |
This already exists as IsMaximized in the Windows API.
(cherry picked from commit 5f0eda7b94e5af25970bfd5bef0cf401fe3a10e7)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not rely on the pointed-to argument to be initialized; VOCTRLs are
supposed to completely overwrite them on success (or not to touch them
on failure).
The currently only caller of VOCTRL_GET_WIN_STATE initializes the value
before calling this, so this is merely about correctness and didn't lead
to any actual bugs.
(cherry picked from commit b7f242dfcf600b6ec8a861218df5fc0b71217455)
|
|
|
|
|
|
|
|
|
| |
This causes the cache to be enabled with --cache=auto. It was not done
previously because the small cache size 320k actually led to worse
performance. However, with the current default cache size of 25000kb,
caching notably improves performance.
(cherry picked from commit 3efbc1a9a38de2f0af4778ab9388c6a8e1c11ca6)
|
|
|
|
| |
(cherry picked from commit 6983430c35d8f71ad5d779c763f80d55bcf69c47)
|
|
|
|
|
|
|
|
| |
Add filter parameters to VAAPI deinterlacing filter to actually process
bottom fields instead of deinterlacing top field twice.
Signed-off-by: wm4 <wm4@nowhere>
(cherry picked from commit 5c3a6ca96e8bb5275149e5763f27c6aaed35113d)
|
|
|
|
| |
(cherry picked from commit 6f507d14c1b05d6a7ac8bd9b01816de80f168113)
|
|
|
|
| |
(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)
|