| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of accessing MPContext in player/timeline/*, create a separate
context struct, which the timeline loaders fill out. It turns out that
there's not much in the way too big MPContext that these need to access.
One major PITA is managing (and closing) the set of open demuxers. The
problem is that we need a list of all demuxers to make sure no unneeded
streams are enabled.
This adds a callback to the demuxer_desc struct, with the intention of
leaving to to the demuxer to call the right loader, instead of
explicitly checking the demuxer type and dispatching manually in common
code. I also considered making the timeline part of the demuxer state,
but decided against: it's too much of a mess wrt. memory management and
threading, and also doesn't make it clear who owns the child demuxers.
With the struct timeline decoupled from the demuxer state, it's at least
somewhat clear that the child demuxers are independent from the "main"
demuxer.
The actual changes to player/timeline/* are separated in the following
commits, because they're quite verbose. Some artifacts will be removed
later as soon as there's only 1 timeline loading mechanism.
(cherry picked from commit a0a089f6a48c2775478b544185a0ddeabf43cce8)
|
|
|
|
|
|
| |
Makes some of the following commits slightly simpler. Also fix a typo.
(cherry picked from commit 3efeee446e50c0cd4674137a680e6d3660c74a22)
|
|
|
|
|
|
| |
Should be equivalent.
(cherry picked from commit 969edb9e0b86500ed0af9c26209ad7000adb5157)
|
|
|
|
|
|
|
|
|
|
|
| |
Also effects some other cases.
The real reason for this is for keeping track of which demuxers can be
closed (see following commit). Since I don't want to use reference
counting for this, some sort of simplistic mark-and-sweep is done to
determine whether a demuxer is still needed.
(cherry picked from commit f54220d95150ee53a33cc6626b7d0ff8b235c7f0)
|
|
|
|
|
|
|
| |
(There was a missing version bump for the msg-level change; just move it
under 1.14.)
(cherry picked from commit 0283815ee15dff0fbe23da8b26a9d50dfbf26f42)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The HLs protocol consists of a "playlist" main file, which mpv downloads
and passes to the HLS demuxer. The HLS demuxer actually requests segment
files containing media data on its own. The packets read from the
demuxer have a source file position set, but it's not from the main
file. This leads to a strange effect: as a last fallback, the player
will calculate the approximate playback position from the file
position/size ratio, and since the main file is tiny, this will always
show 100%. Fix this by resetting the packet file position.
This doesn't affect the case when HLS actually reports a duration.
(cherry picked from commit a64b1deaa613108ffa3496b0306c1aea1ba5a68f)
|
|
|
|
|
|
| |
This is already mapped by default.
(cherry picked from commit 8b784fb1ca7b908f76d8a389419149feef811c5f)
|
|
|
|
|
|
|
| |
This should be no problem... but it _might_ help with #1536, so it's
worth a try.
(cherry picked from commit 0063d94927a0dfd1ba8f4af1bc59467ba793ef82)
|
|
|
|
| |
(cherry picked from commit d34eabe286c46811f0fb1188c789572a57df2b5d)
|
| |
|
| |
|
| |
|
|
|
|
| |
(cherry picked from commit 31ac0574ad910ee9256ad5d5b89c7a7d3b88761f)
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The previous commit effectively fixes the mess caused by 'config' vs.
'mpv.conf', and the hack introduced by commit e01a6dac and extended by
commit db167cd4 isn't needed anymore.
(cherry picked from commit 816d7bba1f3842146fa12c98232070559e72e807)
|
|
|
|
|
|
|
|
|
| |
Actually, it's pretty simple to look for multiple filenames at once,
since mp_find_all_config_files() is already a bit "special" anyway.
See #1569. Reverts most of commit db167cd4 (keeps osx-bundle.conf).
(cherry picked from commit a27aa68dd33c613218d261b14ef1cf763abc1c33)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A recent behavior change in libavcodec's h264 decoder keeps at least 1
surface even after avcodec_flush_buffers() has been called. We used to
flush the decoder in order to make sure all surfaces are free'd, so that
the hw decoder can be safely uninitialized. This doesn't work anymore.
Fix it by closing the AVCodecContext before the hw decoder is
uninitialized. This is actually simpler and more robust. It seems to be
well-supported too.
Fixes invalid read accesses with vaapi-copy and dxva2-copy. These
destroyed the hwdec API fully on uninit, and could not deal with
surfaces surviving the decoder.
Probably fixes #1587.
(cherry picked from commit cf073138b289243fb551242f8058a4f8490cc9af)
|
|
|
|
|
|
| |
This line of code ended up in the wrong block in commit cd6dfcbe.
(cherry picked from commit f247294d7346306ef9f42a986d693df4743f9152)
|
|
|
|
|
|
|
|
|
| |
Admittedly, the behavior on Windows is not quite straightforward. The
behavior on the other platforms is equivalent to fopen().
Fixes #1585.
(cherry picked from commit a799a4c57f998ed2ef7f5d306d4dad32c173c349)
|
|
|
|
| |
(cherry picked from commit bf46f4c99714d2df105c3c004aa96680b4dda749)
|
|
|
|
|
|
|
| |
Some IR receivers emit this key by default for remote control
buttons. Make it mappable.
(cherry picked from commit 9aaec7cffb2fb1543d4c3cabb55165f606c0b87d)
|
|
|
|
|
|
| |
Hopefully.
(cherry picked from commit 5247416735e86417d466f0137cf907b5921602a1)
|
|
|
|
|
|
|
| |
This value is not necessarily trustworthy (it might change) and can be
0.
(cherry picked from commit 349067a6ab2d03024b3e984e80314f303dd14432)
|
|
|
|
|
|
|
| |
Falls back to the first display in the list returned by xrandr. Not
entirely correct, but makes some people happy (see #1575).
(cherry picked from commit cd6dfcbef4ef15fd7ccd387e2f3438d7e702c567)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apparently there's at least one distro which ships a /etc/mpv/mpv.conf
file (mpv doesn't install such a file). This breaks config files named
'config' located in the user's mpv config directory, because mpv first
loads files named 'config' and then 'mpv.conf'. There is no mechanism
for putting files with different names into the same config path order.
(Even worse, that mpv.conf file only set an option to the default value.
Why do distros always do very stupid things?)
Print a warning on collisions.
Although using 'config' was well-supported, supporting both names is
starting to become messy, so deprecate 'config' and print a warning if
one is found.
At least we will be able to remove the whole mess once 'config' files
are ignored...
This also affects the osx-bundle, which intentionally used these not-so-
optimal semantics. Solve it in a different way. (Unfortunately with an
ifdef - it's not required, but having to explain everyone why mpv tries
to load a osx-bundle.mpv file on Linux and Windows would consume
energy.)
Closes #1569.
(cherry picked from commit db167cd438b516371bc2a7b6e08a57f2054dc742)
|
|
|
|
|
|
|
| |
Using it just makes no sense. But we're really being nice about this and
don't remove it immediately.
(cherry picked from commit fd5403cb404ca8fb30c2c6b1f415201bbce40d77)
|
|
|
|
|
|
|
|
|
|
| |
Makes all keys documented in XF86keysym.h mappable. This requires the
user to deal with numeric keycodes; no names are queried or exported.
This is an easy way to avoid adding all the hundreds of XF86 keys to
our X11 lookup table and mpv's keycode/name list.
(cherry picked from commit 417869f845d34596d8651fd9c38e6c74d56fecee)
|
|
|
|
|
|
|
|
|
| |
Happens to fix #1581 due to an unfortunate interaction with the way the
VO does not react to commands for a while if a video frame is queued.
Slightly improves other situations as well, if the client spams mpv with
commands during playback.
(cherry picked from commit 32b56c56bad78d8d3038361aef6f36ad9cabebb0)
|
|
|
|
|
|
|
| |
Using prev_pts as the start of the scale was plain wrong. Change it to
prev_vsync.
(cherry picked from commit 3931544ef33196e1966c416cc0d60d4160cf27fb)
|
|
|
|
|
|
|
|
|
|
| |
Commit e920a00eb assumed that terminate_cocoa_application() actually
would exit. But apparently that is not always the case; e.g. mpv --help
will just hang. The old code had a dummy exit(0), which was apparently
actually called. Fix by explicitly exiting if mpv_main() returns and
terminate_cocoa_application() does nothing.
(cherry picked from commit 9e14042e575435e94da660823d14aa6a6b6cb668)
|
|
|
|
| |
(cherry picked from commit 96547a810e87d06121704ed67e3cf44430752c67)
|
|
|
|
|
|
|
|
|
| |
Requested. See manpage additions.
This also makes the magical loop_times constants slightly saner, but
shouldn't change the semantics of any existing --loop option values.
(cherry picked from commit aee0978d50e21d8f114382fdb9c014c029f71a04)
|
|
|
|
|
|
|
|
|
| |
Setting the input context is always called, both in cplayer and libmpv,
and under HAVE_COCOA. Unsetting the input context was done only the
cplayer uninit call. Also it was under HAVE_COCOA_APPLICATION, so it was
not unset in libmpv (dangling pointer).
(cherry picked from commit c59a4f12db96784b054f28d52eaa33cb7553d630)
|
|
|
|
| |
This is almost equivalent, and gets rid of the ifdef.
|
|
|
|
|
|
|
|
|
|
|
| |
The code in main.c calls exit() explicitly, but the code is actually
easier to follow by simply exiting from main() instead. The exit() call
in av_log.c happens only on severely broken builds, so replace it with
abort().
(Shuts up rpmlint warnings.)
(cherry picked from commit e920a00ebad645cd14d341f4dabd4c5c077d2e0c)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a small oversight. The client name (as set on command line
options or, more importantly, the client API) was not set when listing
devices e.g. via the "audio-device-list" property.
Might or might not fix #1578.
Also adjust the log level for an unrelated message.
(cherry picked from commit c152c590843a192761cff585a84ce57385d83d40)
|
| |
|
|\
| |
| |
| |
| | |
* Cpuroast/release/0.8:
A few tweaks to the 0.80_rc2 release notes
|
|/
|
|
|
| |
scale-radius=3 is the default, so use 2 as an example
Point out that ewa_lanczos (Jinc) is actually new.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit acc5e8f57419debdb74234a228b44db75023e28b.
As expected, some didn't like this. Others won't like this revert.
Whatever.
See #1561.
This should go into mpv 0.8.0 before it's released.
(cherry picked from commit 7bbc6170193a22d5d66370e4e3a97d23bcbc3903)
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the confusing crap that allowed a filter using the libavfilter
bridge to be compiled without libavfilter. Instead, compile the wrappers
only if libavfilter is enabled at compile time.
The only filter which still requires it is vf_stereo3d (unfortunately).
Special-case this one. (The whole filter and how it interacts with lavfi
is pure braindeath anyway.)
(cherry picked from commit 2522bff5657c7566ac956998bcb32a0c9c3d2667)
|
|
|
|
|
|
|
| |
It requires libavfilter now, just like many other filters. Not sure if
it even makes sense to keep this wrapper.
(cherry picked from commit 73d23a94059e40fd1209912d9365a2fb910eb8b1)
|
|
|
|
|
|
| |
af_rubberband exposed this issue.
(cherry picked from commit d85aa35ffbd978c7ae86bf84ebf9ac7686312e8f)
|
| |
|
|
|
|
| |
Oops.
|
|
|
|
|
| |
It reallocated the pool on every request, making the pool completely
useless. Oops.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Pointed out in #935 (again).
|
| |
|
|
|
|
| |
Requested in #935.
|
|
|
|
| |
Whatever.
|
|
|
|
| |
No change in behavior.
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit a33b46194c3525cb585cc78b449ec275dbfd7f83.
It turns out FFmpeg really considers this a bug, and fixed it by making
the decoder output the correct pixel format.
Fixes #1565. Reverts the fix #1528, though it should work fine with
a recent git master FFmpeg.
|
|
|
|
|
|
|
|
| |
The intention is that we can test vo_opengl with high bit depth PNGs
better. This throws libswscale completely out of the loop, which before
was needed in order to convert from big endian to little endian.
Also apply a minimal cleanup to fmt-conversion.c (unrelated).
|
|
|
|
|
|
|
|
| |
Most things stopped using this field for better support of growing
files. Go through the trouble to repalce the remaining uses, so it can
be removed.
Also move the "streaming" field; saves 4 bytes (wow!).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix return types and return values to make them more consistent. Some
reformatting and making code more concise.
In stream_reconnect(), avoid the additional mp_cancel_test() call by
moving the "connection lost" message below the mp_cancel_wait() call,
which effectively leads to the same behavior when the stream was already
canceled. (The goal is not to show the message in this case.)
Merge stream_seek_long() into stream_seek(). It was the only caller.
Always clear the eof flag on seeks.
Reduce access to stream internals in cache.c and stream_lavf.c.
|
|
|
|
|
| |
Wait for a longer time between reconnects. Introdeuce and use
mp_cancel_wait(), so that quitting is still immediate.
|
|
|
|
|
|
| |
The API function used is FFmpeg-only.
Sigh...
|
|
|
|
|
|
| |
Not quite sure if this actually works as intended.
Fixes #1566.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make it accept "," as separator, instead of only ":". Do this by using
the key-value-list parser. Before this, the option was stored as a
string, with the option parser verifying that the option value as
correct. Now it's stored pre-parsed, although the log levels still
require separate verification and parsing-on-use to some degree (which
is why the msg-level option type doesn't go away).
Because the internal type changes, the client API "native" type also
changes. This could be prevented with some more effort, but I don't
think it's worth it - if MPV_FORMAT_STRING is used, it still works the
same, just with a different separator on read accesses.
|
|
|
|
|
|
|
|
| |
Before this, unquoted occurrences of ":" lead to parsing errors. There's
no reason to reject it, especially since the traditional MPlayer syntax
uses ":" as separator. (Which is also the reason why ":" was rejected
before: the parser shares this code for handling splitting/quoting, and
we merely checked explicitly whether the option was split on ",".)
|