aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* manpage: Fix typo (reomve -> remove)Gravatar Anna-Maria Meriniemi2017-12-10
| | | | This commit fixes the "reomve" typo in the Javascript docs.
* terminal-unix: fix race condition with tty resetGravatar Drew DeVault2017-12-09
| | | | | | | | | | | | | Calling do_deactivate_getch2 before joining the terminal thread could lead to breakage if the terminal thread got another interation in before it was signaled to stop. This also addresses a minor error with the order in which things are initialized - getch2_poll would previously call tcgetpgrp(tty_in) before tty_in was initialized, which did not lead to broken behavior, but was not correct either. Fixes #5195
* terminal-unix: switch back to poll(3)Gravatar Drew DeVault2017-12-09
| | | | | This leverages the new polldev shim which lets us "poll" device files on macOS with select and use the genuine article on other platforms.
* osdep: add poll shim for macOSGravatar Drew DeVault2017-12-09
| | | | | | | This implements a poll-compatible interface, backed by select on macOS, suitable for polling on device files - which are not supported by macOS's implementation of poll. This is a (long-standing) bug in macOS, so hopefully we can eventually remove this shim.
* appveyor: fix FFmpeg downloadGravatar James Ross-Gowan2017-12-09
| | | | | Broken in f19797dea62a. It seems like the Git server on git.ffmpeg.org doesn't like clone --depth=1, so use the GitHub mirror instead.
* vo_gpu: d3d11: check for timestamp query supportGravatar James Ross-Gowan2017-12-09
| | | | | | | | | | Apparently timestamp queries are optional for 10level9 devices. Check for support when creating the device rather than spamming error messages during rendering. CreateQuery can be used to check for support by passing NULL as the final parameter. See: https://msdn.microsoft.com/en-us/library/windows/desktop/ff476150.aspx#ID3D11Device_CreateQuery
* options: don't report errors on help value for OPT_CHOICEGravatar pavelxdd2017-12-08
| | | | | | | 'help' is a valid value for a lot of mpv options, such as `hwdec` or `vo` for printing available values, so this change makes the output of OPT_CHOICE options like `--video-sync=help` more consistent by not reporting an error about invalid value 'help'.
* video: add a shitty hack to avoid missing subtitles with vf_subGravatar wm42017-12-08
| | | | | | | | | | | | | | | | update_subtitles() makes sure all subtitle packets at/before the given PTS have been read and processed. Normally, this function is only called before sending a frame to the VO. This is too late for vf_sub, which expects the subtitles to be updated before feeding a frame to the filters. Apparently this was specifically a problem for the first frame. Subsequent frames might have been ok due to general prefetching. (This will fail anyway, should a filter dare to add an offset to the timestamps of the filered frames before they pass to vf_sub.) Fixes #5194.
* terminal-unix: fix busy looping on LinuxGravatar Drew DeVault2017-12-08
| | | | | | | POSIX permits select() to modify the timeout, which can happen on the Linux implementation. This can reset the timeout, which spins this into a tight loop. A timeout isn't necessary in the first place, so just use NULL instead.
* manpage: clarify --sub-file(s) optionsGravatar wm42017-12-07
| | | | | | This was a bit confused, and I bet nobody understood whether to use --sub-file or --sub-files, and what the difference is. Explicitly mention that both variants exist, and how they are related.
* player: when loading external file, always add all track typesGravatar wm42017-12-07
| | | | | | | | | | | | | | | | Until now, using --sub-file would add only subtitle tracks from the given file. (E.g. if you passed a video file, only the subtitle tracks from it were added, not the video or audio tracks.) This is slightly messy (because streams are hidden), and users don't even want it, as shown by #5132. Change it to always add all streams. But if there's no stream of the wanted type, we still report an error and do not add any streams. It's also made sure none of the other track types are autoselected. Also adjust the error messages on load failure slightly. Fixes #5132.
* player: rebase start time even for subtitle streamsGravatar wm42017-12-07
| | | | | | | It appears libavformat never sets the file start time for subtitles, so this special check is not needed. The original idea was probably that _if_ the demuxer set the start time to the first subtitle packet, the subtitles would be shifted incorrectly.
* Use /dev/tty instead of stdin for terminal inputGravatar Drew DeVault2017-12-08
| | | | | | | Fixes #4190 This allows you to use terminal input even if you've piped something into mpv.
* w32_common: improve the window message state machineGravatar pavelxdd2017-12-07
| | | | | | | | * Distinguish between the window being moved or not. * Skip trying to snap if currently in full screen or an embedded window. * Exit snapped state if the size changed when the window was being moved.
* w32_common: skip window snapping if Windows handled itGravatar pavelxdd2017-12-07
| | | | | | Check the expected width and height against up-to-date window placement. If they do not match, we will consider snapping to have happened on Windows' side.
* Revert "ytdl: handle HLS with FFmpeg"Gravatar Kevin Mitchell2017-12-07
| | | | | | Apparently, this breaks youtube live and possibly other things. This reverts commit 06519aae5837312437b07e8bfef10c025ec2f688.
* ytdl: handle HLS with FFmpegGravatar wm42017-12-06
| | | | | Using youtube-dl's metadata ends up with stupid things like missing variant streams, or missing audio streams entirely.
* options: add --start=none to reset previously set start timeGravatar Aman Gupta2017-12-06
| | | | | | | | | | | | | Previously when using a libmpv instance to play multiple videos, once --start was set there was no clear way to unset it. You could use --start=0, but 0 does not always mean the beginning of the file (especially when using --rebase-start-time=no). Looking up the start timestamp and passing that in also does not always work, particularly when the first timestamp is negative (since negative values to --start have a special meaning). This commit adds a new "none" value which maps to the internal REL_TIME_NONE, matching the default value of the play_start option.
* manpage: minor fixes to documenationGravatar Leo Izen2017-12-06
|
* manpage: add note about properties not immediately showing upGravatar Kevin Mitchell2017-12-06
| | | | fixes #5134
* player/osd.c: fix putting --start time on OSDGravatar Leo Izen2017-12-05
| | | | I missed an ab-loop check in ff7e294. It should now work as expected.
* player/playloop.c: fix --loop-file without --startGravatar Leo Izen2017-12-05
| | | | | I missed a check for MP_NOPTS_VALUE in 4efe330. Now it should work as expected.
* Remove support for ffmpeg-mpvGravatar Rostislav Pehlivanov2017-12-05
|
* vo: add support for externally driven renderloop and make wayland use itGravatar Rostislav Pehlivanov2017-12-05
| | | | | | | | | | | Fixes display-sync (though if you change virtual desktops you'll need to seek to re-enable display-sync) partially under wayland. As an advantage, rendering is completely disabled if you change desktops or alt+tab so you lose no performance if you leave mpv running elsewhere as long as it isn't visible. This could also be ported to other VOs which supports it.
* manpage: add some minor documenation fixesGravatar Leo Izen2017-12-04
| | | | | | - replace the incorrect reference to --opengl-shader - document a caveat when using --image-display-duration - add some documentation on --vf=lavfi=
* Copyright: remove removed file from GPL listGravatar wm42017-12-05
|
* player/misc.c: allow both --length and --end to control play endpointGravatar Leo Izen2017-12-04
| | | | | | | | | | Most options that change the playback endpoint coexist and playback stops when it reaches any of them. (e.g. --ab-loop-b, --end, or --chapter). This patch extends that behavior to --length so it isn't automatically trumped by --end if both are present. These two will interact now as the other options do. This change is also documented in DOCS/man/options.rst.
* vo_gpu: d3d11_helpers: use better formatting for PCI IDsGravatar James Ross-Gowan2017-12-04
| | | | | The old format was definitely misleading, since it used an 0x prefix and formatted the device IDs with %d.
* player/playloop.c: respect playback start time when using --loop-fileGravatar Leo Izen2017-12-03
| | | | | | | Using --loop-file should now seek to the position denoted by --start or equivalent option, rather than always seeking to the beginning as it had done before. --loop-playlist already behaves this way, so this brings --loop-file in line for added consistency.
* player: use start timestamp for ab-looping if --ab-loop-a is absentGravatar Leo Izen2017-12-03
| | | | | | | If --ab-loop-b is present, then ab-looping will be enabled and will attempt to seek to the beginning of the file. This patch changes it so it will instead seek to the start of playback, either via --start or some equivalent, rather than always to the beginning of the file.
* player: add get_play_start_ptsGravatar Leo Izen2017-12-03
| | | | | | | | | | Added a get_play_start_pts function to coincide with the already-existing get_play_end_pts. This prevents code duplication and also serves to make it so code that probes the start time (such as get_current_pos_ratio) will work correctly with chapters. Included is a bug fix for misc.c/rel_time_to_abs that makes it work correctly with chapters when --rebase-start-time=no is set.
* TOOLS/autoload.lua: update extensionsGravatar Ckat2017-12-03
| | | | | * duplicated 'ogv' renamed to 'ogm' * 'ogg' and 'opus' added as common audio file extensions
* stream_libarchive: Fix locale includes on macOSGravatar sfan52017-12-03
| | | | Fixes #5108
* Fix various typos in log messagesGravatar Nicolas F2017-12-03
|
* manpage: vaapi-copy is not limited to Intel GPUsGravatar Mariusz Skoneczko2017-12-03
| | | vaapi-copy works with some AMD cards
* video: probe format of primary plane in drm/egl contextGravatar Anton Kindestam2017-12-03
| | | | | | | | | We need to support hardware/drivers which do not support ARGB8888 in their primary plane. We also use p->primary_plane_format when creating the gbm surface, to make sure it always matches (in actuality there should be little difference).
* hwdec: whitespace cleanup in hwdec_drmprime_drm.cGravatar Anton Kindestam2017-12-03
|
* video: fix use of possibly-NULL pointer in drm_egl_initGravatar Anton Kindestam2017-12-03
|
* video: fix double free in drm_atomic_create_contextGravatar Anton Kindestam2017-12-03
| | | | | | | | | | | | Passing in an invalid DRM overlay id with the --drm-overlay option would cause drmplane to be freed twice: once in the for-loop and once at the error-handler label fail. Solve by setting drmpanel to NULL after freeing it. Also the 'return false' statement after the error handler label should probably be 'return NULL', given that the return type of drm_atomic_create_context returns a pointer.
* travis: remove Libav check for nowGravatar wm42017-12-02
| | | | | I sure hope they merge the patches for the required hwdec info API, which is already in FFmpeg.
* build: remove nanosleep() checkGravatar wm42017-12-02
| | | | Also guaranteed by POSIX.
* build: remove termios checkGravatar wm42017-12-02
| | | | Also should be fully covered by POSIX.
* build: remove POSIX/sysv shared memory testGravatar wm42017-12-02
| | | | | | vo_x11 and vo_xv need this. According to the Linux manpage, all involved functions are POSIX-2001 anyway. (I just assumed they were not, because they're mostly System V UNIX legacy garbage.)
* vd_lavc: don't request native pixfmt with -copy and METHOD_INTERNALGravatar wm42017-12-02
| | | | | | | | | If the codec uses AV_CODEC_HW_CONFIG_METHOD_INTERNAL, and we're using the -copy method, then don't request the native pix_fmt. It might not have a AVFrame.hw_frames_ctx set, and we couldn't read back at all. On top of that, most of those decoders probably don't provide read-back when using such opaque formats anyway, while providing separate decoding modes to decode to RAM.
* man: remove incorrect note about default opengl backendGravatar Martin Herkt2017-12-02
|
* video: remove some more hwdec legacy stuffGravatar wm42017-12-02
| | | | | | | | | Finally get rid of all the HWDEC_* things, and instead rely on the libavutil equivalents. vdpau still uses a shitty hack, but fuck the vdpau code. Remove all the now unneeded remains. The vdpau preemption thing was not unused anymore; if someone cares this could probably be restored.
* vd_lavc, vdpau, vaapi: restore emulated API avoidanceGravatar wm42017-12-02
| | | | | | This code is for trying to avoid using an emulation layer when using auto probing, so that we end up using the actual API the drivers provide. It was destroyed in the recent refactor.
* hwdec: don't require setting legacy hwdec fieldsGravatar wm42017-12-02
| | | | | | | | | | With the recent changes, mpv's internal mechanisms got synced to libavcodec's once more. Some things are still needed for filters (until the mechanism gets replaced), but there's no need to require other hwdec methods to use these fields. So remove them where they are unnecessary. Also fix some minor leaks in the dxva2 backends, and set the driver_name field in the Apple ones. Untested on Apple crap.
* vd_lavc: simpler way to check for opque hw frameGravatar wm42017-12-02
| | | | The ->fmt shit is something I'd like to phase out.
* vd_lavc: sort -copy hwdec modes to end of listGravatar wm42017-12-02
| | | | | | | | | | | | | | | Otherwise, if e.g. "nvdec" didn't work, but "nvdec-copy" did, it would never try "vdpau", which is actually the next non-copy mode on the autprobe list. It's really expected that it selects "vdpau". Fix this by sorting the -copy modes to the end of the final hwdec list. But we still don't want preferred -copy modes like "nvdec-copy" to be sorted after fragile non-preferred modes like "cuda", and --hwdec=auto should prefer "nvdec-copy" over it, so make sure the copying mode does not get precedence over preferred vs. non-preferred mode. Also simplify the existing auto_pos sorting condition, and fix the fallback sort order (although that doesn't matter too much).