summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vo_opengl: slightly improve ewa_lanczos windowingNiklas Haas2015-02-251-33/+4
| | | | | | | | | | | | | The original filter window was design for a radius based on the true zero, but we always cut it off at our selection of radius either way (by necessity, due to the square matrix we sample from). This window is tweaked from the original (true radius) to our actual cut-off radius, and hence improves the result in a few edge cases. The main win is the reduction of code complexity, since we no longer need to know what the true radius actually is. (cherry picked from commit 1ecd9727f0e3df68c6be9955b759547a34a0b79f)
* player: fix demuxer lifetime managementwm42015-02-242-54/+43
| | | | | | | | | | | | | Commit f54220d9 attempted to improve this, but it got worse. Now there was a crash when ytdl_hook.lua added external tracks. This happened because close_unused_demuxers() assumed that sources[0] was the main demuxer (so that it didn't close it). This assumption failed, because the ytdl script can add external tracks before the main file is loaded. The easy fix would have been to check for master_demuxer, and not i==0. But instead give up on the old idea, make some stricter assumptions how demuxers and external tracks map, and simplify the code. (cherry picked from commit 53867aa9d834fd6a6314803655bd4c444d0e1df4)
* build: print pkg-config query on failureStefano Pigozzi2015-02-241-0/+2
| | | | (cherry picked from commit 0466ce2f98ef1cdba264c016daa1061e797e1b91)
* manpage: ipc: add a socat examplewm42015-02-241-3/+33
| | | | | | Requested, and should be quite good at giving an overview how it works. (cherry picked from commit af435e0a027df4b2135488d76ee8b488a0474dfa)
* video: un-discourage "vaapi-copy" hwdec modewm42015-02-212-6/+2
| | | | | | | Maybe I don't know what I'm doing. I'm fairly certain though that Intel does not know what they're doing. (cherry picked from commit d71bbcbc98c1fa8a934ee656b13adda089a11681)
* player: move timeline scanning (ordered chapters etc.) to a threadwm42015-02-211-7/+15
| | | | | | | | | | | | | | Do timeline building (scanning & opening reference files for ordered chapters, and more) in a thread. As a result, this process can actually be stopped without having to kill the player. This is pretty simple: just reuse the demuxer opening thread. We have to give up on the idea that open_demux_reentrant() is reusable, though. (Althoughthe timeline readers still need some fixes before they react to the quit request.) (cherry picked from commit 44411674ebb764adeb806040d24700bc4cc493cc)
* player: cosmetics: async/non-blocking -> reentrantwm42015-02-213-13/+13
| | | | | | | | These functions do blocking work on a separate thread, but wait until they return. So they are not async or non-blocking. But they do react to user-input and client API accesses, which makes them reentrant. (cherry picked from commit 2c305d5b2990d31911d7faa4c9117bf4eb89c88b)
* stream_file: open pipes non-blockingwm42015-02-211-4/+33
| | | | | | | Now the player can actually be quit if a pipe was opened, but nobody is writing to it. (cherry picked from commit 3c9344a1a9de335925b81058b7699fccd187626b)
* vo_opengl: minor robustness improvement in function loaderwm42015-02-211-2/+5
| | | | | | | | Check the scanf() return value, and don't continue if it doesn't find both numbers (can happen with GLES 1.0). Also, some implementations can return NULL from glGetString() if something is "broken". (cherry picked from commit 9861abf8ffa4c9e7c4ad9a4f3f667e6f833624a3)
* vo_opengl: fix smoothmotion coefficient calculation, for real this timeNiklas Haas2015-02-211-24/+31
| | | | | | | | I've reworked pretty much all the logic to correspond to what the theory actually describes. With this commit, playback is wonderfully smooth on my machine. (cherry picked from commit 4356e893a138e24f2d54dee2b96d2720e69d4c18)
* demux_lavf: apply hacks even if format is forcedwm42015-02-211-27/+28
| | | | | | | | | | | | | | | Some of the hacks were not applied if the file format was forced. Commit 37a0c914 moved them to a table, which is checked with normal probing only. Fixes #1612 (DVD forces mpeg, which in turn has to export native stream IDs specifically). Do some code restructuring on the way. For example, the probescore can simply be set to the correct initial value, instead of checking whether it was set at all. (cherry picked from commit 611f9ab0a8f8820056d8f7f77dbe8a8794291873)
* manpage: fix vf_scale arnd parameterwm42015-02-211-2/+2
| | | | | | | | | It probably was always a flag, so the documentation became invalid as soon as mpv stopped accepting 0/1 for flags. Fixes #1608. (cherry picked from commit b230f32624b0ec979f848183e0aec88d1fd2d024)
* build: fix Python 3 unicode issue with waf 1.8.6wm42015-02-191-1/+7
| | | | | | | | | | | | | | | Starting with waf 1.8.6 (in Python 3), the hcode variable isn't a string, but a byte string. This commit adds the solution proposed in the upstream waf bug report: https://code.google.com/p/waf/issues/detail?id=1535 It seems a bit overly verbose, but on the other hand, this solution has the chance of being most correct/compatible. Fixes #1604. (cherry picked from commit 14b231119d2c125bcdcba48d159a78097152e387)
* Update RELEASE_NOTESDiogo Franco (Kovensky)2015-02-191-1/+24
|
* demux_lavf: blacklist bintext fileswm42015-02-191-0/+3
| | | | | | | | Whatever the hell that is. FFmpeg tries to open any files with .bin file extension with this demuxer (unless it finds a better demuxer), and then reads the whole damn file, along with spamming dumb crap. (cherry picked from commit 79006ef66d10fb356782eed6d3b3cc103ae2ba4b)
* cache: silence "EOF reached" messagewm42015-02-191-1/+1
| | | | | | | | | | | | | | | This message will be printed relatively often once EOF is reached. In some cases this is rather annoying, for example when playing HLS. (With HLS, the stream is just a playlist file, while libavformat opens actual media files without mpv's knowledge, so the cache is completely useless and hits EOF instantly.) That it retries reading is apparently a good thing: at least local files can grow, and even after the player got the EOF, playback _could_ be resumed by basically polling and detecting that there is more data. So I'm not changing this behavior yet. (cherry picked from commit 3f5b5b758dac511f500fdfd9ae85089cbfc31fde)
* demux_lavf: reorganize hackswm42015-02-191-67/+70
| | | | | | | | | | | | | An attempt to make format-specifics more declarative. (In my opinion, all of this should be either provided by libavformat, or should not be needed.) I'm still leaving many checks with matches_avinputformat_name(), because they're so specific. Also useful for the following commit. (cherry picked from commit 37a0c9140ad85be8d184b626759f8d24ca69aa83)
* demux_lavf: set interrupt_callbackwm42015-02-191-0/+11
| | | | | | | | Helps with terminating the stream if e.g. HLS streams are stuck. (For other demuxers, the stream's interrupt callback already takes care of this.) (cherry picked from commit ff992e093b93fd8dd0eecd2c592f8608870f0bbe)
* find_subfiles: Add 'vtt' to subtitle extensionsJaime Marquínez Ferrándiz2015-02-191-1/+1
| | | | (cherry picked from commit aa9804987788a0cc239403d13698cc685146122c)
* demux, matroska: remove demuxer type fieldwm42015-02-194-39/+29
| | | | | | | | | | | | | | | The Matroska timeline code was the only thing which still used the demuxer.type field. This field explicitly identifies a demuxer implementation. The purpose of the Matroska timeline code was to reject files that are not Matroska. But it already forces the Matroska format, meaning loading will explicitly only use the Matroska demuxer. If the demuxer can't open the file, no other demuxer will be tried, and thus checking the field is redundant. The change in demux_mkv_timeline.c removes the if condition, and unindents the if body. (cherry picked from commit fa9b587426d7bd350d92afdb440c396336b2ecfd)
* demux: remove file_contents fieldwm42015-02-194-11/+25
| | | | | | | | | Only demux_cue and demux_edl used it. It's a weird field and doesn't help with anything anymore - by now, it only saves a priv context in the mentioned demuxers. Reducing the number of confusing things the demuxer struct has is more important than minimizing the code. (cherry picked from commit 082371a1603eaaa6c5c9f4bd57f9e77ff027ee15)
* demux_edl: make independent from MPContextwm42015-02-194-48/+36
| | | | (cherry picked from commit d7a4cb14ff8dc61d87cec54abcd7f7623e8cc666)
* demux_edl: move implementationwm42015-02-194-306/+280
| | | | | | Same deal as with demux_cue, and a separate commit for the same reasons. (cherry picked from commit 1e44c811f3683f62714ff5ecc2e4f233eb8bb668)
* demux_cue: make independent from MPContextwm42015-02-194-40/+36
| | | | | | Also see previous commit(s). (cherry picked from commit 10781c2a9c175a8f9e445df4a91031301f225351)
* demux_cue: move implementationwm42015-02-194-421/+388
| | | | | | | | | | Move the implementation, of which most was in tl_cue.c, to demux_cue.c. Currently, this is illogical, because tl_cue.c still accesses MPContext. This is going to change, and then it will be better if everything is in demux_cue.c. This is only a separate commit to distinguish code movement and actual work; the next commit will do the actual work. (cherry picked from commit 7f03f46882ec4e9eb9d9857cf5cc393bb3afa7ca)
* demux: copy priv pointer toowm42015-02-191-0/+1
| | | | | | | Weird, but helps with the case a demuxer gets handed its own instance from outside. (cherry picked from commit f9872ab26fad62766f62be112436482ef3e7e07b)
* matroska: move timeline code to demux/wm42015-02-193-2/+2
| | | | | | | Separate from previous commit, because git is bad at tracking file renames when the file contents are also changed. (cherry picked from commit edc0007e74ab4ad043f35eed8cdebd9ed73c8062)
* matroska: make timeline code independent of MPContextwm42015-02-195-115/+122
| | | | (cherry picked from commit 5a186d5942bda0c7cae56bc524a6dceccb5c7d3f)
* player: use a separate context for timeline loader stuffwm42015-02-197-22/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* demux: chapters without metadata are allowedwm42015-02-191-2/+3
| | | | | | Makes some of the following commits slightly simpler. Also fix a typo. (cherry picked from commit 3efeee446e50c0cd4674137a680e6d3660c74a22)
* player: use a macro to remove an element from an arraywm42015-02-191-6/+1
| | | | | | Should be equivalent. (cherry picked from commit 969edb9e0b86500ed0af9c26209ad7000adb5157)
* player: actually close files when using sub_removewm42015-02-191-13/+38
| | | | | | | | | | | 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)
* DOCS/client-api-changes: mark 0.8.0 releasewm42015-02-191-2/+3
| | | | | | | (There was a missing version bump for the msg-level change; just move it under 1.14.) (cherry picked from commit 0283815ee15dff0fbe23da8b26a9d50dfbf26f42)
* demux_lavf: hack against hls showing "100%" positionwm42015-02-191-0/+6
| | | | | | | | | | | | | | | 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)
* etc/input.conf: remove a leftoverwm42015-02-191-2/+0
| | | | | | This is already mapped by default. (cherry picked from commit 8b784fb1ca7b908f76d8a389419149feef811c5f)
* vo_opengl: glsl: remove trailing \wm42015-02-191-2/+2
| | | | | | | This should be no problem... but it _might_ help with #1536, so it's worth a try. (cherry picked from commit 0063d94927a0dfd1ba8f4af1bc59467ba793ef82)
* m_config: log options set by the client API toowm42015-02-191-0/+7
| | | | (cherry picked from commit d34eabe286c46811f0fb1188c789572a57df2b5d)
* Release v0.8.0v0.8.0Diogo Franco (Kovensky)2015-02-171-1/+1
|
* Fix typo in RELEASE_NOTESDiogo Franco (Kovensky)2015-02-171-1/+1
|
* Fix typo on RELEASE_NOTESDiogo Franco (Kovensky)2015-02-161-1/+1
|
* mpv.desktop: Add zh-TW and zh-CN translationsSkyrainfit2015-02-161-1/+6
| | | | (cherry picked from commit 31ac0574ad910ee9256ad5d5b89c7a7d3b88761f)
* Bump VERSION to v0.8.0_rc3Diogo Franco (Kovensky)2015-02-161-1/+1
|
* Update RELEASE_NOTESDiogo Franco (Kovensky)2015-02-161-1/+12
|
* osxbundle: config file special case isn't needed anymorewm42015-02-162-6/+0
| | | | | | | | 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)
* player: undeprecate 'config' fileswm42015-02-163-29/+16
| | | | | | | | | 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)
* vd_lavc: uninit the hwdec backend after closing the decoderwm42015-02-161-6/+3
| | | | | | | | | | | | | | | | | | | 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)
* x11: fix uninitialized variable readswm42015-02-161-1/+1
| | | | | | This line of code ended up in the wrong block in commit cd6dfcbe. (cherry picked from commit f247294d7346306ef9f42a986d693df4743f9152)
* client API: clarify filename string encodingwm42015-02-161-0/+24
| | | | | | | | | 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)
* cocoa: remove unused functionStefano Pigozzi2015-02-161-7/+0
| | | | (cherry picked from commit bf46f4c99714d2df105c3c004aa96680b4dda749)
* x11: add XK_Cancel to the list of special keysMartin Herkt2015-02-163-0/+3
| | | | | | | Some IR receivers emit this key by default for remote control buttons. Make it mappable. (cherry picked from commit 9aaec7cffb2fb1543d4c3cabb55165f606c0b87d)
* Fix build on OSX broken by previous commitwm42015-02-161-1/+1
| | | | | | Hopefully. (cherry picked from commit 5247416735e86417d466f0137cf907b5921602a1)
* vf_vapoursynth: add display refresh rate propertyJulian2015-02-164-0/+7
| | | | | | | This value is not necessarily trustworthy (it might change) and can be 0. (cherry picked from commit 349067a6ab2d03024b3e984e80314f303dd14432)
* x11: return a framerate even if no window is mappedwm42015-02-161-8/+11
| | | | | | | 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)
* player: deprecate 'config' files (use mpv.conf), warn against clasheswm42015-02-162-5/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* command: mark get_property as deprecatedwm42015-02-162-3/+6
| | | | | | | 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)
* x11: make all XF86 special keys mappablewm42015-02-162-1/+13
| | | | | | | | | | 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)
* ipc: put playback core to sleep while dequeuing commandswm42015-02-161-1/+7
| | | | | | | | | 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)
* vo_opengl: fix smoothmotion coefficient calculationStefano Pigozzi2015-02-163-7/+5
| | | | | | | Using prev_pts as the start of the scale was plain wrong. Change it to prev_vsync. (cherry picked from commit 3931544ef33196e1966c416cc0d60d4160cf27fb)
* cocoa: fix exiting the command line playerwm42015-02-161-4/+3
| | | | | | | | | | 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)
* encoding: fixed-vo option was removedwm42015-02-161