aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* demux/packet: fix demux_packet_shortenGravatar Tom Yan2018-09-30
| | | | for the rawaudio demuxer to do the expected gapless playback
* travis: enable CI for release branchesGravatar Jan Ekström2018-09-29
|
* vo_gpu: fix vec3 packing in UBOs/push_constantsGravatar Niklas Haas2018-09-29
| | | | | | | | | | | For vec3, the alignment and size differ. The current code will pack a struct like { vec3; float; vec2 } into 8 machine words, whereas the spec would only use 6. This actually fixes a real bug: The only place in the code I could find where it was conceivably possible that a vec3 is followed by a float was when using --gpu-dumb-mode in combination with --gamma-factor, and only when --gpu-api=vulkan. So it's no surprised nobody ran into it yet.
* vo_gpu: use explicit offsets for push constantsGravatar Niklas Haas2018-09-29
| | | | | | | | | These used to be unsupported long ago, but it seems glslang added support in the meantime. (I don't know which version, but I'm guessing it was long enough ago that we don't have to add a feature check) Should hopefully help make push constant layouts more robust against possible bugs either in our code or in the driver.
* ao_alsa: log the ALSA state if we get a non-XRUN errorGravatar Jan Ekström2018-09-29
| | | | | The ALSA state generally can tell us more information in case we get an unexpected error.
* ao_alsa: handle XRUNs separately from other errorsGravatar Jan Ekström2018-09-29
| | | | | | | | | 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.
* ao_alsa: early exit get_space if paused or ALSA is not readyGravatar Jan Ekström2018-09-29
| | | | | | | | | | | 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.
* man/options: emphasize ytdl_hook's script optionsGravatar Ricardo Constantino2018-09-26
|
* vo_gpu: adjust PRNG variant used by GL shadersGravatar sfan52018-09-26
| | | | | | | | | | | Certain low-end Mali GPUs have a rather low precision and overflow during the PRNG calculations, thereby breaking e.g. deband-grain. Modify the permute() to avoid this, this does not impact the quality of PRNG output (noticeably). This problem was observed on: GL_VENDOR='ARM', GL_RENDERER='Mali-T720' GL_VERSION='OpenGL ES 3.1 v1.r15p0-00rel0.bdd9e62cdc8c88e0610a16b5901161e9'
* ytdl_hook: fix audio not being picked up for some sitesGravatar Ricardo Constantino2018-09-26
|
* ao_jack: only auto-connect to audio portsGravatar Niklas Haas2018-09-26
| | | | | This prevents ao_jack from auto-connecting to MIDI ports (or other, hypothetical future port types).
* encode: fix expected streams when using --lavfi-complexGravatar TSaaristo2018-09-26
| | | | | | | | | 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.
* ci: explicitly call waf with python3Gravatar Martin Herkt2018-09-11
| | | | | | 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.
* mp_image: strip all HDR peak information from SDR clipsGravatar Niklas Haas2018-09-05
| | | | | | | By overriding it with 1.0 (aka SDR). This prevents blowing up on mistagged clips. Fixes #6111
* vo_gpu: switch to optimization level performanceGravatar Niklas Haas2018-09-01
| | | | | | Upstream has this now. Didn't really make any different for me (except making the polar compute shader 2%-3% faster), but maybe it does for somebody else.
* ao_pulse: fix tlength calculationGravatar Tom Yan2018-09-01
| | | | also remove the now unused non-sensical af_fmt_seconds_to_bytes.
* Revert "ao_openal: enable building on OSX"Gravatar Michael Hoang2018-08-26
| | | | | | This reverts commit af6126adbe61fb2b6cc780025246d33df93072e6. Apple's OpenAL support is ridiculously out of date, revert back to just using OpenAL Soft on macOS (fixes #4645).
* vo_gpu: avoid overwriting compute shader block sizesGravatar Niklas Haas2018-08-26
| | | | | | | | | | 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.
* af_rubberband: reset delay to 0 on resetGravatar Hector Martin2018-08-25
| | | | This fixes A-V drift on seeking
* osdep: make use of HAVE_ANDROIDGravatar Tom Yan2018-08-20
|
* wscript: split egl-android from androidGravatar Tom Yan2018-08-20
|
* manpage: fix reference to --tone-mapping by old option nameGravatar Anton Kindestam2018-08-18
|
* ytdl_hook: always load ytdl:// links with ytdl_hook firstGravatar Ricardo Constantino2018-08-17
| | | | Suggested in IRC by sfan5.
* ao_opensles: set numBuffers to 8Gravatar Tom Yan2018-08-13
| | | | | | | | | | | | | | Apparently some Android builds/forks require this for Bluetooth audio to work as they unexpectedly accept fast flag for it. Shouldn't cause any side-effect (e.g. buffer requirement increased when on wired audio). It's a hardcoded default in the upstream AAudio implementation anyway. Ref.: https://android.googlesource.com/platform/frameworks/av/+/android-8.0.0_r1/media/libaaudio/src/legacy/AudioStreamTrack.cpp#109 https://android.googlesource.com/platform/frameworks/wilhelm/+/android-8.0.0_r1/src/android/AudioPlayer_to_android.cpp#1680 https://android.googlesource.com/platform/frameworks/av/+/android-8.0.0_r1/media/libaudioclient/AudioTrack.cpp#488
* demux_edl: add title option to override title of chaptersGravatar sfan52018-08-13
|
* player: expose hearing/visual impaired flags on audio tracksGravatar Aman Gupta2018-08-13
| | | | Signed-off-by: Aman Gupta <aman@tmm1.net>
* build: add --no-download option to bootstrap.pyGravatar Philip Sequeira2018-08-13
| | | | | | | With this option, the script will check that the expected waf version is present, but will simply fail if it's not, rather than trying to download it. This allows a package build script to avoid compile-time network access but still ensure it's using the right waf version.
* osx: Fix initialization and access of service menuGravatar Michael Hoang2018-08-11
| | | | | Replace dot syntax with accessor syntax so that clang no longer errors out due to not finding the property servicesMenu on NSApp.
* cocoa-cb: fix crash on macOS 10.10Gravatar Akemi2018-08-11
| | | | | | the colorspace of the layer is only available on 10.11 and upwards. Fixes #6041
* cocoa-cb: fix crash when no screen is availableGravatar Akemi2018-08-11
| | | | | | | | instead of force unwrapping and chaining the optional vars in our containsMouseLocation function, safely unwrap and guard the resulting var. Fixes #6062
* audio/format: decouple af_fmt_is_planar from af_fmt_to_planarGravatar Tom Yan2018-08-11
| | | | | 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.
* manpage: Correct show-text duration default valueGravatar jaseg2018-08-05
| | | 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.
* manpage: fix --vf exclamation mark descriptionGravatar pavelxdd2018-08-05
| | | | | An exclamation mark disables the filter by default instead of enabling it.
* ao_opensles: update interface-changesGravatar Tom Yan2018-08-05
|
* ao_opensles: rework the heuristic of buffer/enqueue size settingGravatar Tom Yan2018-08-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ao->device_buffer will only affect the enqueue size if the latter is not specified. In other word, its intended purpose will solely be setting/guarding the soft buffer size. This guarantees that the soft buffer size will be consistent no matter a specific enqueue size is set or not. (In the past it would drop to the default of the generic audio-buffer option.) opensles-frames-per-buffer has been renamed to opensles-frames-per -enqueue, as it was never purposed to set the soft buffer size. It will only make sure the size is never smaller than itself, just as before. opensles-buffer-size-in-ms is introduced to allow easy tuning of the relative (i.e. in time) soft buffer size (and enqueue size, unless the aforementioned option is set). As "device buffer" never really made sense in this AO, this option OVERRIDES audio-buffer whenever its value (including the default) is larger than 0. Setting opensl-buffer-size-in-ms to 1 allows you to equate the soft buffer size to the absolute enqueue size set with opensl-frames-per -enqueue conveniently (unless it is less than 1ms). When both are set to 0, audio-buffer will be the ultimate fallback. If audio-buffer is also 0, the AO errors out.
* ao_opensles: allow s32 and float outputGravatar Tom Yan2018-08-05
| | | | | OpenSLES (and its AudioTrack backend) in Android can take 32-bit fixed and floating point input since Android L (API 21).
* audio/format: minor fix for af_fmt_from_planarGravatar Tom Yan2018-08-05
| | | | See af_fmt_to_planar.
* stream_smb/stream_file: fix `write_buffer`Gravatar Yclept Nemo2018-07-29
| | | | | | | 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 issuesGravatar Yclept Nemo2018-07-29
| | | | | | | | | | | | | | | | 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
* ci: do bootstrap outside the docker containerGravatar Jan Ekström2018-07-29
| | | | | | | This way the docker container in itself does no networking. It seems like travis disabled network access from the actual docker containers.
* manpage: fixup mistaken show playlist/track-list shortcutsGravatar Daniel M. Capella2018-07-23
| | | | | This was mistaken in 496b13227b7f4b47a660bbf4e314f9a55b7e8867 and not noticed in review.
* Update VERSIONGravatar Martin Herkt2018-07-22
|
* Release 0.29.0Gravatar Martin Herkt2018-07-22
|
* wscript_build: apply project-wide CFLAGS/LDFLAGS to mpv.comGravatar Stephen Hutchinson2018-07-19
| | | | | | | 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/libGravatar Jan Ekström2018-07-19
| | | | | 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.9Gravatar Akemi2018-07-12
| | | | Among other things, fixes compatibility with python 3.7.x.
* build: utilize built-in gnu_dirs module for installation directoriesGravatar Akemi2018-07-12
| | | | | | | | | | | | | | | | | | | | | | 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 linkingGravatar Akemi2018-07-12
| | | | | | | | | | 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=drmGravatar Anton Kindestam2018-07-09
| | | | | | | | 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 atomicGravatar Anton Kindestam2018-07-09
| | | | | | | | | | 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.