| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Also change the example to crf=23. crf=32 is pretty bad quality, don't
give users bad usage ideas.
|
|
|
|
|
|
|
| |
Fixes chroma location for screenshots.
Also set the crop to full frame to not trip mp_image_params_equal check
if not necessary.
|
|
|
|
| |
It is useful information, not only for debugging.
|
|
|
|
| |
--screenshot-avif-pixfmt no longer defaults to yuv420p.
|
|
|
|
| |
This reverts commit 67aa5684379d42ad1e9b8cc66a04d63394e63994.
|
|
|
|
| |
This reverts commit 9d8dfc7b49380b8c03546ed4fad2385c42438a50.
|
| |
|
|
|
|
|
| |
Add ifndefs to define only when needed and remove some already defined
ones in mingw.
|
|
|
|
|
|
|
| |
While CEA-861 defines MP2 as 0x5 and MP3 as 0x4, the GUIDs defined in
ksmedia.h are in reverse order.
See: https://github.com/MicrosoftDocs/windows-driver-docs/pull/3742
|
|
|
|
|
|
|
|
|
|
| |
On practically all platforms and GUI toolkits, a triggered double click
event clears the mouse input buffer so that the next click won't
trigger another double click event. mpv doesn't do this, so a third click
results in another double click event.
Fix this by resetting the double click timer after a double click event
is triggered which achieves the same effect.
|
|
|
|
|
|
| |
modifier keys weren't reported when using the trackpad to scroll.
Fixes #11195
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the case the window was already set to a maximized size via geometry
or related options (100%x100%) the maximize function would try to
maximize the window again. this reset the position and slightly
increased the size further.
to prevent this only maximize on init if we really want to maximize. in
the reverse case make a noop call by passing the current zoom state.
Fixes #11193
|
|
|
|
|
|
|
| |
msys added xxhash has a makedep for libplacebo* which means we need to
install it in the CI as well if we want to build against it.
*: https://github.com/msys2/MINGW-packages/commit/07f4c34d22fda0284a1857ac5006d784fe058075
|
|
|
|
|
|
|
|
|
| |
ca2b05c0fb changed the window size with --force-window and no video
tracks to be closer to 16:9, but I don't see why we shouldn't have an
actual 16:9 ratio. The advantage is that subtitles with fullscreen and
no video tracks will have the same size and position (depending on the
values of --sub-scale-with-window and --sub-use-margins) as with 16:9
videos, because there will be no (invisible) black bars.
|
|
|
|
|
|
|
|
|
|
|
|
| |
As it is now, the FreeBSD CI is failing because meson can't find the
dvb headers.
FreeBSD puts the relevant headers into /usr/local which is bothersome
and in fact required a workaround to be added to the Wayland detection
already (3bdf702b1de8b0d0e0fb700b234b0fc69e04a630) but this should be
addressed by us adding the path to CFLAGS already.
With a more minimal example the detection works fine in my FreeBSD VM.
I'm at my wits end debugging this so just disable it for now.
|
|
|
|
|
|
|
| |
This was disabled by default in 99cef59fc9a (from 2017)
due to build issues with old kernel headers.
Whatever was considered old at that time will be ancient now
and with the last commit there should be no isses auto-detecting it.
|
| |
|
|
|
|
|
| |
It only ever had any real affect on windows so with the previous build
change, enabling it cannot work.
|
|
|
|
|
|
|
| |
See 1b035402a688a5d116a9014e8930d7863481eeed. This is only relevant if
you are using d3d11 on --vo=gpu which is windows-only. For all other
platforms, vulkan uses libplacebo which uses shaderc. mpv itself doesn't
need it in those cases.
|
|
|
|
|
|
|
|
| |
281b1d89994e3e3a9950d32fc451dff990c2320d introduced a stack use after
scope because dest_fbo can be reassigned a new pointer and then be used
by pass_draw_to_screen outside of that scope where the pointer is no
longer valid. Fix this by rearranging the variables so the assignment is
done in the same scope as the pass_draw_to_screen call instead.
|
|
|
|
|
|
| |
- don't use 4KiB stack array
- keep one bstr allocation for lifetime of the log
- avoid dummy strlen
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- read directly to bstr
- use talloc for OOM checks
- don't parent temporary allocation
- don't check for NULL buffer after already writting to it
|
|
|
|
| |
No longer needed after 079f67268f6f5a2ecfd12277b246b1937493c092.
|
|
|
|
| |
It makes no sense to force function call for simple check.
|
| |
|
| |
|
| |
|
|
|
|
| |
Make it easier on compiler, no need to alloca and copy things around.
|
|
|
|
|
|
|
| |
It's not actually related to libplacebo wrap stuff and the swift compile
command needs this to get the right libplacebo include path.
This reverts commit b9d392ecd9543aecdfd6e6a06aa2f9585950ac27.
|
|
|
|
|
|
|
| |
This is not needed since we removed the libplacebo wrap not too long
after this commit.
This reverts commit 4de76ce87a545cd86ef493129b4cfeafe10e8e98.
|
|
|
|
|
| |
486bb93dfa90bf948cff8d77ad685f54d0928531 removed the wrap which made
these specific options obsolete.
|
|
|
|
|
| |
meson is able to detect blocks of code that are guarded with version
checks, but we did that in reverse order and mpv.exe was complaining.
|
|
|
|
| |
Not needed anymore as package is updated.
|
|
|
|
|
| |
Hopefully for the last time. It will now be in ./build as one would
expect.
|
|
|
|
|
|
|
|
|
| |
Meson was pretty strict about target ids and generating the mpv.com in
the same directory as mpv.exe wasn't possible. So as a workaround we
tucked it away in a subdirectory, but that's not really intuitive at
all. Well as of meson 1.3.0, this is now possible so leverage it since
it makes way more sense. We still keep the old workaround for anyone
using older meson versions.
|
| |
|
|
|
|
|
| |
fix version determination when building mpv from release tarball
extracted within another git repository
|
|
|
|
|
| |
Closes #1484. The default size is smaller than the previous
--osd-border-size default value of 3 with the default --osd-bar-h.
|
|
|
|
|
| |
I don't know why I thought they did in 7798881360, but single quotes
disable escape sequences only in input.conf commands.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add --secondary-sub-delay option and decouple --sub-delay from secondary
subtitles. This produces desirable behavior in most cases as secondary
and primary subtitles tracks tend to be timed independently of one
another.
This feature is implemented by turning the sub_delay field in
mp_subtitle_opts into an array of 2 floats. From here the track index is
either passed around or derived when sub_delay is needed. There are some
cases in dec_sub.c where it is possible for dec_sub.order (equivalent to
track index) to be -1. In these cases, sub_delay is inferred as 0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The info provided for libva might be useful. Specifically on Windows it
seems to not use the error callback for what should be logged as error.
[ 0.080][v][vaapi] libva: VA-API version 1.20.0
[ 0.080][v][vaapi] libva: Trying to open <path>/vaon12_drv_video.dll
[ 0.080][v][vaapi] libva: va_openDriver() returns -1
[ 0.080][e][vaapi] Failed to initialize VAAPI: unknown libva error
As we can see only the "unknown" error is printed to the error callback
and important information is printed on the info callback. Print it to
verbose log to make it easier to find.
|
|
|
|
| |
ctx->destroy_native_ctx is guarded, but this early exit was not.
|
|
|
|
|
|
|
|
| |
the cocoa backend was removed and all functionality is either available
on all macOS backends or explicitly only with cocoa-cb. the manual
should properly reflect that change.
also remove the last mention of the old cocoa backend.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the title is updated on the main thread (mandatory with cocoa)
asynchronously, because otherwise it would either deadlock when done
synchronously, lead to undefined behaviour or just crashes. the problem
here is that the c string was only copied to an NSString within that
asynchronous call, which potentially would access the pointer when it
is accessed, modified or freed by another thread. it is only safe to
access this pointer as long as the control callback wasn't returned yet.
to fix this we move the copying and creation of the String from the
c string pointer outside of the asynchronous call where the conversion
of an untyped pointer to a typed pointer is done too. since the
resulting String is a copy it's safe to be used in the asynchronous
call.
also reverting ee6ad40, since the problem was most likely an SDK problem
or the very same problem as mentioned here. i retested the crash case
again und can't reproduce it anymore. using a swift String again instead
of an NSSstring.
Fixes #12935
|
|
|
|
|
|
|
|
|
|
|
| |
NSApp is only an Application when initialised from mpv itself. when used
via libmpv an Application is never initialised and mpv would always
immediately exit.
make the retrieval of the vo and mac options static so they can be
retrieved in all cases.
Fixes #12518
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- Don't define _GNU_SOURCE on Windows, no need
- Define WIN32_LEAN_AND_MEAN to strip some unneded headers from
windows.h
- Define NOMINMAX and _USE_MATH_DEFINES as they are common for Windows
headers
|
|
|
|
|
|
|
| |
It is defined automatically when needed, which is almost never we don't
support Windows XP.
See: https://github.com/mingw-w64/mingw-w64/commit/bfd33f6c0ec5e652cc9911857dd1492ece8d8383
|
|
|
|
| |
Requires SDL version 2.0.14.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
We prefer to fail fast rather than degrade in unpredictable ways.
The example in sub/ is particularly egregious because the code just
skips the work it's meant to do when an allocation fails.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR #12747 missed updating a variable declaration in
`ca_change_physical_format_sync`, which ultimately leads to the thread
crashing. The problem reproduces consistently on AS Macs (I don't have
an Intel Mac to test on anymore), and produces stack traces like the
following:
```
Thread 3 Crashed:: mpv
0 libsystem_kernel.dylib 0x18cebd11c __pthread_kill + 8
1 libsystem_pthread.dylib 0x18cef4cc0 pthread_kill + 288
2 libsystem_c.dylib 0x18ce04ad4 __abort + 136
3 libsystem_c.dylib 0x18cdf56c4 __stack_chk_fail + 96
4 mpv 0x1026b66d0 ca_change_physical_format_sync + 420
5 mpv 0x1026b3b70 init + 1052
6 mpv 0x1025c5afc ao_init + 332
7 mpv 0x1025c5bec ao_init + 572
8 mpv 0x1025c5830 ao_init_best + 1228
9 mpv 0x102622fac fill_audio_out_buffers + 1820
10 mpv 0x1026450d0 run_playloop + 132
11 mpv 0x10263f958 play_current_file + 5116
12 mpv 0x10263e4e8 mp_play_files + 452
13 mpv 0x102641308 mpv_main + 128
14 mpv 0x10269f520 playback_thread + 40
15 libsystem_pthread.dylib 0x18cef5034 _pthread_start + 136
16 libsystem_pthread.dylib 0x18ceefe3c thread_start + 8
```
Note that non-exclusive output seems to be unaffected. To reproduce
this problem (and/or test this fix), pass `--audio-exclusive=yes` to
mpv.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
$ meson setup --auto-features=disabled -Ddrm=enabled -Degl=enabled -Dgbm=enabled -Degl-drm=enabled /tmp/mpv_build
$ meson compile -C /tmp/mpv_build
[...]
ld: error: undefined symbol: mp_present_initialize
>>> referenced by drm_common.c
>>> libmpv.so.2.2.0.p/video_out_drm_common.c.o:(vo_drm_init)
ld: error: undefined symbol: present_sync_update_values
>>> referenced by drm_common.c
>>> libmpv.so.2.2.0.p/video_out_drm_common.c.o:(drm_pflip_cb)
ld: error: undefined symbol: present_sync_swap
>>> referenced by drm_common.c
>>> libmpv.so.2.2.0.p/video_out_drm_common.c.o:(drm_pflip_cb)
ld: error: undefined symbol: present_sync_get_info
>>> referenced by vo_drm.c
>>> libmpv.so.2.2.0.p/video_out_vo_drm.c.o:(get_vsync)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This property was never encouraged. The manual even stated that "You
should avoid using it, unless you absolutely have to." Since we now have
user-data which is superior in every single way and replaces this,
delete this property. The manual also has threatened people for years
with the line "It's a makeshift solution which could go away any time
(for example, when a better solution becomes available)." We were nice
and deprecated it in 1d00aee8e191c9689a20e67e3d6dfd2af6ad2588 for a
while to give script authors some time to update. Let's remove it for
good now.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This mostly is added to resolve player command synchronization with VO
thread discussed in 477a0f83.
The current uses does not necessarily need this as they are all managed
by playloop. But for future use with other params that will be handy.
Those params are mostly to observe current state of VO and does not
necessarly need to be locked along with frame drawing, that changes the
params once at the end.
|
|
|
|
|
|
|
|
|
|
|
| |
Only vaapi-copy variant as nothing can map D3D12 resources currently.
And even if we would add resource sharing to D3D11 it would invoke copy
at some point, so there is no point really. Maybe in the future when
libplacebo get smarter about resource sharing on Windows, but practical
advantages are really small. I've tested it with Vulkan <-> D3D11
sharing and GPU <-> GPU copy is still invoked. Better than CPU memcpy,
something for the future.
|
|
|
|
| |
Useful for logging
|
|
|
|
| |
To be able to reuse them in other parts of code.
|
|
|
|
| |
There is nothing d3d11 about those adapters.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Up to 2x playback rate is the most we can offer currently. Should work
fine for most kernels with radius <= 2.
This avoids limitation of hwdecs number of frames in-fl |