summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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-1/+0
| | | | (cherry picked from commit 96547a810e87d06121704ed67e3cf44430752c67)
* player: add a --loop=force modewm42015-02-164-13/+17
| | | | | | | | | 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)
* osx: move code to unset input context to the right placewm42015-02-161-4/+4
| | | | | | | | | 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)
* osx: move cocoa specific call out of common codewm42015-02-162-8/+2
| | | | This is almost equivalent, and gets rid of the ifdef.
* player: drop explicit exit() callswm42015-02-162-16/+11
| | | | | | | | | | | 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)
* ao: set correct client name when listing deviceswm42015-02-161-4/+3
| | | | | | | | | | | | 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)
* Update RELEASE_NOTES formattingDiogo Franco (Kovensky)2015-02-131-28/+26
|
* Merge remote-tracking branch 'Cpuroast/release/0.8' into release/0.8Diogo Franco (Kovensky)2015-02-131-3/+4
|\ | | | | | | | | * Cpuroast/release/0.8: A few tweaks to the 0.80_rc2 release notes
| * A few tweaks to the 0.80_rc2 release notesCpuroast2015-02-121-3/+4
|/ | | | | scale-radius=3 is the default, so use 2 as an example Point out that ewa_lanczos (Jinc) is actually new.
* Revert "player: make --force-window create the window immediately on start"wm42015-02-121-1/+0
| | | | | | | | | | | | | 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)
* Bump version to v0.8.0_rc2Diogo Franco (Kovensky)2015-02-121-1/+1
|
* Update RELEASE_NOTESDiogo Franco (Kovensky)2015-02-121-19/+26
|
* video/filters: simplify libavfilter bridgewm42015-02-1213-71/+61
| | | | | | | | | | | | 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)
* vf_noise: remove internal implementationwm42015-02-122-243/+8
| | | | | | | 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: account for queued frames in audio position calculationwm42015-02-121-0/+2
| | | | | | af_rubberband exposed this issue. (cherry picked from commit d85aa35ffbd978c7ae86bf84ebf9ac7686312e8f)
* Bump version to -rc1Diogo Franco (Kovensky)2015-02-121-1/+1
|
* dvb_tune: fix invalid syntaxwm42015-02-111-1/+1
| | | | Oops.
* audio: fix pool allocationwm42015-02-111-1/+2
| | | | | It reallocated the pool on every request, making the pool completely useless. Oops.
* Add preliminary RELEASE_NOTESDiogo Franco (Kovensky)2015-02-111-0/+148
|
* manpage: fix af_scaletempo suggested commandswm42015-02-111-3/+3
|
* Branch release/0.8, add -beta VERSIONDiogo Franco (Kovensky)2015-02-101-0/+1
|
* manpage: ipc: suggest --idlewm42015-02-091-1/+2
|
* win32: fix/change application namewm42015-02-092-3/+3
| | | | Pointed out in #935 (again).
* README: mention some more depswm42015-02-091-0/+2
|
* README: movie -> mediawm42015-02-081-1/+1
| | | | Requested in #935.
* vo: minor simplificationwm42015-02-071-13/+8
| | | | Whatever.
* vo_vdpau: minor simplificationwm42015-02-071-4/+1
| | | | No change in behavior.
* Revert "vo_opengl: disable alpha by default"wm42015-02-062-3/+3
| | | | | | | | | | 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.
* video: work around libswscale for PNG pixel formatswm42015-02-064-5/+45
| | | | | | | | 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).
* stream: get rid of remaining uses of the end_pos fieldwm42015-02-067-26/+25
| | | | | | | | 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!).
* stream: minor cleanupswm42015-02-064-88/+64
| | | | | | | | | | | | | | | | 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.
* stream: slightly improve reconnect behaviorwm42015-02-062-18/+29
| | | | | Wait for a longer time between reconnects. Introdeuce and use mp_cancel_wait(), so that quitting is still immediate.
* stream_lavf: fix build with Libavwm42015-02-061-2/+5
| | | | | | The API function used is FFmpeg-only. Sigh...
* options: add --network-timeoutwm42015-02-064-0/+11
| | | | | | Not quite sure if this actually works as intended. Fixes #1566.
* options: change --msg-level optionwm42015-02-067-93/+89
| | | | | | | | | | | | | | 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.
* options: allow ":" as separator in key-value listswm42015-02-061-1/+1
| | | | | | | | 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 ",".)
* tl_matroska: only check the chapter count when adding chaptersBen Boeckel2015-02-061-3/+3