summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.29.1v0.29.1release/0.29Jan Ekström2018-10-023-1/+44
|
* cocoa-cb: fix side by side Split ViewAkemi2018-10-021-1/+1
| | | | | | | | | | | | when entering a Split View a windowDidEnterFullScreen event happens without a previous toggleFullScreen call. in that case it tries to stop an animation that was never initiated by us and basically breaks the system initiated fullscreen, or in this case the Split View. immediately after entering the fullscreen it tries top stop the animation and resizes the window, which causes the window to exit fullscreen. only try to stop an animation that was initiated by us and is safe to stop. (cherry picked from commit 2b0b9bb6a1000a6f3aecabb628bb7e7246c4795b)
* {mac,cocoa}: trim trailing null out of macosx_icon when loading itRodger Combs2018-10-022-2/+5
| | | | | | | This prevents crashes when loading the application icon image. Suggested-by: Akemi <der.richter@gmx.de> (cherry picked from commit 1842a932d37638c910f4471d85e81554076c3d2c)
* mac: fix crash if we can't get an event tapRodger Combs2018-10-021-9/+12
| | | | | | | | | | without assistive-device permissions the event tap can't be create on 10.14 any more which lead to an assertion. System Preferences > Security & Privacy > Privacy > Accessibility and add mpv or your terminal App to the list. (cherry picked from commit ada4f7c6006fc60189987b3ee012e7f4ced9926e)
* encode: fix AVPacket deinitialization logicNiklas Haas2018-10-011-3/+4
| | | | | | | | | | | | | Since this function is called with packets on the stack, trying to free them makes no sense. Instead, it should unref (which is what `av_interleaved_write_frame` does anyway, rather than freeing). Also, the calling code tried unreffing the packet a second time, even after it was "freed" by the callee in the failure case - and after ownership was taken over by `av_interleaved_write_frame` in the successful case. Both of these cases were wrong. (cherry picked from commit 6d61c5f68a5b1faaaf5a38080c690e35bd31858c)
* demux_lavf: hack-fix EDL mp4 DASH hackwm42018-10-011-0/+4
| | | | | | | | | | | | | | | | I encountered a stream that fails with "Could not demux init fragment.". It turns out this is a regression from the recent change to that code. The assumption was that demux_lavf.c would treat this as concatenated stream - which it does, but not for probing. Doing this transparently is hard without doing it properly. Doing it properly would mean creating some sort of stream_concat (reminiscent of that FFmpeg security bug). I probably don't want to go there, and I think libavformat should just support this directly, so whatever. Hack-fix this with the knowledge that the init segment will always contain the headers. (cherry picked from commit 315004a38a1bf9394507d8ca308da1ce86ca2204)
* stream_libarchive: fix hangs when demuxer does out of bound seekswm42018-10-011-2/+9
| | | | | | | | | | | | | | | This happened with a .flac file inside an archive. It tried to seek beyond the end of the archive entry in a format where seeking isn't supported. stream_libarchive handles these situations by skipping data. But when the end of the archive is reached, archive_read_data() returns 0. While libarchive didn't bother to fucking document this, they do say it's supposed to work like read(), so I guess a return value of 0 really means EOF. So change the "< 0" to "<= 0". Also add some error logging. The same file actually worked without out of bounds reads when extracted, so there still might be something very wrong. (cherry picked from commit 7e85dc2167b7524308159915d5c1d3341464977f)
* demux_lavf: v4l streams are not seekablewm42018-10-011-0/+2
| | | | | | | | | FFmpeg is retarded enough not to give us any indication whether it is (unless we query fields not in the ABI/API). I bet FFmpeg developers love it when library users have to litter their code with duplicated information. (cherry picked from commit 20d381d1e98844146ffda3e9b9b6b812af95e397)
* cocoa-cb: add Apple Software Renderer supportAkemi2018-09-305-3/+42
| | | | | | | | by default the pixel format creation falls back to software renderer when everything fails. this is mostly needed for VMs. additionally one can directly request an sw renderer or exclude it entirely. (cherry picked from commit 8d2d0f06403b6777e4b591fa84df57b55e9b7809)
* cocoa-cb: move macOS option retrieval to the earliest point possibleAkemi2018-09-302-6/+6
| | | | | | | | | moved the retrieval of the macOS specific options from the backend initialisation to the initialisation of the CocoaCB class, the earliest point possible. this way macOS specific options can be used for the opengl context creation for example. (cherry picked from commit 44e49aee3ccd48459b9c242d296bf7056d2fcdb3)
* add swift as main dependency so all dependencies can be disabled easilyAkemi2018-09-302-2/+9
| | | | (cherry picked from commit 5c2056ad0a43b1d15baef6d289aff8cacadad053)
* build: check for Swift version and disable dependencies if neededAkemi2018-09-303-4/+11
| | | | (cherry picked from commit 50787acb275dc0465a0cf7234ee8f9bd07f0d4d1)
* drm_atomic: Allow to create atomic context w/o drmprime video planeAnton Kindestam2018-09-302-6/+11
| | | | | | | | | | | | | | | | | This is to improve the experience when running with default settings on a driver that doesn't have any overlay planes (or indeed only one plane), but still supports DRM atomic. Since the drmprime video plane is set to pick an overlay plane by default it would fail on these drivers due to not being able to create any atomic context. Users with such cards had to specify --drm-video-plane-id manually to some bogus value (it's not used after all). The "video" plane is only ever used by the drmprime-drm hwdec interop, which is not used at all in the typical usecase where everything is actually rendered on to the "OSD" plane using EGL, so having an atomic context without the "video" plane should be fine most of the time. (cherry picked from commit 810acf32d6cf0dfbad66c602689ef1218fc0a6e3)
* manpage: minor fix to --drm-formatAnton Kindestam2018-09-301-1/+1
| | | | | | Looking at other examples, a bar should be used when listing OPT_CHOICE options. (cherry picked from commit f277f9f6d2fe36110aa55b5d606154c629694c7b)
* demux/packet: fix demux_packet_shortenTom Yan2018-09-301-2/+2
| | | | | | for the rawaudio demuxer to do the expected gapless playback (cherry picked from commit 95636c65e73c1d0d8cba43d8c230291d99962e88)
* travis: enable CI for release branchesJan Ekström2018-09-291-0/+1
| | | | (cherry picked from commit 085943df25fc66cd461f21ff1374fc3f86e5ce11)
* ao_alsa: log the ALSA state if we get a non-XRUN errorJan Ekström2018-09-291-2/+4
| | | | | | | The ALSA state generally can tell us more information in case we get an unexpected error. (cherry picked from commit cea4ff3e5fb5766d34f068742d00b127fa66013f)
* ao_alsa: handle XRUNs separately from other errorsJan Ekström2018-09-291-2/+7
| | | | | | | | | | | According to ALSA doxy, EPIPE is a synonym to SND_PCM_STATE_XRUN, and that is a state that we should attempt to automatically recover from. In case recovery fails, log an error and return zero. A warning message will still be output for each XRUN since those are not something we should generally be receiving. (cherry picked from commit fdc952486a8c0d6446783e424953fdb6097ed987)
* ao_alsa: early exit get_space if paused or ALSA is not readyJan Ekström2018-09-291-0/+5
| | | | | | | | | | | | | This has been way too long coming, and for me to notice that a whole lot of ao_alsa functions do an early return if the AO is paused. For the STATE_SETUP case, I had this reproduced once, and never since. Still, seems like we can start calling this function before the ALSA device has been fully initialized so we might as well early exit in that case. (cherry picked from commit 3218a5808229b06bd7e2d41a912e7e7031525d56)
* man/options: emphasize ytdl_hook's script optionsRicardo Constantino2018-09-291-6/+5
| | | | (cherry picked from commit 9c184078a66a7de0e94d72a4bb038dde6a4ab455)
* ytdl_hook: fix audio not being picked up for some sitesRicardo Constantino2018-09-291-2/+2
| | | | (cherry picked from commit 9dbab9661c4ed36dca1b655440a02db37cd92af0)
* ao_jack: only auto-connect to audio portsNiklas Haas2018-09-291-1/+2
| | | | | | | This prevents ao_jack from auto-connecting to MIDI ports (or other, hypothetical future port types). (cherry picked from commit fed0ea111bf0f4e7b4221c9311653b7c8e58bd02)
* encode: fix expected streams when using --lavfi-complexTSaaristo2018-09-291-8/+8
| | | | | | | | | | | mpctx->current_track[0][STREAM_VIDEO] (and STREAM_AUDIO) are empty when using --lavfi-complex. Moving the muxer stream hinting after audio/video chain initialization and checking if the chains exist fixes encoding with --lavfi-complex. Previously, the output audio/video streams did not get prepared and the encode would fail due to unexpected stream addition. (cherry picked from commit 3744d0bda93d63a8ceb489a04f6c07817ce57d10)
* mp_image: strip all HDR peak information from SDR clipsNiklas Haas2018-09-291-0/+6
| | | | | | | | | By overriding it with 1.0 (aka SDR). This prevents blowing up on mistagged clips. Fixes #6111 (cherry picked from commit 48c38f730d87b105716d9321a375175d2f01d401)
* ao_pulse: fix tlength calculationTom Yan2018-09-293-17/+3
| | | | | | also remove the now unused non-sensical af_fmt_seconds_to_bytes. (cherry picked from commit 9d6b15ab32d4c231574f392c193a53e865b2206d)
* Revert "ao_openal: enable building on OSX"Michael Hoang2018-09-293-27/+2
| | | | | | | | This reverts commit af6126adbe61fb2b6cc780025246d33df93072e6. Apple's OpenAL support is ridiculously out of date, revert back to just using OpenAL Soft on macOS (fixes #4645). (cherry picked from commit 91786fa99c15dc64d3bce4be413326ba2dbe59f7)
* vo_gpu: avoid overwriting compute shader block sizesNiklas Haas2018-09-291-4/+10
| | | | | | | | | | | | When using multiple compute shaders as part of the same pass, there can be a conflict in the block sizes. In the problematic case, the HDR detection shader can collide with the polar sampling shader. In this case, the solution is clear - the passes that can handle any size should "give in" and not overwrite the block sizes. Fixes #6083. (cherry picked from commit 1890ca024e541e1d07bdee242b75b24391b4434a)
* af_rubberband: reset delay to 0 on resetHector Martin2018-09-291-0/+2
| | | | | | This fixes A-V drift on seeking (cherry picked from commit a10754f038b7a69436bef536d9ed7cc4755ba0d1)
* manpage: fix reference to --tone-mapping by old option nameAnton Kindestam2018-09-291-1/+1
| | | | (cherry picked from commit d2d7dba6ee3182174420c1d90caa20bf28ad7758)
* ytdl_hook: always load ytdl:// links with ytdl_hook firstRicardo Constantino2018-09-291-7/+23
| | | | | | Suggested in IRC by sfan5. (cherry picked from commit d8131568c8c900b62103f11846d149877654f2d9)
* osx: Fix initialization and access of service menuMichael Hoang2018-09-291-2/+2
| | | | | | | Replace dot syntax with accessor syntax so that clang no longer errors out due to not finding the property servicesMenu on NSApp. (cherry picked from commit 4e9e46b9f8871f46de3e1a192cbcb02d54ba0d52)
* cocoa-cb: fix crash on macOS 10.10Akemi2018-09-291-1/+3
| | | | | | | | the colorspace of the layer is only available on 10.11 and upwards. Fixes #6041 (cherry picked from commit 049816c1451449932f1ed2047f6643d7c7ac8a63)
* cocoa-cb: fix crash when no screen is availableAkemi2018-09-291-1/+1
| | | | | | | | | | instead of force unwrapping and chaining the optional vars in our containsMouseLocation function, safely unwrap and guard the resulting var. Fixes #6062 (cherry picked from commit 6bf0edc59cc377705a44fcb30890592aaaff79c0)
* audio/format: decouple af_fmt_is_planar from af_fmt_to_planarTom Yan2018-09-291-16/+15
| | | | | | | so that af_fmt_to_planar (and hence af_fmt_from_planar) can just return the input when it is not an interleaved (planar) format. (cherry picked from commit f2311ff51461ec9539efb00458b8a54ded56511b)
* manpage: Correct show-text duration default valuejaseg2018-09-291-1/+1
| | | | | | duration is parsed as an integer, and the default value is used if ```-1``` is passed. Passing ```-``` as described here causes a parameter value error. (cherry picked from commit cfecbac863cea893d8f3cc462ea0610121f660da)
* manpage: fix --vf exclamation mark descriptionpavelxdd2018-09-291-1/+1
| | | | | | | An exclamation mark disables the filter by default instead of enabling it. (cherry picked from commit 759a6a259e8ac865afe9dbf5b15d55d82bf78d52)
* audio/format: minor fix for af_fmt_from_planarTom Yan2018-09-291-2/+4
| | | | | | See af_fmt_to_planar. (cherry picked from commit 4e91cb72ef926e6a7276c15f6a24549ff62afba8)
* ci: explicitly call waf with python3Martin Herkt2018-09-292-4/+4
| | | | | | | | Python 2 may not be present in the CI images in the future, but waf’s shebang line still uses its executable name. Explicitly call the right major version of the interpreter. (cherry picked from commit 6eb59fea2fca348a72b0cc8a84ccb7dcfe2f8fe6)
* ci: do bootstrap outside the docker containerJan Ekström2018-09-293-2/+1
| | | | | | | | | This way the docker container in itself does no networking. It seems like travis disabled network access from the actual docker containers. (cherry picked from commit 2d785f3ea39d6779a6ac44d85d7cdc0acf891f43)
* stream_smb/stream_file: fix `write_buffer`Yclept Nemo2018-07-292-16/+16
| | | | | | | Functions `write` and `smbc_write` are given a diminishing buffer of incorrect constant size. After partial writes, the code would do another write of the full original length, failing to subtract the amount already written.
* stream_smb: locking to bypass libsmbclient issuesYclept Nemo2018-07-291-1/+21
| | | | | | | | | | | | | | | | | | Thread-unsafe libsmbclient is likely to crash when used simultaneously across threads. For example, by: mpv "smb://...mkv" --sub-file "smb://...srt" Work around this by locking all calls to this library under a single global mutex. This is a temporary solution. When the libsmbclient bug [1] is fixed, switch to the code from branch [2] which uses a new api to create per-thread smb contexts. Fixes [3]. [1] https://bugzilla.samba.org/show_bug.cgi?id=11413 [2] https://github.com/orbisvicis/mpv/tree/smbclient_threaded_api [3] https://github.com/mpv-player/mpv/issues/5936 (cherry picked from commit 112b3fa92266ab36dbffa2abf66034203f66b2ce)
* manpage: fixup mistaken show playlist/track-list shortcutsDaniel M. Capella2018-07-231-2/+2
| | | | | | | This was mistaken in 496b13227b7f4b47a660bbf4e314f9a55b7e8867 and not noticed in review. (cherry picked from commit 45beb7073a1cef89e87a2d562ce8c233fc140dae)
* Release 0.29.0v0.29.0Martin Herkt2018-07-222-116/+95
|
* wscript_build: apply project-wide CFLAGS/LDFLAGS to mpv.comStephen Hutchinson2018-07-191-2/+2
| | | | | | | mpv.com fails to build when cross-compiling with a multilib version of GCC, because the -m32 flags aren't getting passed to the build process for osdep/win32-console-wrapper.c or the link phase for mpv.com itself.
* build: if libdir is not set, set it to EXEC_PREFIX/libJan Ekström2018-07-191-0/+13
| | | | | This way the behavior of default libdir stays consistent before and after switching to gnu_dirs from waf itself.
* build: bump waf to 2.0.9Akemi2018-07-121-2/+2
| | | | Among other things, fixes compatibility with python 3.7.x.
* build: utilize built-in gnu_dirs module for installation directoriesAkemi2018-07-122-15/+22
| | | | | | | | | | | | | | | | | | | | | | This started breaking with newer (2.0.x) waf versions, and it was noticed that a built-in waf module was providing very similar functionality. APPNAME definition was required to have `gnu_dirs`' PACKAGE variable to be defined in order to have f.ex. documentation installed to the correct directory. Currently unused options added by `gnu_dirs` were removed to clean up the output of the help command. Effective changes to behavior: - `gnu_dirs` will attempt to figure out if it needs to use lib64 instead of lib within your installation prefix. If you would like it to not do that, set `--libdir` during configuration. The way it tries to figure lib/lib64 out is if there's a `/usr/lib64` and no `/usr/lib32`. - `--incdir` is now `--includedir` as per standard `gnu_dirs` behavior.
* build: explicitly delay adding of object files to linkingAkemi2018-07-121-0/+1
| | | | | | | | | | Before, `do_the_symbol_stuff` would implicitly come before `handle_add_object`, which adds object files to the linking task. With newer (2.0.x) versions of waf, the ordering seems to get more optimized, and thus we have to declare that the function that creates the linking task should come before the task that adds object files to the task.
* hwdec_vaegl: Fix VAAPI EGL interop used with gpu-context=drmAnton Kindestam2018-07-093-6/+29
| | | | | | | | Add another parameter to mpv_opengl_drm_params to hold the FD to the render node, so that the fd can be passed to hwdec_vaegl. The render node is opened in context_drm_egl and inferred from the primary device fd using drmGetRenderDeviceNameFromFd.
* context_drm_egl: Fix CRTC setup and release code when using atomicAnton Kindestam2018-07-096-41/+217
| | | | | | | | | | The previous code did not save enough information about the old state, and could end up changing what plane the fbcon:s FB got attached to, or in worse case causing a blank screen (observed in some multi-screen setups on Sandy Bridge). In addition refactor the handling of drmModeModeInfo property blobs to not leak, as well as enable reuse of already created blobs.
* context_drm_egl: Fix some memory leaks on error exitAnton Kindestam2018-07-091-63/+66
| | | | | Fix some memory leaks on error exit in crtc_setup_atomic and crtc_release_atomic.
* gpu: prefer 16bit floating point FBO formats to 16bit integer onesJan Ekström2018-07-082-4/+7
| | | | | | According to earlier discussions, this can improve visual quality. This only changes the preferred order of the formats, not the formats themselves.
* build: fix linking libmpv when swift features are buildAkemi2018-07-081-7/+14
| | | | | | | | this was caused by commit 2e7a4f7. the LAST_LINKFLAGS were not added to the linking of libmpv and that caused a linking error. manually add the link flags the same way it's done when linking mpv. Fixes #5968
* wscript_build: fixup swift include parameter to point to source rootJan Ekström2018-07-081-2/+2
| | | | | | Fixes compilation of the swift components with `--variant="random_string"`, in which case "." is not the source directory.
* ci: add mingw64 targetsMartin Herkt2018-07-052-1/+38
|
* ci: switch to cirno.systems docker registryMartin Herkt2018-07-051-4/+4
| | | | Much faster build cycles and more consistent download bandwidth.
* ci: enable libsmbclientMartin Herkt2018-07-051-5/+6
|
* ci: switch Travis env language to genericMartin Herkt2018-06-251-1/+1
| | | | This way it doesn’t override CC.
* ci: add more build targetsMartin Herkt2018-06-251-2/+5
| | | | | Travis now builds with Clang and containers with git snapshots of some dependencies.
* ci: Use custom container for Travis buildsMartin Herkt2018-06-252-22/+26
| | | | | | | | Temporary solution. For now, this builds using a container image based on openSUSE Tumbleweed with the current FFmpeg release. More containers will be added (at least with git snapshots of FFmpeg and libass), and Travis will eventually be replaced with something we have more control over.
* TOOLS/autoload: Fixed broken "disabled" optionAndreas Wennerberg2018-06-231-0/+1
| | | | `--script-opts=autoload-disabled=yes` now properly stops the script from running.
* demux_mkv: add A_MLP to mkv_audio_tagsNicolas F2018-06-221-0/+1
| | | | Fixes #5923
* build: add static libraries to libmpv.pcMartin Herkt2018-06-201-4/+8