summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.24.0v0.24.0Martin Herkt2017-02-122-1/+122
|
* Merge branch 'master' into release/currentMartin Herkt2017-02-12172-2347/+5105
|\
| * win32: update the fullscreen state on restoringpavelxdd2017-02-121-1/+22
| | | | | | | | | | If a maximized window restored from fullscreen, the fullscreen state needs to be updated manually.
| * DOCS/contribute.md: adjust coding style for if/else bracingwm42017-02-111-6/+4
| |
| * vo_opengl: angle: log the device/surface implementationJames Ross-Gowan2017-02-121-13/+27
| | | | | | | | | | This should be useful for debugging, since otherwise it's hard to tell which implementation has been auto-detected or if any failed to init.
| * ytdl_hook: support livestream segmented DASH VODsRicardo Constantino2017-02-101-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | Seen with a VOD of a recently ended livestream on Youtube. They seem to use segmented DASH but unlike normal Youtube segmented DASH, the segments don't seem to need the initialization segment. The video actually fails to start to play if the init segment is prepended with a lot of 'Found duplicated MOOV Atom. Skipped it' errors popping up.
| * DOCS/mplayer-changes.rst: fix syntaxwm42017-02-101-1/+4
| | | | | | | | | | | | | | The missing newline made the github rst renderer (which is a POS) hide the entire section. Also, add some more warning text.
| * dvb: move priv allocation to dvb_openThomas V2017-02-101-1/+1
| | | | | | | | | | | | | | This fixes a crash when changing channels; previously stream->priv would not be initialized when dvb_get_state reused the existing state. Signed-off-by: Thomas VanSelus <tvanselus@diospyros.us>
| * lavfi: cosmetics: more consistent variable namingwm42017-02-091-3/+3
| |
| * ao_oss: fix mixer channel messageKevin Mitchell2017-02-081-1/+1
| |
| * ao_oss: use --audio-device if --oss-device isn't set.Kevin Mitchell2017-02-081-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fall back on PATH_DEV_DSP if nothing is set. This mirrors the behaviour of --audio-device / --alsa-device. There doesn't appear to be a general way to list devices with oss, so --audio-device=help doesn't list oss devices except for the default one if the file exists. Previously --audio-device was ignored entirely by ao_oss. fixes #4122
| * lavfi: slightly better disconnected output handlingwm42017-02-081-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have a disconnected output, read data only passively (and don't cause input to be written). Otherwise, we're in danger of making libavfilter queue too many frames on other outputs which are connected to the same input, but don't read as quickly. Also don't set pad->output_needed in this specific case, because it would nonsensically make lavfi_process() return true, even if nothing is going on. This commit breaks if there is a simple filter chain with a connected input, but a disconnected output, like --lavfi-complex='[aid1] copy [ao]' and the audio output didn't initialize correctly. This will eventually starve video as the audio packet queue get full (it will print a warning, and then assume video EOF and exit). But whatever. Probably fixes #4118.
| * Use AV_INPUT_BUFFER_PADDING_SIZE instead of deprecated onewang-bin2017-02-083-4/+4
| | | | | | | | Signed-off-by: wm4 <wm4@nowhere>
| * manpage: fix incorrect option name for --record-filewm42017-02-082-2/+2
| | | | | | | | | | | | Also the one in interface-changes.rst. Fixes #4121.
| * mp_image_tool: guard hw downloading against allocation failureswm42017-02-071-1/+1
| | | | | | | | Small oversight, matters for OOM errors.
| * player: add experimental stream recording featurewm42017-02-0717-5/+597
| | | | | | | | | | This is basically a WIP, but it can't remain in a branch forever. A warning is print when using it as it's still a bit "shaky".
| * vo_opengl: egl_helpers: fix for non-WindowsJames Ross-Gowan2017-02-081-1/+1
| | | | | | | | Whoops. Fixes #4119
| * vo_opengl: angle: rewrite with custom swap chainJames Ross-Gowan2017-02-077-240/+724
| | | | | | | | | | | | | | | | | | | | | | | | | | This replaces the old backend that exclusively used EGL windowing with one that can also use ANGLE's ability to render to directly to a texture. The advantage of this is that it allows mpv to create the swap chain itself and this allows mpv to use a flip-mode swap chain on a HWND (which avoids problems with DirectComposition) and to use a longer swap chain that has six backbuffers by default (which reportedly fixes problems with rendering 24fps video on 24Hz monitors.) Also, "screenshot window" should now work on DXGI 1.2 and up (Windows 8 and up.)
| * ytdl_hook: reenable support for length-less segments in EDLRicardo Constantino2017-02-061-12/+28
| | | | | | | | They're unsupported only in MP4 DASH mode.
| * manpage: Reorganise discussion of cuda hwdec to be less confusingPhilip Langdale2017-02-061-12/+8
| | | | | | | | | | The existing discussion has managed to convince people they should use cuda-copy instead of cuda, which just isn't right.
| * DOCS/edl-mpv.rst: fix typowm42017-02-051-1/+1
| |
| * ytdl_hook: fix EDL syntaxwm42017-02-051-1/+1
| | | | | | | | | | All entries must be separated by ";" or "\n". The parser just doesn't enforce it if an entry uses quoting.
| * demux_edl: fix behavior with no init segment providedwm42017-02-051-0/+6
| | | | | | | | Not that we use it...
| * tv: Zero-out newly-allocated handle in tv_new_handle()Frédéric Brière2017-02-051-4/+1
| | | | | | | | | | | | | | Some fields (notably tv_channel_list) were left uninitialized, potentially causing problems later on. Fixes #4096
| * demux_timeline: more silencingwm42017-02-041-1/+1
| |
| * demux: try not to read packets when cancelledwm42017-02-041-1/+3
| | | | | | | | | | | | Essentially, this will make it abort sooner. Especially with DASH it might avoid confusing error messages, although exact behavior depends on timing.
| * ytdl_hook: Add non-dash fallbacks to default formatsRicardo Constantino2017-02-041-3/+3
| |
| * ytdl_hook, edl: implement pseudo-DASH supportwm42017-02-048-70/+276
| | | | | | | | | | | | | | | | | | We use the metadata provided by youtube-dl to sort-of implement fragmented DASH streaming. This is all a bit hacky, but hopefully a makeshift solution until libavformat has proper mechanisms. (Although in danger of being one of those temporary hacks that become permanent.)
| * demux_timeline: move code aroundwm42017-02-041-41/+41
| | | | | | | | Cosmetic preparation for later changes.
| * ytdl: support segmented dashRicardo Constantino2017-02-041-12/+16
| |
| * sub: remove .txt as text subtitle extensionwm42017-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If used with fuzzy matching, the player tends to pick up random text files, sometimes with interesting results. The most interesting interaction is when the user uses --log-file=something.txt, and mpv tries to open its own log file. It essentially "freezes" during probing, because every time it reads from it, it will write some more data, which in turn will cause more data to be read - until the 2MB max. probing size is slowly reached. This is not even an obscure corner case, but happened to multiple users. The .txt extension has been considered a subtitle extension ever since the code was added to MPlayer's subreader.c, but I'm not seeing many actual subtitle files with this extension, so just get rid of it.
| * manpage: state that hwdec d3d11va requires Windows 8+S2F0amEgS2xvdmVy2017-02-031-2/+2
| | | | | | As the manual entry for --hwdec states that d3d11va and d3d11va-copy require Windows, it can be assumed that it also works for Windows 7. Since it doesn't, according to https://github.com/mpv-player/mpv/issues/3285#issuecomment-228593539, and personal testing, updating the manual accordingly and making the hwdec OS requirements for ANGLE in line with videotoolbox, where OS version is stated.
| * player: different way to auto-enable the demuxer cachewm42017-02-025-11/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of enabling it only when a stream-cache is enabled, also try to enable it independently from that if the demuxer is marked as is_network. Also add some code to the EDL code, so EDLs containing network streams are automatically cached this way. Extend the OSD info line so that it shows the demuxer cache in this case (more or less). I didn't find where or whether options.rst describes how the demuxer cache is enabled, so no changes there.
| * stream: get rid of streamtype enumwm42017-02-0219-50/+47
| | | | | | | | | | | | | | | | | | Because it's kind of dumb. (But not sure if it was worth the trouble.) For stream_file.c, we add new explicit fields. The rest are rather special uses and can be killed by comparing the stream impl. name. The changes to DVD/BD/CD/TV are entirely untested.
| * stream: better method signal caching, rename weird uncached_stream fieldwm42017-02-023-10/+11
| | | | | | | | | | | | | | | | "uncached_stream" is a pretty bad name. It could be mistaken for a boolean, and then its meaning would be inverted. Rename it. Also add a "caching" field, which signals that the stream is a cache or reads from a cache. This is easier to understand and more flexible.
| * cocoa: fix color profile retrievalAkemi2017-02-021-0/+1
| | | | | | | | | | | | | | | | when the color profile was changed it used the right NSScreen but with the old colorSpace. this was optimised out by a previous commit because of a wrong assumption. we need to update the screen so we can get the new colorSpace. this adds a bit of redundancy since on screen change it will update screen pointer twice.
| * cocoa: fix dropping of files and URLsAkemi2017-02-021-14/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the problem here is that dropped files can also be treated as NSURLPboardType instead of just NSFilenamesPboardType. the 'else if' could never be reached and was dead code. this basically reverts ed695ce which tried to fix multiple dropped URLs, or rather files, and moves the filename check infront of the URL check. the filename path can handle multiple dropped files, whereas the URL path can only handle one dropped URL. this assumes that only one URL can be dropped at a time. it also reverts a603543 because it's not needed any more. this also fixes a problem where dropped URLs from Chrome don't conform to the NSURL class and the readObjectsForClasses method always returned an empty URL. Fixes #4036
| * cocoa: optimise screen event handlingAkemi2017-02-022-9/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this optimises two things and fix a minor bug. 1. we always updated the display refresh rate on any mode change whether it was the current screen or not. now we only update the refresh rate when the mode changed happened on the current screen. 2. the windowDidChangeScreen event doesn't exclusively trigger on screen changes so we updated the display refresh rate in cases where it wasn't needed at all. since we manually keep track of the current screen, we can easily test if the screen really changed. 3. weirdly on initWithContentRect accessing the screen of the window always returned the main screen instead of the screen the window is created on. since we already use the window init method with the screen as argument, overwrite that method instead and use the screen argument.
| * cocoa: fix displaylink refresh rate retrievalAkemi2017-02-021-23/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we are dealing with several problems here, which weren't apparent because we always initialised a new displaylink for the display refresh rate retrieval, previously to commit 449eb20 and bug 9490b62. just changing the display with CVDisplayLinkSetCurrentCGDisplay can cause inconsistent refresh rates and discontinuity in timestamps. this can either lead to bogus values for the Actual display refresh rate or retrieving the refresh rate of the previous display if we immediately try to get a new value. since the Actual refresh rate is computed i assume that it at least needs one refresh period to actual return something useful. furthermore when changing the screen and updating the displaylink, it seems that the retrieved refresh rates for the screen mpv wasn't opened on are being estimated in a sub-optimal way. as an example, when moving my window to my second screen the Actual refresh rate was always a constant 60Hz, even though it is supposed to fluctuate a little bit. though if mpv was started on the secondary screen the Actual refresh rate fluctuated around 59.94Hz like expected. in that case my primary screen always reported a constant 60Hz instead. for the first problem we moved the actual retrieval of the refresh rate to the very last moment when mpv actual requests a new value and not when the refresh rate changed. we only update the displaylink itself when a possible refresh rate change is detected. this gives the displaylink some time to calculate the new refresh rate. for the second problem, instead of setting the new display we completely uninitialise the old dislaylink and create a new one for the new screen. this gives us properly estimated refresh rates. additionally we also optimised the display refresh rate fallback heuristic. it will never be 0 anymore and we prevent it from returning bogus values with a simple threshold for the difference of the Actual and Nominal refresh rate.
| * osx: consistent normalisation when searching for external filesAkemi2017-02-023-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | several unicode characters can be encoded in two different ways, either in a precomposed (NFC) or decomposed (NFD) representation. everywhere besides on macOS, specifically HFS+, precomposed strings are being used. furthermore on macOS we can get either precomposed or decomposed strings, for example when not HFS+ formatted volumes are used. that can be the case for network mounted devices (SMB, NFS) or optical/removable devices (UDF). this can lead to an inequality of actual equal strings, which can happen when comparing strings from different sources, like the command line or filesystem. this makes it mainly a problem on macOS systems. one case that can potential break is the sub-auto option. to prevent that we convert the search string as well as the string we search in to the same normalised representation, specifically we use the decomposed form which is used anywhere else. this could potentially be a problem on other platforms too, though the potential of occurring is very minor. for those platforms we don't convert anything and just fallback to the input. Fixes #4016
| * hw_dxva2: create a IDirect3D9Ex devicewm42017-02-021-18/+27
| | | | | | | | | | | | | | | | | | | | | | This should allow us to create the device in situations when Direct3DCreate9 normally fails, for example if no user is logged in. While the later use-case is not very interesting, I hope it to work in some other situations as well, for example while certain drivers are in exclusive full screen mode. This is available since Windows 7, so I'm removing the old call completely.
| * tvi_dummy: don't return bad dummy PTSwm42017-02-021-2/+3
| | | | | | | | This makes the player spam timestamp warnings. Return NOPTS instead.
| * demux_tv: free the correct field instead of creating dangling pointerwm42017-02-021-1/+1
| | | | | | | | | | | | This could potentially have caused fun crashes if the --tv-channels option was used, and something more advanced than tv:// was used to open it. (This code is still untested.)
| * sub: add justify of subtitlesDan Oscarsson2017-02-018-0/+26
| | | | | | | | | | | | | | | | To make it easier for the eyes, multi line subtitles should be left justified (for most languages). This adds an option to define how subtitles are to be justified inpendently of how they are aligned. Also add option to enable --sub-justify to be applied on ASS subtitles.
| * osc: allow playlist buttons when loopingRicardo Constantino2017-02-011-2/+3
| | | | | | | | Closes #4092
| * TOOLS/matroska.py: use python3wm42017-02-011-1/+1
| | | | | | | | | | "python" usually maps to Python 2, while all Python 3 installations provide "python3". And the script requires Python 3.
| * osc: box: clip with ellipsis after too much stretchingRicardo Constantino2017-01-311-2/+9
| |
| * osc: bottom/topbar: clip title instead of stretchingRicardo Constantino2017-01-311-4/+6
| |
| * player: add .scc subtitle extensionwm42017-01-311-1/+2
| | | | | | | | | | | | | | | | | | Requested. Supposedly "scenarist closed captions". (The list of getting quite full. But it's probably still better than trying to probe the files by contents, because the external subtitle loader code will initially look at _all_ files in the same directory as the main file.)
| * demux_mkv: passthrough BlockAdditions for libvpx alphawm42017-01-314