summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vo_gpu_next: support mapping HDR10+ dynamic metadataNiklas Haas2023-02-131-0/+19
| | | | | | | Based on the new upstream helper function `pl_map_hdr_metadata` and the existing AV_FRAME_DATA_DYNAMIC_HDR_PLUS. This allows us to use SMPTE 2094-40 dynamic HDR tonemapping in mpv, albeit with the limitation of requiring `--tone-mapping=auto` in order to pick this curve upstream.
* ao_pipewire: allow usage of global volume controlThomas Weißschuh2023-02-112-5/+34
| | | | | | | | | | | | | PipeWire supports a global volume control for streams that works on top of the per-channel volumes. As mpv only supports a single volume with ao-volume it can make sense to use the single global volume from PipeWire for it. This allows the user to also specify per-channel volumes and not have mpv trample over them. This mode is not the default as pulseaudio does not support this global volume control and all tooling controlling PipeWire via pipewire-pulse (like pavucontrol) will not be able to see this channel.
* command: only avoid redrawing when old and new osd are both hiddenChristoph Heinrich2023-02-111-5/+5
| | | | | | | The `osd-overlay` command didn't trigger a redraw when the overlay was set to hidden. This is fine when the overlay was already hidden before that, but transitioning from not hidden to hidden requires a redraw.
* DOCS/options: remove testing note in video-sync-max-factorDudemanguy2023-02-111-3/+0
| | | | | | | This option is a bit obscure, but some people do use it and it can be useful. The actual code that implements this is very simple, so there's really no need to have a scary note in the docs about it possibly changing or being removed.
* vf_sub: undeprecateDudemanguy2023-02-112-2/+1
| | | | | | | | | | 3a9e661e929c34d25810fa903abbd9961f73ecef officially made this video filter deprecated roughly 6 years ago. Every other video filter in that commit has actually been removed since then except for vf_sub. ffmpeg does have its own subtitles filter, but it doesn't have the same control over scale like vf_sub does. That's probably why wm4 never actually removed it. Let's stop scaring users with a warning since this filter probably won't ever get removed. Closes #9254.
* vo_dmabuf_wayland: reject hw formats not supported by compositorAaron Boxer2023-02-1110-33/+78
|
* video/image_writer: change screenshot-tag-colorspace default to yesLeo Izen2023-02-093-2/+3
| | | | | | With significant improvements to the color tagging support in various screenshot formats, e.g. cICP in FFmpeg, and JPEG XL's generally robust color support, it's safe to default this to yes.
* vo_dmabuf_wayland: add purgatory list to buffer pool to avoid memory leaksAaron Boxer2023-02-053-65/+114
|
* vo_dmabuf_wayland: ensure buffer pool is cleaned at start of uninitAaron Boxer2023-02-051-1/+1
|
* vo_dmabuf_wayland: simplify buffer pool resetAaron Boxer2023-02-051-12/+9
|
* vo_dmabuf_wayland: only resize when a new frame is about to be drawnAaron Boxer2023-02-051-4/+12
|
* DOCS/input: remove experimental note from sub-textMax Dunbar2023-02-051-4/+0
|
* ao_pipewire: report linking errors from init()Thomas Weißschuh2023-02-031-0/+45
|
* ao_pipewire: add support for exclusive modeThomas Weißschuh2023-02-032-4/+7
|
* ao_pipewire: move stream flags to dedicated variableThomas Weißschuh2023-02-031-6/+6
|
* ao_pipewire: adjust message level based on probingThomas Weißschuh2023-02-031-2/+3
| | | | | | | Use the ao->probing property to upgrade the status message when the AO is explicitly selected. Suggested-by: uau on #mpv-devel
* f_hwtransfer: fix leak of framesconstraintsThomas Weißschuh2023-02-031-0/+1
|
* image_pool: properly free framesThomas Weißschuh2023-02-031-2/+2
| | | | av_frame_unref() only frees the buffers, not the frame data itself.
* ao_pipewire: remove unneeded gotoThomas Weißschuh2023-02-031-2/+2
|
* ao_pipewire: replace opencoded talloc()Thomas Weißschuh2023-02-031-1/+1
|
* ao_pipewire: print stream states as stringThomas Weißschuh2023-02-031-1/+2
|
* ao_pipewire: remove unnecessary empty linesThomas Weißschuh2023-02-031-3/+0
|
* ao_pipewire: remove opencoded spa_zero()Thomas Weißschuh2023-02-031-1/+1
|
* ao_pipewire: remove some unnecessary linebreaksThomas Weißschuh2023-02-031-7/+2
|
* ao_pipewire: reduce message level of unsuccessful connectionThomas Weißschuh2023-02-031-2/+2
| | | | | | | As ao_pipewire is probed first if a user does not have PipeWire running they will see a scary warning message even if another AO afterwards is probed fine. Tone down the error message so as not to confuse users.
* ao_pipewire: remove unnecessary bracesThomas Weißschuh2023-02-031-4/+2
|
* sws_utils: add check for HAVE_ZIMG to suppress warningsKacper Michajłow2023-02-021-0/+5
|
* vo_gpu_next: add check for PL_HAVE_LCMSKacper Michajłow2023-02-021-1/+1
|
* hwdec_cuda: fix enum type for semaphoreKacper Michajłow2023-02-021-4/+4
|
* vo_d3d11: do not call MAKEINTRESOURCEW twiceKacper Michajłow2023-02-021-1/+1
|
* osdep/io: add void to mp_penvironKacper Michajłow2023-02-021-1/+1
|
* demux: remove unused codeKacper Michajłow2023-02-021-4/+0
|
* ao_lavc: remove unused codeKacper Michajłow2023-02-021-10/+0
|
* osdep: add MP_FALLTHROUGHKacper Michajłow2023-02-024-3/+5
|
* libplacebo: fix enum type castKacper Michajłow2023-02-021-4/+4
|
* stats.lua: display HDR peak in nitsdyphire2023-02-021-1/+1
| | | | | | | | The value of `sig-peak` is relative to the SDR peak. This is not a problem when used inside the player, but the `HDR peak` in stats should display human-readable information. So change to return the actual nits value of HDR. Closed https://github.com/mpv-player/mpv/issues/10127
* meson: move vector check inside of meson.buildDudemanguy2023-02-022-7/+5
| | | | | It's three lines. There's no real reason to have this as a separate file when we've removed every other compile check sourced from outside files.
* meson: check macos touchbar with has_headerDudemanguy2023-02-021-2/+2
|
* meson: check pthread provider with has_functionDudemanguy2023-02-024-27/+10
| | | | | Previously, we did this doing code fragments, but we can be a bit more clever and use has_function as well as the platform we're on.
* video/image_writer: avoid stripping colorspace info when writing imageLeo Izen2023-01-311-0/+1
| | | | | | | | | | | | | Writing an image either with vo_image or with a screenshot will strip the colorspace info because it allocates a new mp_image that contains the same data as the old image after calling mp_image_params_guess_csp. However, mp_image_params_guess_csp cannot always guess the appropriate colorspace, so it picks a "sane default." Since this function also changes parameters so the space always makes sense, this extra info isn't harmful and allows screenshots and vo_image outs to be properly tagged with the correct colorspace. Fixes #10988.
* stream: accept webdav:// and webdavs:// urlsAlby2023-01-312-2/+10
| | | | | | Treat them as http:// and https:// respectively. This allows to play files on webdav archives directly on KDE, avoiding the (extremely slow) local copying performed by kio.
* ci: pack mingw64 meson build instead of wafKacper Michajłow2023-01-312-3/+3
|
* ci: separate meson/waf build dirsKacper Michajłow2023-01-315-10/+15
|
* ci: use meson compile instead of ninja directlyKacper Michajłow2023-01-311-1/+1
|
* ci: do not print compile commandsKacper Michajłow2023-01-313-6/+6
| | | | It only shadows warnings/errors and makes log files bloated.
* meson: replace check_header with has_headerDudemanguy2023-01-311-2/+2
| | | | | | | | It turns out that there's a has_header check, and we should actually be using that instead. We only care here if the header actually exists so the pre-processor check is all that is needed. check_header depends on what arguments the user passes among other things. That makes it more complicated than necessary for our purposes.
* meson: actually use -Werror=format-securityDudemanguy2023-01-311-1/+1
| | | | | | We tested for this flag, but never added -Wformat in addition to -Werror=format-security. The latter was silently ignored and actually did nothing.
* hwdec/vaapi: zero-initialize VADRMPRIMESurfaceDescriptorDudemanguy2023-01-301-1/+1
| | | | | Otherwise, desc can contain garbage values and segfault trying to close file descriptors that aren't actually there. Fixes #11239.
* player/video.c: don't resync audio if video is an imageStratusFearMe212023-01-301-1/+1
|
* vo_lavc: set frame rate on encoder; fixes #11215rcombs2023-01-291-0/+11
| | | | ffmpeg was internally defaulting to 24000fps, which resulted in encoders selecting inappropriate levels and making poor ratecontrol decisions.
* wayland: add auto choice to wayland-configure-boundsDudemanguy2023-01-302-6/+16
| | | | | | | | | | | Previously, this defaulted to yes and configure-bounds from the compositor would always apply. In the case where the user explicitly set autofit or geometry, this could be confusing because configure-bounds would take precedence over it. Instead, let's add an auto choice and make that the default. If we detect that the option is on auto and that there is autofit/geometry being set, then ignore the event. This should be more intuitive since someone who bothers to explicitly set mpv's geometry would naturally expect that geometry to actually apply.
* wayland: handle runtime hidpi-window-scale changes correctlyDudemanguy2023-01-301-6/+2
| | | | | | | | | | | Semi-regression although this option never really did what the manual said until recently. In the past, this option also controlled whether or not mpv set the wayland buffer_scale to the value of the wl_output or force it 1. This had varying effects depending on the exact compositor configuration. That logic has now all been removed and this option now only controls whether or not to scale the window with the hidpi scale factor we get from the compositor. i.e. it actually does what the manual says now.
* wayland: unbreak runtime geometry/autofit changesDudemanguy2023-01-301-12/+15
| | | | | | | | Regressed from 879824a47f50f7e93f85992c92d03f37129605f4. The geometry needs to be explictly recalculated now. Change up this function a little bit also give it the ability to directly perform a resize after the fact. This is a common workflow and we'll be using it in the next commit.
* lua/js: remove user-data helpersAvi Halachmi (:avih)2023-01-295-81/+0
| | | | | | | | | | | | | | | This reverts: 3fb4140c lua/defaults: add user_data helpers 68a20e7a javascript/defaults: add user_data helpers 00510379 lua/js: fix user_data_del util function As well as the lua/js parts of: 3ec2a098 docs: document new user-data property user-data and its sub-properties can be set/get/observed/deleted via the standard properties interface, so there's no need for additional helpers specific to user-data, which only added maintenance burden.
* lua/js: fix user_data_del util functionrcombs2023-01-282-2/+2
|
* doc: correct spelling of user-data/user_data JS/lua helpersrcombs2023-01-282-16/+16
|
* docs: document new user-data propertyrcombs2023-01-283-0/+56
|
* javascript/defaults: add user_data helpersrcombs2023-01-281-0/+24
|
* lua/defaults: add user_data helpersrcombs2023-01-281-0/+19
|
* player/command: add user-data propertyrcombs2023-01-281-0/+171
| | | | | | This will replace shared-script-properties in new usage. It can be used for all the same things, but is much more versatile. Clients can create arbitrary sub-objects, and text expansion can access them. For instance, if a script sets `user-data/my-script/property1` to "test", that value will be available by expanding ${user-data/my-script/property1}.
* javascript: add mp.del_property()rcombs2023-01-282-0/+10
|
* lua: add mp.del_property()rcombs2023-01-282-0/+15
|
* libmpv: add mpv_del_property() convenience functionrcombs2023-01-283-1/+18
|
* player/command: add "del" commandrcombs2023-01-282-0/+27
|
* m_property: add M_PROPERTY_DELETErcombs2023-01-281-0/+5
|
* player/client: support observing sub-propertiesrcombs2023-01-281-1/+26
| | | | This notifies if either a descendent or ancestor of the requested path is modified.
* options/m_option: support duplicating MPV_FORMAT_BYTE_ARRAY nodesrcombs2023-01-281-0/+10
|
* misc/node: add bstr-based variants for map_get() and map_add()rcombs2023-01-282-2/+16
|
* misc/json: don't wrap top-level pretty strings/infs in quotesrcombs2023-01-281-2/+5
| | | | This makes pretty-printing nodes substantially more friendly.
* DOCS: Add missing 'not'Oxan van Leeuwen2023-01-281-2/+2
|
* hwdec_vaapi: close file descriptors even if surface export failsAaron Boxer2023-01-281-0/+7
| | | | otherwise they can leak
* vo_dmabuf_wayland: close file handles when surface export failsAaron Boxer2023-01-281-2/+9
| | | | file handles may still be opened despite failure
* vo_dmabuf_wayland: plug leaking file descriptor from solid buffer poolAaron Boxer2023-01-281-0/+1
|
* DOCS/compile-windows.md: update MSYS2 packagesKacper Michajłow2023-01-281-2/+2
|
* test/repack.c: skip tests that exceeded maximum allowed ZIMG dimensionKacper Michajłow2023-01-281-12/+27
| | | | Fixes tests on 32-bit platforms
* meson: add missing library dep for egl_angle_lib checkKacper Michajłow2023-01-281-0/+5
|
* vo_opengl/angle_dynamic: simplify symbol renaming to make it more ↵Kacper Michajłow2023-01-283-10/+5
| | | | straightforward
* waf: migrate to version.pyKacper Michajłow2023-01-283-77/+7
| | | | Fixes https://github.com/mpv-player/mpv-build/issues/204
* ci: migrate MSYS2 build to GitHub ActionsKacper Michajłow2023-01-285-116/+120
|
* wscript: remove MSVC from compiler lookupKacper Michajłow2023-01-281-0/+3
| | | | | MSVC is not supported and waf doesn't respect CC environment value like any sane buildsystem.
* meson: reuse libmpv objects for cplayerThomas Weißschuh2023-01-261-10/+13
| | | | | | | When building both cplayer and libmpv in the same build previously all sources were built twice. By reusing the objects from libmpv in cplayer we can thus save 50% percent of the build steps.
* ao_pipewire: align thread name with general conventionsThomas Weißschuh2023-01-251-1/+1
|
* audio: simplify implementation of property ao-volumeThomas Weißschuh2023-01-2510-81/+42
| | | | | | | | | | | | | | ao-volume is represented in the code with a `struct ao_control_vol_t` which contains volumes for two channels, left and right. However the code implementing this property in command.c never treats these values individually. They are always averaged together. On the other hand the code in the AOs handling these values also has to handle the case where *not* exactly two channels are handled. So let's remove the `struct ao_control_vol_t` and replace it with a simple float. This makes the semantics clear to AO authors and allows us to drop some code from the AOs and command.c.
* stream/dvb: remove some unused variablesDudemanguy2023-01-241-3/+0
| | | | Missed in b6b83805183618f3a46f2cc77d85dcff72ef6396.
* x11: remove PresentNotifyMSC from egl/glx/vulkan to fix xpresent timingSultan Alsawaf2023-01-253-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PresentNotifyMSC turns out to be not only redundant, but also harmful with mesa-backed egl/glx/vulkan VOs because for all of them, mesa uses PresentPixmap behind the scenes when DRI3 is available, which already spawns a PresentCompleteNotify event when the buffer swap actually finishes. This is important because without using the timing information from these PresentCompleteKindPixmap events, there's no way for mpv to know exactly when a frame becomes visible on the display. By using PresentNotifyMSC in conjunction with DRI3-enabled mesa, two problems are created: 1. mpv assumes that a vblank won't elapse (i.e., it assumes the current MSC won't change) between the time when mesa enqueues the buffer swap and the time when mpv calls PresentNotifyMSC to ask xorg for a notification at the next MSC, relative to the current MSC at the time that xorg reads it for the PresentNotifyMSC call. This means that mpv could get a notification one or more vblanks later than it expects, since the intention here is for mpv to get a notification at the MSC that the buffer swap completes. 2. mpv assumes that a buffer swap always takes one vblank to complete, which isn't always true. A buffer swap (i.e., a page flip) could take longer than that depending on hardware conditions (if the GPU is running slowly or needs to exit a low-power state), scheduling delays (under heavy system or GPU load), or unfortunate timing (if the raster scan line happens to be at one of the last fe