0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 03:52:22 +02:00
Commit Graph

40669 Commits

Author SHA1 Message Date
Diogo Franco (Kovensky)
4db470e08a Release 0.8.3 2015-03-17 10:50:21 +09:00
Diogo Franco (Kovensky)
cf3819ece9 Update RELEASE_NOTES 2015-03-17 10:49:57 +09:00
wm4
575b631d67 video: don't drop anamorphic scaling if it's too minor
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 d96fad04be)
2015-03-17 10:49:56 +09:00
wm4
4c1b45b5ab command: don't drop audio buffers when switching filters
This partially reverts commit ae7228c6. I guess the old behavior was
slightly more popular.

Fixes #1693 (probably).

(cherry picked from commit 699fc0e51e)
2015-03-17 10:49:56 +09:00
wm4
8932d90ec6 demux_lavf: fix rejection of image2 demuxer
This was probably broken for some time in git master, and the later
commit which happened to fix it was not picked.

Fixes #1689.
2015-03-16 11:58:24 +01:00
Diogo Franco (Kovensky)
fc4da23c64 Update RELEASE_NOTES 2015-03-16 17:26:05 +09:00
Martin Herkt
017c2808e4 bootstrap: add waf mirror
(cherry picked from commit 958dbca3ef)
2015-03-16 17:08:16 +09:00
wm4
c5a8fc793c audio: fix off by one error in channel map selection code
The consequence was that some AOs (like ao_jack) could not output 8
channels.

Fixes #1688.

(cherry picked from commit c4f4b09014)
2015-03-16 17:08:01 +09:00
Martin Herkt
3dcd3476c6 man: fix PDF build
(cherry picked from commit add4c9ee03)
2015-03-16 17:07:47 +09:00
Stefano Pigozzi
ad119460d7 cocoa: signal VO_EVENT_WIN_STATE on fps change
Fixes #1686

(cherry picked from commit efe0fb75bc)
2015-03-15 21:33:38 +09:00
James Ross-Gowan
e865543be2 w32_common: don't hide cursor when the menu is open
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 acbac01a73)
2015-03-15 20:09:00 +09:00
wm4
e84a00651a vo: update FPS only on state changes
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 209f8225ed)
2015-03-15 20:08:00 +09:00
wm4
b17ccd1c43 demux_mkv: make matroska.pl script output deterministic
Work around the randomized Perl hashtables by sorting the elements.

Fixes #1673.

(cherry picked from commit 7e9c441d41)
2015-03-15 20:07:14 +09:00
wm4
62d922e4f0 command: allow changing some VO options even if VO wasn't created yet
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 e9841630ad)
2015-03-15 20:07:06 +09:00
wm4
eaa5393c4a player: fix crash when taking screenshots in idle mode
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 ca474d22c9)
2015-03-15 20:06:50 +09:00
wm4
50b74bf407 x11: ignore mouse enter/leave events due to pointer grab
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 30860f7b10)
2015-03-15 20:06:28 +09:00
Stefano Pigozzi
414cdc9da6 build: disable tests by default
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 ca0b33e9b1)
2015-03-11 12:49:40 +09:00
wm4
1c4bdfaf9c vo: hide opengl-cb in --vo=help
Avoids stupid questions.

(cherry picked from commit c7790b4526)
2015-03-11 12:49:40 +09:00
wm4
76809e5ef7 vo_opengl_cb: clear last video frame on uninit()
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 eff265c140)
2015-03-11 12:49:40 +09:00
wm4
efc72daea9 client API: clarify mpv_opengl_cb_render() viewport parameter
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 90adf2904e)
2015-03-11 12:49:40 +09:00
wm4
b414d9a9a7 stream: use relaxed atomic loads for checking playback aborts
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 b9307b7175)
2015-03-11 12:49:40 +09:00
wm4
2b737f8bfc demux_mkv: never warn when trying to resync on EOF
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 112d9aeda1)
2015-03-11 12:49:40 +09:00
wm4
9e99a0c8b9 demux_mkv: check for playback aborts
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 39fa05d374)
2015-03-11 12:49:40 +09:00
James Ross-Gowan
e22ecb1585 w32_common: remove redundant is_maximized function
This already exists as IsMaximized in the Windows API.

