aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vo_gpu: vulkan: fix strncpy truncation in spirv_compiler_initGravatar BtbN2018-10-21
| | | | | | Fixes GCC8 warning ../video/out/gpu/spirv.c: In function 'spirv_compiler_init': ../video/out/gpu/spirv.c:68:9: warning: 'strncpy' specified bound 32 equals destination size [-Wstringop-truncation]
* x11: fix icc profile when the window goes near off screenGravatar slatchurie2018-10-21
| | | | | | | | On a multi monitor setup, when the center of the window was going off screen, the icc profile would always switch to the profile of the first screen. This fixes the issue by defaulting the value to the current screen.
* vo_gpu: vulkan: fix the buffer size on partial uploadGravatar Niklas Haas2018-10-19
| | | | | | | | | | | This was pased on the texture height, which was a mistake. In some cases it could exceed the actual size of the buffer, leading to a vulkan API error. This didn't seem to cause any problems in practice, since a too-large synchronization is just bad for performance and shouldn't do any harm internally, but either way, it was still undefined behavior to submit a barrier outside of the buffer size. Fix the calculation, thus fixing this issue.
* vo_gpu: split --linear-scaling into two separate optionsGravatar Niklas Haas2018-10-19
| | | | | | | | | | | | | | | | | | Since linear downscaling makes sense to handle independently from linear/sigmoid upscaling, we split this option up. Now, linear-downscaling is its own option that only controls linearization when downscaling and nothing more. Likewise, linear-upscaling / sigmoid-upscaling are two mutually exclusive options (the latter overriding the former) that apply only to upscaling and no longer implicitly enable linear light downscaling as well. The old behavior was very confusing, as evidenced by issues such as #6213. The current behavior should make much more sense, and only minimally breaks backwards compatibility (since using linear-scaling directly was very uncommon - most users got this for free as part of gpu-hq and relied only on that). Closes #6213.
* x11_common: replace atoi with strtoulGravatar Nicolas F2018-10-19
| | | | | | Using strtol and strtoul is allegedly better practice, and I'm going for strtoul here because I'm pretty sure X11 displays cannot be in the negative.
* vo_gpu: opengl: fix segfault when gl->DeleteSync is unavailableGravatar Niklas Haas2018-10-16
| | | | | | | This deinit code was never checked, so this line would always crash on implementations without support for sync objects. Fixes #6197.
* man: mention stats in interactive controlGravatar Nicolas F2018-10-14
| | | | | | | Someone on IRC pointed out that the default stats bindings weren't documented in the interactive control section of the manual, so let's add them with a short mention and a reference to the STATS section of the manual.
* cocoa-cb: fix side by side Split ViewGravatar Akemi2018-10-02
| | | | | | | | | | 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.
* {mac,cocoa}: trim trailing null out of macosx_icon when loading itGravatar Rodger Combs2018-10-02
| | | | | | This prevents crashes when loading the application icon image. Suggested-by: Akemi <der.richter@gmx.de>
* mac: fix crash if we can't get an event tapGravatar Rodger Combs2018-10-02
| | | | | | | | 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.
* encode: simplify encode_lavc_add_packetGravatar Jan Ekström2018-10-01
| | | | | We're doing the same thing as the primary path - just that we log and set 'failed' to true.
* encode: fix AVPacket deinitialization logicGravatar Niklas Haas2018-10-01
| | | | | | | | | | | 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.
* stats: show file formatGravatar wm42018-10-01
| | | | Useful in particular with ytdl, where you never know what you get.
* demux_lavf: hack-fix EDL mp4 DASH hackGravatar wm42018-10-01
| | | | | | | | | | | | | | 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.
* stream_libarchive: fix hangs when demuxer does out of bound seeksGravatar wm42018-10-01
| | | | | | | | | | | | | 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.
* rendezvous: fix a typoGravatar wm42018-10-01
|
* demux: allow cache sizes > 2GBGravatar wm42018-10-01
| | | | | There was no reason to limit this. Only some int fields had to be changed to size_t.
* demux_lavf: v4l streams are not seekableGravatar wm42018-10-01
| | | | | | | 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.
* ao_audiounit: rename pause function to resetGravatar Josh Lehman2018-09-30
| | | | | AudioUnit output driver uses the pull based api so it should have a reset function instead of a pause function.
* cocoa-cb: add Apple Software Renderer supportGravatar Akemi2018-09-30
| | | | | | 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.
* cocoa-cb: move macOS option retrieval to the earliest point possibleGravatar Akemi2018-09-30
| | | | | | | 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.
* add swift as main dependency so all dependencies can be disabled easilyGravatar Akemi2018-09-30
|
* build: check for Swift version and disable dependencies if neededGravatar Akemi2018-09-30
|
* Improve readme aesthetics.Gravatar Aman2018-09-30
| | | | | This fixes the line under the header, creates a title header, and slightly improves list formatting.
* drm_atomic: Allow to create atomic context w/o drmprime video planeGravatar Anton Kindestam2018-09-30
| | | | | | | | | | | | | | | 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.
* manpage: minor fix to --drm-formatGravatar Anton Kindestam2018-09-30
| | | | Looking at other examples, a bar should be used when listing OPT_CHOICE options.
* 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