summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* hwdec_drmprime: try and declare support for weird forked ffmpeg formatsPhilip Langdale2023-12-151-0/+21
| | | | | | | | | | | | | | | | | | | As a result of the work I did the explicitly check for formats supported by the vo in the f_autoconvert logic, I introduced a regression in the handling of the rpi4_8 and rpi4_10 formats. These require special handling because they only exist in the rpi forks and not upstream ffmpeg, which means they don't have stable pix fmt values that we can use directly. Previously, we simply didn't declare them as supported, which was ok, as nothing was really enforcing the list of supported formats, but that has changed. As we still can't simply use the pix fmts, I had to do a slightly ridiculous dance to look them up by name, and if they exist, then register them as supported. Good times.
* hwtransfer: actually treat hardware formats as supported input formatsPhilip Langdale2023-12-151-3/+5
| | | | | | | | | | | | | It's conceptually broken for an hw format to be identified as a supported sw format for an hwdec, but in the case of the drm hwdec, we have no choice but to do so for the weird rpi formats, as these are declared, incorrectly, as hw formats in their forked ffmpegs. This means we can't reject such formats as a matter of principle, as we do today. Instead let's just assume that such formats can always be accepted as-is, and will never require conversion. In practice, this is either true or it will fail in the VO, which is the old behaviour from before I introduced the conversion filter capability.
* w32_common: remove executable bit from fileDudemanguy2023-12-151-0/+0
| | | | | 57367377505b6b2edc87004fa3192d831d515aa5 mistakenly changed the mode from 644 to 755. Change it back.
* mac: add support for drag-and-drop optionder richter2023-12-154-3/+17
|
* console.lua: clear the suggestions when you move the cursorGuido Cella2023-12-151-0/+12
| | | | | | | | | | | Clear completion suggestions from functions that move the cursor, so that you can't insert suggestions at the wrong spot by pressing Tab again after moving the cursor, Also clear suggestions from some editing functions that were never updated. It is not actually necessary to clear suggestions from functions that remove text in front of the cursor, but since handle_del() already clears them, let's just clear them everywhere.
* console.lua: complete current-tracks sub-propertiesGuido Cella2023-12-151-6/+8
| | | | | | Also inline option-info's sub-properties so we don't have to define sub-properties at the top of the function for every one we decide to complete.
* console.lua: implement case-insensitive completionGuido Cella2023-12-152-16/+63
| | | | | | This is useful for completing files and more rarely for profiles. It will also be useful to third-party scripts interacting with the console once the API to do it is merged.
* mac: add support for window-id propertyder richter2023-12-151-0/+7
| | | | returns the NSWindow
* demux/codec_tags: add jxl/jpegxl extension mapping to image codecsLeo Izen2023-12-141-0/+1
| | | | | | Add .jxl as a file extension that maps to an image codec. Note that this will include animated JXL files, but .gif is also on that list so they are not different in that regard.
* options: add --secondary-sub-poskarelrooted2023-12-1310-16/+32
| | | | The default value is 0 (on the top of the screen)
* Revert "OSC: Remove merriment"Niklas Haas2023-12-132-0/+26
| | | | | This reverts commit af2635d8c9389504cb0b07a78f3999096d80a1ab, and restores feature parity with VLC.
* OSC: Remove merrimentMia Herkt2023-12-132-26/+0
| | | | | | | | | | | | | I honestly don’t care either way but I also don’t believe this innocent and cute hat is worth repeatedly having people show up on the issue tracker to aggressively virtue signal and then shit-talk the project elsewhere when their “concerns” are ignored and made fun of. For the record, I approve of neither brand of childish nonsense. If your workflow depends on December festivities, feel free to use an alternative OSC implementation. Fixes #13082 and #9548
* playlist: correctly populate playlist-path with the --playlist optionDudemanguy2023-12-132-1/+1
| | | | | | | | | | When using the --playlist option on the commandline, it would mark all entries on the command as having the playlist-path of the value of that passed option, not just the ones that were expanded from it. Fix this by moving the playlist_populate_playlist_path to the same place where the playlist file gets expanded. Ref https://github.com/mpv-player/mpv/issues/13075#issuecomment-1852179164
* github/issue_template: unify spellingsnanahi2023-12-121-1/+1
| | | | "behavior" is written in US English form in all templates except here.
* github/issue_template: request uploading attachments to githubnanahi2023-12-127-30/+30
| | | | | | | | | https://0x0.st/ has a maximum retention period of 1 year, and much less for larger files. Uploading them directly to github issue avoids this, which most people are already doing anyway because of greater convenience. log file: don't request 0x0.st. sample files: recommend github first.
* github/issue_template: unify requested information across templatesnanahi2023-12-125-8/+25
| | | | | | | | | | | Add more and unify requested information: windows, linux, others: request GPU model to provide more info about known hardware limitations and hardware/driver combo bugs. windows, others: request general GPU info. build: request meson version. windows, linux, others: request backtrace in case of crash. all: clarify the language of not attaching a log file.
* sub: don't busy loop if the player is paused for cacheDudemanguy2023-12-121-1/+2
| | | | | | | | | When updating subtitles while paused, mpv waits until a packet is available. However in the case of a network stream, it is possible that mpv will pause itself when buffering for cache reasons. This makes that particular loop do a busy loop and can take a long time depending on network streams. Simply just don't do the loop here if we are paused for cache reasons. Fixes #13077.
* etc/mpv.desktop: add audio/vnd.wave and video/vnd.aviVonfry2023-12-121-1/+1
|
* w32_common: rename some camelCase struct member names to snake_casenanahi2023-12-101-9/+9
|
* win32: temporarily disable aero shake while dragging hack is activenanahi2023-12-101-0/+10
| | | | | | | The dragging hack can cause unwanted aero shake activation. Prevent this by saving the window arrangement state before dragging, temporarily disable it while dragging hack is active, and restore to the original state after dragging ends.
* win32: stop fullscreen window from moving while dragging hack is activenanahi2023-12-101-3/+17
| | | | | | | | | | | | | | | | | | | | | The mouse down handler checks w32->current_fs to determine whether to begin the dragging hack. Unfortunately, the w32->current_fs value is stale, because the input is handled asynchronously, and we cannot wait for an up-to-date value if dragging needs to be kept resonsive. As a result, when the fullscreen state changes after the dragging model loop is entered, the opposite value is used, so the window stays draggable after entering fullscreen, and becomes undraggable after exiting fullscreen. With the resonsiveness and model loop constraints, the up-to-date state must be queried inside WM_MOVING messages which are sent while dragging. The message handler now checks if the dragging hack is active while the window is in fullscreen, and overrides the new window position with the current one, in effect prevents the window from being moved. The old check is also removed, so the window is now draggable after exiting fullscreen while dragging hack is active.
* x11_common: fix compose key handlingnanahi2023-12-101-1/+3
| | | | | | | | | | | Compose key doesn't function in X11 because XFilterEvent() isn't called, and XNInputStyle is set to a wrong value. This results in KeyPress events for the separate keyboard inputs in the compose key input sequence instead of the composed character, making it impossible to input certain characters which require compose key. Fix this by calling the required XFilterEvent() and set XNInputStyle to the correct value.
* filter_sdh: add full width parentheses to the enclosures stringDudemanguy2023-12-083-9/+12
| | | | | Since these are technically parentheses, we'll treat them the same way as normal parenthesis. Fixes #11155.
* filter_sdh: add --sub-filter-sdh-enclosures optionDudemanguy2023-12-085-12/+80
| | | | | | | | | | | This filter is a bit complicated, but one of the essential parts of it is removing text enclosed by particular set of characters (e.g. text inbetween []). This was previously hardcoded to only take into account parenthesis and brackets, but people may want to filter more things so make this customizable. The option only takes "left hand characters" so the right pair is mapped internally if applicable. If not, then we just use the same character. Fixes #8268 since the unicode character in question can just be passed to this option.
* filter_sdh: combine skip_bracketed and skip_parenthesizedDudemanguy2023-12-081-67/+28
| | | | | | | | | | These two functions are almost exactly the same. The parenthesis variant is essentially just a special case with more conditions to not remove text. These can easily be combined together into one generic skip_enclosed function to handle both cases. We also use char * instead of char for the character comparison here since not everything is neccesarily 1 byte and can fit into a char. This will be useful for the following commits where we extend this logic further.
* player/command: make new overlay-add arguments actually optionalsfan52023-12-081-2/+2
| | | | fixes: 4754bd54c7ab22c6c98283d81e22d219b3b64ade
* player/command: add ability to scale overlayGraham Booker2023-12-083-5/+20
|
* console.lua: cycle through completionsGuido Cella2023-12-062-19/+60
|
* console: automatically determine the font_hw_ratioChristoph Heinrich2023-12-062-3/+79
| | | | | | | | | | | A simplified version of the text width estimation code from uosc. An osd_overlay is created with compute_bounds=true for measuring the width of the lower case alphabet at what's estimated to be the largest font size possible without clipping. The lower case alphabet was chosen to get decent results for proportional fonts, even if they aren't officially supported.
* DOCS/interface-changes: document renaming of MP_KEY_BACKnanahi2023-12-061-0/+1
| | | | The navigation key is renamed to avoid conflict with MP_KEY_FORWARD.
* win32: properly handle WM_XBUTTONUP and WM_XBUTTONDOWNnanahi2023-12-062-2/+4
| | | | | | | | | | | | | | | | According to MS documentation, an application should return TRUE from WM_XBUTTONUP and WM_XBUTTONDOWN if it processes these messages. DefWindowProc generates the WM_APPCOMMAND message when it processes the WM_XBUTTONUP message, so if an application properly handles WM_XBUTTONUP messages, extra WM_APPCOMMAND messages won't be generated. Because mpv doesn't properly handle these messages, WM_XBUTTONUP causes APPCOMMAND_BROWSER_BACKWARD to be generated, resulting in duplicated keys and improper fix 438ead7a, which prevents the processing of the appcommand from sources other than mouse clicks. Fix this by following the documentation, and the back and forward appcommands can be added.
* input: add missing forward media keynanahi2023-12-064-7/+11
| | | | | | | | | XF86Back and XF86Forward are mostly used to navigate file and web browsers to go back/forward in history. XF86Forward isn't recognized right now, so add it. Because XF86AudioForward already takes the "FORWARD" name, rename the browse keys to GO_BACK and GO_FORWARD instead.
* console.lua: simplify the condition to print to the terminalGuido Cella2023-12-061-8/+3
| | | | | This was a simpler fix to not print the console log to the OSD while switching VO.
* m_option: respect pathlist seperator when printingllyyr2023-12-041-1/+2
| | | | Apparently we never did this
* mpv.desktop: add keywordsMateusz Łukasik2023-12-041-0/+1
|
* image_writer: default to lossless AVIF screenshotsKacper Michajłow2023-12-043-5/+5
| | | | | Also change the example to crf=23. crf=32 is pretty bad quality, don't give users bad usage ideas.
* image_writer: add missing mp_image_params in convert_imageKacper Michajłow2023-12-041-0/+2
| | | | | | | Fixes chroma location for screenshots. Also set the crop to full frame to not trip mp_image_params_equal check if not necessary.
* image_writer: print screenshot format in verbose logKacper Michajłow2023-12-041-2/+2
| | | | It is useful information, not only for debugging.
* image_writer: use common format selection for AVIF screenshotsKacper Michajłow2023-12-043-5/+5
| | | | --screenshot-avif-pixfmt no longer defaults to yuv420p.
* Revert "github/workflows: install xxhash on msys2"Kacper Michajłow2023-12-041-1/+0
| | | | This reverts commit 67aa5684379d42ad1e9b8cc66a04d63394e63994.
* Revert "ci/mingw: use vulkan-loader v1.3.266"Kacper Michajłow2023-12-041-2/+2
| | | | This reverts commit 9d8dfc7b49380b8c03546ed4fad2385c42438a50.
* meson: use subprocess-dummy.c fallback when fork func doesn't existkarelrooted2023-12-031-1/+5
|
* ao_wasapi: clean GUID definitionsKacper Michajłow2023-12-031-28/+41
| | | | | Add ifndefs to define only when needed and remove some already defined ones in mingw.
* ao_wasapi: fix MP3 GUIDKacper Michajłow2023-12-031-1/+1
| | | | | | | 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
* input: fix double click handlingnanahi2023-12-031-0/+1
| | | | | | | | | | 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.
* mac: report modifier keys on precise scrollingder richter2023-12-022-3/+24
| | | | | | modifier keys weren't reported when using the trackpad to scroll. Fixes #11195
* mac: fix initial window size and position when already maximizedder richter2023-12-021-1/+2
| | | | | | | | | | | | 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
* github/workflows: install xxhash on msys2Dudemanguy2023-11-301-0/+1
| | | | | | | 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
* playloop: use a 16:9 ratio with --force-windowGuido Cella2023-11-301-1/+5
| | | | | | | | | 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.
* ci: remove dvbin from freebsd runsfan52023-11-291-1/+2
| | | | | | | | | | | | 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.
* meson: enable dvbin by default againsfan52023-11-291-1/+1
| | | | | | | 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.
* meson: fix check for dvbin availabilitysfan52023-11-291-2/+3
|
* ci/tumbleweed: don't enable shadercDudemanguy2023-11-281-1/+0
| | | | | It only ever had any real affect on windows so with the previous build change, enabling it cannot work.
* build: only directly link shaderc and spirv-cross on windowsDudemanguy2023-11-281-2/+2
| | | | | | | 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.
* vo_gpu: fix ra_fbo stack-use-after-scopeDudemanguy2023-11-281-9/+6
| | | | | | | | 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.
* common/av_log: use bstr for log callbackKacper Michajłow2023-11-281-10/+14
| | | | | | - don't use 4KiB stack array - keep one bstr allocation for lifetime of the log - avoid dummy strlen
* vo_kitty: init all fields of struct sigaction before using itKacper Michajłow2023-11-281-2/+3
|
* ra_pl: add missing initializerKacper Michajłow2023-11-281-1/+1
|
* ao_sndio: remove duplicated conditionKacper Michajłow2023-11-281-1/+1
|
* vo: don't pass VADRMPRIMESurfaceDescriptor by valueKacper Michajłow2023-11-282-9/+9
|
* wayland: simplify reading dataKacper Michajłow2023-11-281-15/+10
| | | | | | | - 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
* mp_image: remove local params copy from mp_image_setfmtKacper Michajłow2023-11-281-3/+1
| | | | No longer needed after 079f67268f6f5a2ecfd12277b246b1937493c092.
* ta: inline OOM checksKacper Michajłow2023-11-282-24/+20
| | | | It makes no sense to force function call for simple check.
* player/command: don't pass mp_image_params by valueKacper Michajłow2023-11-281-36/+36
|
* vo_gpu: don't pass gl_user_shader_hook by valueKacper Michajłow2023-11-283-12/+10
|
* vo_gpu: don't pass mp_pass_perf by valueKacper Michajłow2023-11-281-8/+14
|
* vo_gpu: don't pass ra_fbo by valueKacper Michajłow2023-11-2810-39/+39
| | | | Make it easier on compiler, no need to alloca and copy things around.
* Reapply "osdep/meson: add libplacebo include dir to swift compile"Dudemanguy2023-11-271-1/+3
| | | | | | | 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.
* Revert "osdep/meson: add libplacebo include dir to swift compile"Dudemanguy2023-11-271-3/+1
| | | | | | | This is not needed since we removed the libplacebo wrap not too long after this commit. This reverts commit 4de76ce87a545cd86ef493129b4cfeafe10e8e98.
* ci: remove leftover libplacebo subproject optionsDudemanguy2023-11-273-3/+0
| | |