| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
|
|
|
| |
Overwrite the alignment applied by the OSD style. Additionally, remove
the initialization of the Alignment field in create_ass_track(); the
value is always overwritten by mp_ass_set_style() later.
Fixes #1626.
(cherry picked from commit 53641a689d17d6fce31d752fbca150ca95796e81)
|
|
|
|
|
|
|
|
|
| |
There was some logic to set certain things on init only. Not sure why
this was done (saving some cheap calculations?) - but since the next
call would override these style settings by applying the usual subtitle
style, I don't think this was intended.
(cherry picked from commit 9fbcb56bee787b32be53cf240dd95b77d1a3921d)
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLES2 randomly does not support the transpose parameter in matrix
uniform calls. So we have to do this manually. Sure it was worth to
mutilate the standard just so all these shitty SoC vendors can safe 3
lines of code.
(Obviously trying to handle all of GLES2 to GL 4.x in a single codebase
was a mistake.)
(cherry picked from commit cc011415ffb10521260e486a41b56d0080bf2cd9)
|
|
|
|
|
|
|
|
|
| |
GLES2 shaders do not have line continuation characters. Abuse the
HAVE_ARRAYS define to exclude code which uses arrays, and which also
happens to cover all code that defines multi-line macros. (So yes, this
is a hack.)
(cherry picked from commit 2c8d16d89f6f64a587222dd53a3d27b2a218ee01)
|
|
|
|
| |
(cherry picked from commit a92cab736f05e855dc52618a64ecc5b1b8d1eccd)
|
|
|
|
|
|
|
|
|
| |
Remove coded_width and coded_height. This was originally added in commit
fd7dde40, when BITMAPINFOHEADER was killed. The separate fields became
redundant in commit e68f4be1. Remove them (nothing passed to the
decoders actually changes with _this_ commit).
(cherry picked from commit 5baf74fa24493298fc83336da77f400ddac29d55)
|
|
|
|
|
|
|
|
| |
Silences "[ytdl_hook] WARNING: video doesn't have subtitles", which was
an annoying and pointless message printed with almost all youtube
videos.
(cherry picked from commit 7cff2e41316d508754b7b0725f5236de180f5cc2)
|
|
|