summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.21.0v0.21.0Martin Herkt2016-10-192-2/+168
|
* Merge branch 'master' into release/currentMartin Herkt2016-10-19223-5243/+9098
|\
| * demux_lavf: don't accidentally enable edit list crap on Libavwm42016-10-181-1/+2
| | | | | | | | You really don't get a break from all the multiple bullshit.
| * demux_lavf: "support" mov edit lists and log errors if usedwm42016-10-182-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FFmpeg recently got "support" for mov edit lists. This is a terrible hack that will fail completely at least with some decoders (in particular wrappers for hardware decoding might be affected). As such it makes no point to pretend they are supported, even if we assume that the "intended" functionality works, that there are no implementation bugs (good luck with all that messy code added to the already huge mov demuxer), and that it covers enough of the mov edit list feature to be of value. So log an error if the FFmpeg code for mov edit lists appears to be active - AV_PKT_FLAG_DISCARD is used only for "clipping" edit list segments on non-key frame boundaries. In the first place, FFmpeg committed this only because Google wanted it in, and patch review did not even pick up obvious issues. (Just look how there was no lavc version bump when AV_PKT_FLAG_DISCARD was added.) We still pass the new packet flag to the decoders (av_common.c change), which means we "support" FFmpeg's edit list code now. (Until it breaks due to FFmpeg not caring about all the details.)
| * osc: use the same characters as track list for playlist/chapterRicardo Constantino2016-10-171-10/+4
| | | | | | | | | | | | | | | | | | Had only tested with luajit which supports the \xHH syntax added in Lua 5.2. The arrow is troublesome to use since the ideal way to use it, as the OSD code uses it, needs \alpha&H00<arrow>\r to work, which does not in OSC's way of showing messages.
| * ISSUE_TEMPLATE: minor grammar updateBen Boeckel2016-10-171-2/+2
| |
| * stream_bluray: check title index/playlist rangeschnusch2016-10-171-6/+20
| | | | | | | | | | Blu-ray title index/playlist must be in the range 0-99999, otherwise an error will be returned
| * stream_bluray: select title by playlistschnusch2016-10-171-18/+34
| | | | | | | | | | Blu-ray titles can now be selected by playlist number like this: bd://mpls/[playlist]
| * ad_lavc, vd_lavc: fix a recent libavcodec deprecation warningwm42016-10-173-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Both AVFrame.pts and AVFrame.pkt_pts have existed for a long time. Until now, decoders always returned the pts via the pkt_pts field, while the pts field was used for encoding and libavfilter only. Recently, pkt_pts was deprecated, and pts was switched to always carry the pts. This means we have to be careful not to accidentally use the wrong field, depending on the libavcodec version. We have to explicitly check the version numbers. Of course the version numbers are completely idiotic, because idiotically the pkg-config and library names are the same for FFmpeg and Libav, so we have to deal with this explicitly as well.
| * man/osc: better explain the values of deadzonesizeRicardo Constantino2016-10-171-1/+3
| |
| * vd_lavc: Add hwdec wrapper for crystalhdPhilip Langdale2016-10-154-0/+15
| | | | | | | | This hardware decodes to system memory so it only requires a wrapper.
| * osc: fix chapter/playlist listing if emptyRicardo Constantino2016-10-151-1/+1
| |
| * osc: show playlist/chapter list on prev/next instead of osdRicardo Constantino2016-10-151-4/+16
| |
| * osc: fix listing of chapters and playlistRicardo Constantino2016-10-151-10/+87
| | | | | | | | | | | | | | Fixes regression since 05c398f. Add helper functions for limiting potentially huge lists of playlists and chapters and use them.
| * osc: fix display of chapters and playlist scalingRicardo Constantino2016-10-151-2/+11
| | | | | | | | Compensate \fs when using non-default scale(fullscreen|windowed).
| * osc: add user-alterable margin for top/bottombarRicardo Constantino2016-10-152-5/+10
| |
| * osc: add right-click behavior to playlist and chapter buttonsRicardo Constantino2016-10-152-0/+12
| |
| * osc: change default layout to bottombarRicardo Constantino2016-10-152-67/+43
| | | | | | | | | | | | Change a few other defaults accordingly: - seekbarstyle=bar looks better with bottombar. - Bigger scalewindowed and scalefullscreen make bottom/topbar more readable.
| * ytdl_hook: Add title to playlist items if availableRicardo Constantino2016-10-151-0/+6
| |
| * stream_file: don't use poll() on directorieswm42016-10-141-3/+5
| | | | | | | | | | | | | | | | | | | | POSIX leaves poll() behavior on directories unspecified. While on Linux, it seems to behave the same way as regular files (always return immediately), this is not guaranteed. At least with OSX 10.12, it seems to wait, which essentially means that opening directories will "hang". Fixes #3530 and #3649.
| * terminal-win: support modifier keys in console inputJames Ross-Gowan2016-10-141-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Keyboard input in the console still isn't quite as flexible as it is in the video window. Ctrl+<letter> and Ctrl+LEFT/RIGHT work, but Ctrl+Alt+<letter> and Ctrl+<number> do not. Also, in the new Windows 10 console, a bunch of Ctrl keystrokes including Ctrl+UP/DOWN are handled by the console window and not passed to the application. Unlike in w32_common.c, we can't really translate keyboaard input ourselves because the keyboard layout of the console window (in conhost.exe) doesn't necessarily match the keyboard layout of mpv's console input thread, however, using ToUnicode as a fallback when the console doesn't return a unicode value could be a possible future improvement. Fixes #3625
| * terminal-win: clean up console inputJames Ross-Gowan2016-10-141-49/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original version of this code in getch2-win.c fetched 128 console events at once. This was probably to maximize the chance of getting a key event if there were other events in the buffer, because it returned the value of the first key event it found and ignored all others. Since that code was written, it has been modified to receive console input in an event-based way using an input thread, so it is probably not necessary to fetch so many events at once any more. Also, I'm not sure what it would have done if there were more than 128 events in the console input buffer. It's possible that fetching multiple events at a time also had performance advantages, but I can't find any other programs that do this. Even libuv just fetches one console event at a time. Change read_input() to fetch only one event at a time and to consume all available events before returning to WaitForMultipleObjects. Also remove some outdated comments and pass the console handle through to the input thread instead of calling GetStdHandle multiple times (I think this is theoretically more correct because it is possible for the handles returned by GetStdHandle to be changed by other threads.)
| * ao_alsa: try to fallback to "hdmi" before "iec958" for spdifwm42016-10-071-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | If the "default" device refuses to be opened as spdif device (i.e. it errors due to the AES0 etc. parameters), we were falling back to the iec958 device. This is needed on some systems for smooth operation with PCM vs. spdif. Now change it to try "hdmi" before "iec958", which supposedly helps in other situations. Better suggestions welcome. Apparently kodi does this too, although I didn't check directly.
| * osc: move tooltip to inside seekbar for top/bottombarRicardo Constantino2016-10-072-25/+32
| | | | | | | | Tooltip border is user-alterable
| * osc: change seekbar background's alpha scalingRicardo Constantino2016-10-071-2/+4
| | | | | | | | | | | | This avoids a full transparent seekbar with only boxalpha=115. No change with default values.
| * osc: align text vertically in top/bottombarRicardo Constantino2016-10-071-32/+39
| | | | | | | | Close #2093
| * vo_drm: change CLI options + refactorsrr-2016-10-077-169/+293
| | | | | | | | | | | | | | | | | | | | - Change connector selection to accept human readable names (such as eDP-1, HDMI-A-2) rather than arbitrary numbers. - Change GPU selection to accept GPU number rather than device paths. - Merge connector and GPU selection into one --drm-connector. - Add support for --drm-connector=help. - Add support for --drm-* in EGL backend. - Refactor KMS; reduce state sharing across drm_common.
| * ytdl_hook: add chapters by parsing video's descriptionMaurycy Skier2016-10-061-0/+46
| |
| * man: fix PDF buildMartin Herkt2016-10-061-4/+0
| | | | | | | | | | It really doesn’t want to pagebreak that box, so I removed a useless example.
| * vo_drm: fix segfault when using invalid cardrr-2016-10-061-2/+2
| |
| * cocoa: add glFlush() to cocoa backendAkemi2016-10-063-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | The glFlush() call was made optional recently since it's not needed in most cases. On OSX though this is needed since we removed kCGLPFADoubleBuffer from the context creation, so the glFlush() call was added to the cocoa backend only. The CGLFlushDrawable() call can be safely removed since it only does something when a double buffered context is used. Also fixes a small typo. Fixes #3627.
| * TOOLS/stats-conv.py: use different colors for symbols toowm42016-10-061-5/+6
| | | | | | | | | | Also, not setting pen=None seems to draw horizontal lines for the dots, which is fine too.
| * vo_opengl: apply --opengl-early-flush in dumb mode toowm42016-10-052-1/+1
| | | | | | | | | | | | | | | | In "dumb mode" (where most features are disabled and which only performs some basic rendering) we explicitly copy a set of whitelisted options, and leave all the other options at their default values. Add the new --opengl-early-flush option to this whitelist. Also remove an option field accidentally added in the commit adding --opengl-early-flush.
| * options: handle --audio-device changes like the other optionswm42016-10-052-6/+3
| | | | | | | | | | | | Don't require special property code for handling updates, and simply use the UPDATE_AUDIO flag instead. Also make runtime changes to --audio-client-name take effect.
| * audio: move some fallback handling to common AO reload functionwm42016-10-053-34/+36
| | | | | | | | | | | | | | | | | | Now a reload requested by an AO behaves in exactly the same way as changing an AO-related options (like --audio-channels or --audio-exclusive). This is good for testing and uniform behavior. (You could go as far as saying it's a necessity, because the spotty and obscure AO reload behavior is hard to reproduce and thus hard to test at all.)
| * command: flush and uninitialize audio output first on option changeswm42016-10-051-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | This affects changing audio configuration options. Explicitly flush and uninitialize the audio output first before doing the rest. This should ensure all state attached to the audio output is discarded and not used during the reconfiguration. Also add a comment to the reinit_audio_filters() call. It doesn't necessarily restore the audio chain fully, but makes sure a seek is issued if the amnount of buffered audio discarded was huge enough to cause "problems".
| * vo_opengl_cb: don't wait for redrawn frameswm42016-10-052-3/+6
| | | | | | | | | | | | | | This also removes some extra waiting if no video is active, at least in theory. Also clarify the vo_frame flag comments for redraw/repeat.
| * vo_opengl: disable glFlush() by default, and add an option to enable itwm42016-10-053-1/+10
| | | | | | | | | | | | | | | | | | | | | | It seems this can cause issues with certain platforms, so better to disable it by default. The original reason for this isn't overly justified, and display-sync mode should get rid of the need for it anyway. The new option is meant for testing, and will probably be removed if nobody comes up and reports that enabling the option actually improves anything.
| * audio: make setting audio-exclusive update the audio chainKevin Mitchell2016-10-041-1/+1
| | | | | | | | | | This is required since exclusive mode requires entirely different initializaiton.
| * audio/out: prevent underruns with spdif under certain conditionswm42016-10-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The player tries to avoid splitting frames with spdif (sample alignment stuff). This can in certain corner cases with certain drivers lead to the situation that ao_get_space() returns a number higher than 0 and lower than the audio frame size. The playloop will round this down to 0 bytes and do nothing, leading to a missed wakeup. This can lead to underruns or playback completely getting stuck. It can be reproduced by playing AC3 passthrough with no video and: --ao=null --ao-null-buffer=0.256 --ao-null-outburst=6100 This commit attempts to fix it by allowing the playloop to write some additional data (to get a complete frame), that will be buffered within the AO ringbuffer even if the audio device doesn't want it.
| * manpage: fix closing quotewm42016-10-041-1/+1
| |
| * vo_opengl: hwdec_rpi: fix NULL pointer deref in certain caseswm42016-10-041-1/+3
| | | | | | | | | | If a client API user provides the MPGetNativeDisplay callback, but returns NULL for "MPV_RPI_WINDOW", this would crash.
| * command: include deprecated/aliased options in property bridgewm42016-10-041-18/+28
| | | | | | | | | | | | | | | | If we really want client API users to use mpv_set_property() instead of mpv_set_option(), then compatibility handling of deprecated options should be included. Otherwise, there's the danger that client API users either break too early (and without a warning), or mpv_set_option() will continue to have a reason to exist.
| * vo_drm: fix tiny memory leakrr-2016-10-041-3/+8
| |
| * vo_drm: refactor getting display fpsrr-2016-10-044-10/+8
| | | | | | | | | | | | | | | | Reduces code duplication between OpenGL backend and DRM VO. (The control() for OpenGL backend isn't sufficiently similar to the VO's control() to consider merging it as a whole - I extracted only the FPS code.)
| * player: fix previous commitwm42016-10-033-7/+12
| | | | | | | | ...
| * options: rename subtitle optionsDan Oscarsson2016-10-037-125/+244
| | | | | | | | | | | | | | | | | | | | | | Rename the text subtitle options from --sub-text- to --sub- and --ass- options to --sub-ass-. The intention is to common sub options to prefixed --sub- and special ASS option be seen as a special version of sub options. The OSD options that work like the --sub- options are still named --osd-. Man page updated including a short note about renamed --sub-text-* and --ass-* options to --sub-* and --sub-ass-*.
| * DOCS/interface-changes.rst: mention seek command changewm42016-10-031-0/+3
| | | | | | | | | | | | This is potentially incompatible if a program used negative timestamps to deal with timestamp resets, which would potentially lead to mpv producing and using negative timestamps.
| * command: allow absolute seeks relative to end of streamPhilip Sequeira2016-10-022-1/+10
| | | | | | | | | | | | "seek -10 absolute" will seek to 10 seconds before the end. This more or less matches the --start option and negative seeks were otherwise useless (they just clipped to 0).
| * audio: fix late audio startwm42016-10-021-1/+3
| | | | | | | | | | | | | | | | | | Regression since commit bbcd0b6a. This code is just cursed, because it's a fragile state machine with no proper tests, and which could be done in a much simpler way. Without doubt this change will cause a regression in some ridiculous corner case as well. Fixes #3610 (the cause of it, not the behavior it resulted in).
| * audio: dump timestamp differencewm42016-10-021-1/+5
| | | | | | | | | | Can help to analyze timestamp jitter or seeing completely bogus timestamps.
| * vaapi: support drm devices when running in vaapi-copy modeBernhard Frauendienst2016-10-021-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When the vaapi decoder is used in copy mode, it creates a dummy display to render to. In theory, this should support hardware decoding on on a separate GPU that is not actually connected to any output (like an iGPU which supports more formats than the external GPU to which the monitor is connected). However, before this change, only X11 displays were supported as dummy displays. This caused some graphics drivers (namely intel-driver) to core dump when they were not actually used as X11 module. This change introduces support for drm libav displays, which allows vaapi-copy to run on suc