(cherry picked from commit 5f0eda7b94)
2015-03-11 12:49:40 +09:00
wm4
6358e9be5c x11: fix VOCTRL_GET_WIN_STATE
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 b7f242dfcf)
2015-03-11 12:49:40 +09:00
Kevin Mitchell
d57a48c64e stream/smb: mark as network stream for --cache=auto
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 3efbc1a9a3)
2015-03-11 12:49:40 +09:00
Niklas Haas
22691f2e6a manpage: document swapinterval default
(cherry picked from commit 6983430c35)
2015-03-11 12:49:39 +09:00
Filip Milivojevic
623a259eee vf_vavpp: fix deinterlacing
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 5c3a6ca96e)
2015-03-11 12:49:39 +09:00
wm4
fa81e835bc DOCS: minor update to coding style
(cherry picked from commit 6f507d14c1)
2015-03-11 12:49:39 +09:00
Stefano Pigozzi
46cc45223c cocoa: fix autohide in fullscreen
(cherry picked from commit 8ec9bce2d3)
2015-03-11 12:49:39 +09:00
Stefano Pigozzi
0e160123fd cocoa: fix mouse hiding with launchpad and dock folders
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 ce239f1577)
2015-03-11 12:49:39 +09:00
torque
710979e0e8 cocoa: clamp mouse position to window.
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 39537f6474)
2015-03-11 12:49:39 +09:00
torque
18d3c2ab85 cocoa: update mouse coordinates when window is initialized.
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 bce753060e)
2015-03-11 12:49:39 +09:00
Martin Herkt
f84ca3a516 vo_opengl/x11: fix automatic ICC profile loading
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 1bab7f69ae)
2015-03-11 12:49:39 +09:00
Stefano Pigozzi
324a40d2e1 cocoa: remove possible use after free
(cherry picked from commit 5cddd4ccca)
2015-03-11 12:49:33 +09:00
Stefano Pigozzi
83e98d3ada cocoa: fix some crashes caused by async uninit
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 c66b51dab0)
2015-03-11 12:39:56 +09:00
wm4
a424fe1296 demux_mkv: actually skip elements out of reach
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 f0ab1f2048)
2015-03-11 12:34:26 +09:00
wm4
e09803ae6b demux_mkv: fix issues with unseekable streams
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 12dcc5eaac)
2015-03-11 12:34:02 +09:00
torque
80669188d6 Lua: add unpack shim for Lua 5.2/5.3 compatibility.
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 4ff29f33b0)
2015-03-11 12:33:53 +09:00
wm4
1a3a3aba63 player: allow changing playback speed in early audio init stages
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 720d4a5a1a)
2015-03-11 12:33:22 +09:00
wm4
0b141eaa82 DOCS/compile-window.md: add Lua package to MXE instructions
The MSYS2 ones already mention Lua.

(cherry picked from commit 3fe61ada84)
2015-03-11 12:33:00 +09:00
wm4
cac071dc23 build: make vdpau and dxva2 checks nicer
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 dfa562b5db)
2015-03-11 12:32:51 +09:00
ChrisK2
c77f076ae4 DOCS, options: fix example
(cherry picked from commit e9ff136dd3)
2015-03-11 12:32:03 +09:00
wm4
f4393eaa6c build: check whether hwaccels are enabled in FFmpeg
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 baa354c64c)
2015-03-11 12:31:53 +09:00
wm4
bbd6501bd3 vd_lavc: let --hwdec=auto select "vaapi-copy"
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 27b5492a82)
2015-03-11 12:31:40 +09:00
wm4
dc29a21b5c vd_lavc: request 1 more threads than CPU cores
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 9657e5a2ca)
2015-03-11 12:31:16 +09:00
wm4
4d87844508 vo_vaapi: fix video equalizer (second try)
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 fc571e0adb)
2015-03-11 12:30:50 +09:00
wm4
cced4bf4d6 vo_vaapi: round equalizer values
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 4e3f8ccb9d)
2015-03-11 12:30:50 +09:00
wm4
5734cd7063 README: fix typos
(cherry picked from commit 6d4a758295)
2015-03-05 10:48:31 +09:00
wm4
52324a494c ad_spdif: remove per-packet message
It was annoying and didn't ever help with anything.

(cherry picked from commit 55f69605fb)
2015-03-05 10:48:25 +09:00