- Update to version 0.38.0+git20240706.00f43e0916fa:
* wayland: fix missed int -> double conversion for cursor scaling * stats.lua: active key bindings: identify prefix nonrepeatable * console.lua: restore the order of items after clearing the input line * console.lua: minor tweaks * console.lua: remove the scale script-opt * player/loadfile: enable streams in order of types when loading file * demux: avoid seeking video streams for refresh seek * demux: don't log if track isn't refreshed * video/out/gpu/context: convert --gpu-api to object settings list * video/out/gpu/context: simplify --gpu-context's check_unknown_entry * ytdl_hook: strip quotes from cookie values * input/cmd: move m_option_type_cycle_dir to m_option.c * player/lua: restore original lua allocator before close * wayland: add a --wayland-present option * stats.lua: fix codec-profile position for audio * misc/natural_sort: avoid implementation-defined behavior in comparison * fuzzers: wait for file start event before idle * filters/f_lavfi: fix null dereference on empty graph * demux_playlist: don't add base path to self-expanding protocols * test/paths: add tests for mp_basename and mp_dirname * test/paths: use helper functions for result testing * bstr: change memcpy to memmove to allow aliased copies * fuzzer_set_property: fix setting audio-files list * mac/menu: add option to disable default shortcuts * m_option: parse the timestamp as unsigned value * various: add more format specifiers checks * playlist: let playlist-next go to first item if player is idle * playlist: let playlist-prev go to last item in playlist * options: remove some options with .deprecation_message * options: remove various OPT_REMOVED usage * options: remove some deprecated OPT_REPLACED option mapping * fuzzer_load: seal the input fd after writing the data * console.lua: assume non-ASCII characters span 2 cells for truncation * console.lua: let libass clip lines in select mode * console.lua: subtract --osd-margin-x in the max width calculation * fuzzer_set_property: destroy mpv also on error * meson: add fuzzers alias for all fuzzer targets * player/playloop: fix null dereference if filter_root does not exist * loadfile: update the format of terminal track information * DOCS/input: document undocumented track-list sub-properties * m_option: add a way for aliases to use sub option prefix * fuzzer_set_property: don't run mpv if set property failed * fuzzer_load_{config_file,input_conf}: take into account file size limit * m_option: ignore excessive elements only for obj_settings_list * player/command: limit user-data name splits to 100 * m_config_frontend: disallow profile=default in config files * misc/random: set constant seed for fuzzing * fuzzers: disallow include command in more principal way * ad_{lavc,spdif}: initialize channel layout * options: add secondary-{sid,sub-delay} to watch_later_options * fuzzer_load: disallow include option in config files * input/keycodes: validate parsed value to avoid overflow * m_option: do float multiplication to avoid integer overflow * common: validate parsed unicode codepoints value * m_options: fix obj settings list leak on error * vo_gpu: optimize pass_info_reset * demux: allow refresh seek for non-video streams * av_log: sort library version print and add missing libavdevice * ad_spdif: fix lavf version check * various: remove no longer needed availability checks * misc/uuid: remove no longer needed vendored implementation * various: remove av channel layout check * ci/openbsd: bump to 7.5 and remove libplacebo subproject * meson: increase FFmpeg minimum required version to 6.1 * select.lua: consider --sub-delay for the subtitle line selector * select.lua: don't use sub-start to preselect subtitle lines * vo_tct: clear backbuffer on reconfig * options: remove deprecated auto choice for --mute * player/command: alias playback-time to time-pos * test/libmpv_test: fix some stray tabs * ao_pipewire: fix some stray tabs * test/libmpv_encode: avoid mktemp warning * osc.lua: don't use legacy argument for seeking * ao_avfoundation: guard features only available on macOS 11.3 and 12 * cocoa-cb: guard color spaces that are only available on 10.15.4 upwards * mac/compat: fix broken CGColorSpace declaration on SDK 11 only * mac/event: remove swift 5.6 language feature that is mandatory with 6.0 * mac/compat: add withLock fallback for xcode older than 14 * mac/log: properly guard logger usage behind platform version check * bash-completion: remove hashbang * fuzzers: enable edl, file and lavf protocols * m_options: limit list entries to 100 * m_options: fix mark_del leak on error * fuzzer_set_property: force untimed and pause state * demux_edl: fix infinite loop on empty EDL files * fuzzers: disable some targets as we hit out of space errors * osc.lua: add script message to show up the OSC * stream: don't exit on first iteration if there is no match * ad_spdif: add an assert for lavf_ctx * editorconfig: punish tab usage * osc.lua: replace tabs with spaces * fuzzers/meson: set link language to cpp * demux_lavf: fix null derefence of stream variable * d3d11: return minimum bitdepth for display output and swapchain * demux_lavf: add format hack entry for jpeg metadata frames * demux_lavf: fix null derefence in io_open callback * stats.lua: align 100% correctly on page 2 * vf_vapoursynth: upgrade to VapourSynth API v4 * demux_lavf: drop jpeg frames that are at a nonzero pos * Revert "demux_lavf: pass jpg filenames to ffmpeg for probing" * input: map Num 5 to distinct value when numlock is off * input.conf: make Alt+BS reset panscan * console.lua: don't enable the console-input input section * osc.lua: fix timetotal and timems settings * stats.lua: display file tags * input: don't resolve double clicks on the active mouse section * lua: don't pass nil as the second argument of mp.get_property_number * DOCS/interface-changes: fix formatting * TOOLS/gen-interface-changes.py: sort interface changes by file content * DOCS/contribute.md: require interface change begin with type * stats.lua: remove print_perfdata_passes * stats.lua: add page 5 for currently selected tracks information * stats.lua: make the append function increment index only on newline * sub: update codec info * osc.lua: add option to use display fps for update interval * osc.lua: unify observe_property style * osc.lua: add option to make rendering smoother * opengl: add --egl-output-format * opengl: add --egl-config-id * vf_vapoursynth: add parameter to pass arbitrary string to script * options: add --osd-playlist-entry * DOCS/compile-windows.md: improve Windows build documentation * console.lua: prettify unselected track log messages * select.lua: support extracting ytdl_hook subtitles * select.lua: hide the hour when it's 0 * select.lua: seek to the currect subtitle line when paused without video * select.lua: preselect the correct sub line with duration >= 100 minutes * loadfile: improve the format of terminal track information * ci/mingw: install wine optionally * ci/mingw: use Ubuntu 24.04 * ci/msys2: compact build script * ci/msys2: re-enable 32-bit builds * ci/mingw: don't run test on 32-bit binary * hwdec_vaapi: suppress comparision warning * wayland_common: properly handle modifiers for keyboard enter keys * meson: add -fno-trapping-math to default flags * meson: add -fno-signed-zeros to default flags * ci/mingw: enable javascript support * osc.lua: fix user configurable colors * ra_d3d11: make cache header constant size regardless of the build * ao_wasapi: don't limit the scope of execution context * w32_common: stop IME initialization timer after first try * default.js: handle canceled key bindings * defaults.lua: handle canceled key bindings * command: add canceled state to key-binding client message * input: mark a command as canceled if it is explicitly dropped * bstr: use memchr and memrchr for bstrchr and bstrrchr * terminal-win: use proper NTAPI callback for FLS * DOCS/compile-windows.md: update Windows compilation documentation * common: clang supports __builtin_clz also in non-GNU modes * parse_commandline: fix incorrect win32 check * misc/thread_tools: fix incorrect win32 check * ao_pcm: fix incorrect win32 check * player/main: concat string at compile time * sub/sd_ass: rewrite is_animated() * meson: clear flags used for build * {x11_common,context_x11egl}: suppress Wundef warning * ao_pipewire: fix access to undefined byte order definitions * osdep/endian: add missing byte order defines * ao_coreaudio_chmap: fix shadowed variable * stream_cdda: suppress Wundef warning * fuzzers/common: add prototype for LLVMFuzzerTestOneInput * input: fix grammar errors and typo * input: only begin VO dragging if the section allows * autoload.lua: always accept current file as a valid file * autoload.lua: match also image extension * autoload.lua: cosmetic changes * autoload.lua: fix options update * sub: avoid unneeded calls to is_animated * input: reset doubleclick timer when dragging begins * input: un-hardcode VO dragging * input: prevent MBTN_LEFT conflict with VO dragging * input: implement VO dragging deadzone * input: fix mouse position equality check * input: begin VO dragging when moving mouse while left button is down * DOCS/man/options.rst: remove DVD menu reference for --input-cursor * test/meson: remove unneded sources * ci/mingw: resolve pkgconfig deprecation warning in meson * ci/mingw: run meson tests * ci/mingw: add exe_wrapper to cross file * ci/mingw: support encode mode * ci/mingw: use ninja for cmake builds * test/paths: skip normalize tests if pathcch library is not available * test_utils: don't use subprocess for diffing test results * test/libmpv_encode: print logs also during initialize * test/libmpv_encode: don't use mpv internals for test * player/playloop: remove now unused get_percent_pos() * win32: quantize taskbar playback position into uint8 range * Revert "d3d11: calc vsync interval on real stats, not just last interval" * TOOLS/autoload.lua: fix directory_mode and ext options * osd: don't use get_percent_pos function * command: simplify printing floats as integers * README: link to discussions * osc.lua: fix lint warnings * TOOLS/test-hooks.lua: fix lint warning * TOOLS/status-line.lua: fix lint warnings * TOOLS/osd-test.lua: fix lint warning * TOOLS/observe-all.lua: fix lint warning * TOOLS/nan-test.lua: fix lint warnings * TOOLS/cycle-deinterlace-pullup.lua: fix lint warnings * TOOLS/command-test.lua: fix lint warnings * TOOLS/autoload.lua: fix lint warnings * TOOLS/autodeint.lua: fix lint warnings * TOOLS/autocrop.lua: fix lint warnings * TOOLS/ao-null-reload.lua: fix lint warnings * ytdl_hook.lua: fix lint warnings * console.lua: fix lint warnings * mpv.desktop: fix capitalization error * mpv.desktop: add Arabic translation * TOOLS/gen-interface-changes: wrap long lines to 80 col * input.conf: change 'u' binding to cycle between 'force' and default * options: make sub-ass-override default to 'scale' * options: move sub-ass-override 'scale' above 'force' * sd_ass: only set sub-scale for 'scale', 'force' or 'strip' * DOCS/input: clarify the difference between audio-pts and time-pos * player: replace get_current_time with get_playback_time in some spots * player/playloop: force get_playback_time to be at least 0 * player: put speed adjustment back into playing_audio_pts * player/video: fix incorrect VO frame duration and frame drops * x11: correct position coordinates if mpv was launched with --fs * vo_vaapi: remove redundant function call * vo_vaapi: fix use-after-free when quitting * vo_vaapi: fix use-after-free of current frame * console.lua: fix crash with set ;<Tab> * console.lua: fix crash if no completions exist * Revert "ao_pipewire: add EOF handling" * Revert "ao_pipewire: wait for draining finishes before restart ao" * playloop: don't loop when seeking to the end of cover art while paused * ao_pipewire: wait for draining finishes before restart ao * ao_pipewire: add EOF handling * ao_avfoundation: use blocking ao_read_data * ao_avfoundation: add EOF handling * ao: add ao_stop_streaming * ao: add eof, pad_silence, and blocking arguments for ao_read_data * ao_coreaudio: set ao->device_buffer base on hardware latency * osxbundle: refactor Information Property List * wayland_common: ignore unknown key states * wayland_common: handle pressed keys in keyboard_enter event * DOCS/man: replace legacy option syntax usage * Revert "fuzzers/load: clear old temp files if they exist" * ad_spdif: check return value of av_parser_parse2 * ad_spdif: check for AC3 if parser fails to detect profile * ad_spdif: set codec params * stream_lavf: don't add ffmpeg bluray or dvd protocols * build: dynamically generate mpv.desktop file protocols * stream: implement get_protocols method for stream_lavf * av_common: parent mp_get_lavf_demuxer contents to the list * wayland: use wl->callback_surface for idle inhibitor creation * fuzzers/load: clear old temp files if they exist * DOCS/man/console.rst: remove extraneous words * mp_image: remove unneeded PL_HAVE_LIBDOVI check * fuzzers: always return 0 * DOCS/options: --sub-scale-by-window doesn't affect ASS subtitles * ci/lint: only allow specific characters in subjects * ci/lint: allow the first word after : to be an option with -- * ci/lint: only allow space instead of \s or \s+ * workflows/comment: more newline fixes to make formatting work * workflows/comment: add missing escape fix * ci/mac: silence unnecessary reinstall warnings * select.lua: allow ffmpeg to print errors if it fails * osc.lua: handle osd-scale-by-window runtime update * stats.lua: handle osd-scale-by-window runtime update * {stats,osc}.lua: respect --osd-scale-by-window by default * stats.lua: add add auto value to vidscale option * osc.lua: add auto value to vidscale option * DOCS/man/options.rst: recommend --osd-scale-by-window for UI scale * meson: limit concurrent link jobs to 16 * ao: don't call driver->set_paused after reset * osdep/path-win: fix leak of portable_path * osdep/io: fix leak of environment strings on win32 * DOCS/interface-changes.rst: document loadfile breaking change * DOCS/man/input.rst: document breaking change of loadfile index argument * DOCS/man: note that default autoprobe order is unrealiable * DOCS/compatibility.rst: add requirement when changing default values * DOCS/compatibility.rst: add provision for dealing with severe breakages * DOCS/compatibility.rst: require more details about breaking changes * DOCS/compatibility.rst: fix formatting * ci: save cache also on failures * playloop: don't redraw without subs on quit * workflows/cleanup_caches: minor cosmetic changes * workflows/comment: refactor comment workflow to not use github-script * console.lua: fix completing change-list ao/vo/gpu-context remove * input: prioritize builtin bindings matching longer key sequences * console.lua: fix the max log lines calculation * stats.lua: prevent freeze in certain cases with vidscale=no * console.lua: use all available lines for selection * select.lua: strip trailing zeros from FPS values * select.lua: handle sub-start being earlier than ffmpeg's timestamps * select.lua: don't needlessly initialize default_item * select.lua: preselect the previous sub line without a current line * select.lua: fix preselecting the current subtitle line * console.lua: add nonrepeatable prefix to command_prefixes * input/cmd: add nonrepeatable prefix * ad_spdif: add missing codec_desc initialization * ci/cleanup_caches: group by cache prefixes too * ci: clear old caches to avoid master branch cache trashing * msg: clear status line only if needed * msg: split mp_msg_flush_status_line into private and public variant * msg: check target stream before printing * ci: don't pin Ubuntu version where it doesn't matter * ci/mingw: clean installed packages * ci/mingw: use meson for libass build * ci/mingw: remove non-existent cmake option * wayland: also log version numbers with protocol interface names * ci/win32: override link args only for the target that needs them * ci/win32: add Vulkan-Loader * meson: assume vkCreateDisplayPlaneSurfaceKHR is available when internal * ci/win32: build shaderc * ci/win32: use ccache * ci/win32: enable all available projects from meson's wrapdb * ci/win32: add spirv-cross * ci/win32: add shaderc * ci/win32: remove Strawberry Perl from path * github/issue_template: ask for possible sample files on feature request * github/issue_template: rework system info section and provide commands * github/issue_template: move mpv information into its own section * github/issue_template: add information on how to create backtraces * github/issue_template: mention (nightly) builds and packages for testing * github/issue_template: reword file upload instruction * github/issue_template: reword log file instructions * github/issue_template: be more specific about performance-related issues * github/issue_template: add checkboxes as instruction check * github/issue_template: rework issue templates with github forms * github/issue_template: mention github Discussions for questions * wayland: cap xdg_wm_base at 4 if wm_capabilities aren't supported * Revert "player: do not exit when a seek gets queued" * stream: remove directory playlist hint * stream: check file descriptor passed to fd:// or fdclose:// * various: add missing checks for directory streams * {options,player}: fix stream leaks * stream: disallow reading or writing to directories * fuzzer: add dedicated fuzzers for each demuxer * fuzzer_load: use memfd_create instead of real file * fuzzer_load: merge file and config load into one file * fuzzers: don't build binaries for disabled protocols * av_common: fix integer overflow when adjusting timebase * select.lua: strip brackets in select-subtitle-line * select.lua: add this script * console.lua: close when pressing enter with input.select * console.lua: fix ctrl+f and ctrl+b keybindings * console.lua: don't crash when scrolling without matches * console.lua: truncate lines longer than the maximum width * console.lua: don't convert integers for mp.input to string * input: fix builtin sequence bindings * console.lua: implement a command parser to complete more things * player: add option-info/<name>/expects-file * osc.lua: remove scaleforcedwindow * autocrop.lua: fix some lint warnings * ytdl_hook.lua: fix some lint warnings * stats.lua: fix some lint warnings * osc.lua: fix some lint warnings * options.lua: fix some lint warnings * defaults.lua: fix some lint warnings * console.lua: fix some lint warnings * auto_profiles.lua: fix some lint warnings * test-hooks.lua: fix variable shadowing warning * status-line.lua: fix unused variable warning * skip-logo.lua: fix some lint warnings * pause-when-minimize.lua: fix unused variable warning * ontop-playback.lua: fix unused variable warning * observe-all.lua: fix some lint warnings * cycle-deinterlace-pullup.lua: fix unused variable warnings * command-test.lua: fix some lint warnings * autoload.lua: fix some lint warnings * autodeint.lua: fix some lint warnings * audio-hotplug-test.lua: fix some lint warnings * acompressor.lua: break long lines * github/workflows: add lua linting * Revert "stream: don't try to read from all-sparse/no-data files" * vf_vapoursynth: pass image properties from input * vf_vapoursynth: fix _ChromaLocation * hwdec_cuda_vk: add missing io.h include * audio: report EOF also for untimed AO mode * console.lua: increase margins from the bottom-left corner * vo_gpu_next: check if existing cache file has correct size * test: test mp_guess_lang_from_filename with [] and () * meson: add link flags also to cpp * audio: change bps format to int64_t * fuzzers: set network-timeout to 1 second * command: add dolby-vision-profile and dolby-vision-level to track-list * demux_mkv: inject AV_PKT_DATA_DOVI_CONF to demuxed packets * demux_mkv: demux Block Additional Mappings * test: test mp_guess_lang_from_filename() * misc/language: move mp_guess_lang_from_filename() here * external_files: detect language tags with hyphens * external_files: rename variables in guess_lang_from_filename() * lcms: check for null arg in gl_parse_3dlut_size * misc/language: store string length instead of null terminator * player/loadfile: match language and subcodes * Revert "misc: add language-matching utilities" * Revert "loadfile: use mp_match_lang_single" * Revert "loadfile: compute audio lang for sub selection when using lavfi-complex" * fuzzer_loadfile_direct: exclude paths also for file:// * demux_edl: make protocol comparison case insensitive * fuzzer_set_property: fix for other types than string * dmabuf: fix warnings on 320-bit build * filter/vf_gpu_vulkan: fix Vulkan handle type * player/client: fix typo in description of MPV_ERROR_UNINITIALIZED * fuzzers: add fuzzer for config parsers * Revert "ao: in ao_play_data, wakeup core for untimed AO as well" * ao: in ao_play_data, wakeup core for untimed AO as well * af_scaletempo: optimize overlap search * af_scaletempo: use taxicab distance for offset search * af_scaletempo: don't use a window for offset search * af_scaletempo: use Hann function for overlap window * af_scaletempo: add comment to overlap calculation * js: fix defaults.js * scripting: add mp.input.select() * drm_prime: remove off by one when allocating new ref counter * drm_prime: fix issue detected by valgrind * stream: don't try to read from all-sparse/no-data files * various: fix comma style * various: fix indentation * various: fix tabs in code * various: fix trailing whitespace * hwdec_cuda: reduce nesting in check functions * hwdec_cuda: avoid gpu wakeup by deferring cuInit * msg: print all messages to one stream * player/main: select msg output stream early * github/workflows: link MSVC artifacts in comments * ci: add Windows native build * test: mark libmpv as expected fail if OSC is not available * test/libmpv_encode: minor adjustments for win32 build fix * win32: add WinMain * player/configfiles: fix utime.h include for Windows SDK * stream_file: declare structures available only in Windows DDK * osdep/mpv.rc: fix encoding of MPVCOPYRIGHT * common: define some bits for Windows SDK * ao_wasapi_utils: define missing GUIDs for C * ao_wasapi_changenotify: fix IsEqualPropertyKey for C * various: remove unused sys/time.h include * osdep/compiler: clang also recognizes those attributes * osdep/main-fn-win: add struct typedef for compatibility * osdep/semaphore: don't include files if they are not used * win32: fix platform checks * io_utils: use mp_mkostemps instead of mkstemp * osdep/dirent: add implementation for Windows SDK build * ao_wasapi: fix include order * various: move strings.h inclusion to common.h * various: move unistd.h inclusion to common.h * meson: add defines for Windows build to avoid warnings * meson: remove Windows subsystem version, it is 6.0 by default * command: add normalize-path command * DOCS/lua: fix some argument names * DOCS/input: move escape-ass documentation * misc/path_utils: normalize win32 paths * player: normalize paths for resuming playback * cocoa-cb: add support for macOS color space transformation (EDR/HDR) * github/workflows: add swift linting * test: fflush between printf and abort * powershell-completion: add PowerShell command line completion * DOCS/input: document sub-seek 0 * docs: mention Cache section in sub-seek * command: return lavfi filters in option-info/[av]f/choices * osc: remove trailing space * demux_mkv: fix image detection * demux: keep track of ts information per stream type * win32: fix maximize state with --border=no * sd_ass: don't log if subtitles have unknown duration * ci/lint: use long commit hash * demux_mkv: make V_QUICKTIME codec detection generic * osd: show left arrow when playing backwards * tools: add narrow left arrow glyph for OSD * osc: show left arrow when paused while playing backwards * f_lavfi: reject filters with too many in/outs * f_decoder_wrapper: clear decoder info on deinit * ci/mingw: update dependency versions * OSC: implemented user configurable colors * win32: make context menu items accessible from the window menu * win32: move context menu init/uninit to GUI thread * wayland: set wl->scaling if there is no wl->current_output yet * sub/osd: fix rounding when rescaling bitmap subtitle rects * win32: support multitouch * options: add --native-touch option * wayland_common: support multitouch * input: add MP_TOUCH_RELEASE_ALL * input: add --input-touch-emulate-mouse option * command: add touch-pos property * input: add multitouch support functions * sd_lavc: reduce unnecessary error log on probing nonexistent codecs * sd_lavc: fix null dereference on error * wayland: log if cursor shape support is missing * DOCS: fix spelling of environment and corresponding/corresponds * demux/packet: add support for ITU T.35 metadata in Matroska * demux: support VVC Matroska demux * mac: properly handle regular expressions without force unwrap * mac: code cleanup and consistency changes, fix linting issues * mac/helper: make wakeup callback declaration consistent * mac/touchbar: use KVO block API instead of old obj-c instance method * TOOLS/lua/autoload: make ignore_patterns more generic * TOOLS/lua/autoload: allow multiple ignore_patterns * TOOLS/lua/autoload: add ignore_pattern option * w32_common: fix show-in-taskbar toggling after explorer is restarted * zsh-completion: complete --gpu-context * ci: add fuzzers build test * fuzzers: add new fuzzer targets * player/command: mark sub-text-ass as deprecated * player/command: add sub-text/ass-full sub-property * player/command: move sub-text-ass to a sub-property * sd_ass: allow get_text to return more than 500 bytes * stats.lua: show osd-dimensions property * sub/lavc_conv: don't override style of converted teletext pages * sub/lavc_conv: don't strip ASS style header * DOCS/vf: update vf_gpu options * vf_gpu: vulkan and egl implementations * af_scaletempo2: migrate to internals to talloc * af_scaletempo2: remove redundant buffer zeroing * ao_wasapi: fix player core lockup when avoiding premature buffer fills * Revert "ao_wasapi: address premature buffer fills in exclusive mode" * m_config_core: fix forced option notification with m_config_cache * mac/input: add support for dead key reporting * mac: make display-names unique to allow specific selection * dec_sub: fix locking for sub_ass_get_extradata * test: make libmpv_test abort if an error is logged * vo_dmabuf_wayland: use wl_fixed_from_int when setting viewport source * vo_dmabuf_wayland: fix scaling for subsurface positioning * DOCS/man: refer to "mp.options functions" for script config docs * player/loadfile: check if forced track is also tagged as default first * ao/avfoundation: optimise preprocessors for included coreaudio code * ao/audiounit: fix building for iOS * ao_coreaudio: add a comment for ignoring returned sample count * Revert "ao_coreaudio: signal buffer underruns" * input: fix deadlock in adding gamepad input src * d3d11: disable IDXGIInfoQueue usage if dxgidebug.h is incomplete * d3d11: use IDXGIInfoQueue instead ID3D11InfoQueue * demux: also read "CUESHEET" tag from stream metadata * ao_wasapi: set 0 buffer duration on initialization for shared mode * ao_wasapi: add `--wasapi-exclusive-buffer` option * context_drm_egl: guard gbm_device on uninit * x11: always do a reset_size if geometry/autofit is updated at runtime * options: flag geometry/autofit options with force_update * player: always notify when writing window-scale option * m_option: add a force_update boolean * stats.lua: add option to disable scale with video size * stats.lua: add option to control plot border width * stats.lua: remove redundant style override * demux_lavf: pass jpg filenames to ffmpeg for probing * m_option: change confusing error messages for obj_settings_list * DOCS/man/options: mention the new priority list usage of --gpu-context * various: add GPU context description * video/out/gpu/context: add auto dummy context * video/out/gpu/context: convert --gpu-context to use obj_settings_list * video/out/gpu/context: don't use hidden flag for contexts * DOCS/client-api-changes.rst: fix formatting * command: use property_time() for sub-start and sub-end OBS-URL: https://build.opensuse.org/package/show/multimedia:apps/mpv?expand=0&rev=308
This commit is contained in:
commit
dc755523a4
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
30
_service
Normal file
30
_service
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
# vim: set syntax=xml
|
||||
-->
|
||||
<services>
|
||||
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="url">https://github.com/mpv-player/mpv.git</param>
|
||||
<param name="scm">git</param>
|
||||
<param name="filename">mpv</param>
|
||||
<param name="revision">master</param>
|
||||
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>
|
||||
<param name="versionrewrite-pattern">v(.*)</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="exclude">*.swift</param>
|
||||
<param name="exclude">osdep/android/*</param>
|
||||
<param name="exclude">osdep/macos/*</param>
|
||||
<param name="exclude">osdep/win32/*</param>
|
||||
<param name="exclude">TOOLS/osxbundle/*</param>
|
||||
<param name="exclude">ci/*</param>
|
||||
</service>
|
||||
|
||||
<service name="set_version" mode="manual"/>
|
||||
<service name="tar" mode="buildtime"/>
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">xz</param>
|
||||
</service>
|
||||
|
||||
</services>
|
4
_servicedata
Normal file
4
_servicedata
Normal file
@ -0,0 +1,4 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://github.com/mpv-player/mpv.git</param>
|
||||
<param name="changesrevision">00f43e0916faa4f60837d638349e2a66592a9a2b</param></service></servicedata>
|
35
fix-docs-path.patch
Normal file
35
fix-docs-path.patch
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
meson.build | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: mpv-0.36.0/meson.build
|
||||
===================================================================
|
||||
--- mpv-0.36.0.orig/meson.build
|
||||
+++ mpv-0.36.0/meson.build
|
||||
@@ -1610,7 +1610,7 @@ if features['html-build']
|
||||
'@INPUT@', '@OUTPUT@'],
|
||||
depfile: 'mpv.html.dep',
|
||||
install: true,
|
||||
- install_dir: join_paths(datadir, 'doc', 'mpv')
|
||||
+ install_dir: join_paths(datadir, 'doc', 'packages', 'mpv')
|
||||
)
|
||||
endif
|
||||
|
||||
@@ -1629,7 +1629,7 @@ if features['pdf-build']
|
||||
'@INPUT@', '-o', '@OUTPUT@'],
|
||||
depfile: 'mpv.pdf.dep',
|
||||
install: true,
|
||||
- install_dir: join_paths(datadir, 'doc', 'mpv')
|
||||
+ install_dir: join_paths(datadir, 'doc', 'packages', 'mpv')
|
||||
)
|
||||
endif
|
||||
|
||||
@@ -1734,7 +1734,7 @@ if get_option('cplayer')
|
||||
|
||||
conf_files = ['etc/mpv.conf', 'etc/input.conf',
|
||||
'etc/mplayer-input.conf', 'etc/restore-old-bindings.conf']
|
||||
- install_data(conf_files, install_dir: join_paths(datadir, 'doc', 'mpv'))
|
||||
+ install_data(conf_files, install_dir: join_paths(datadir, 'doc', 'packages', 'mpv'))
|
||||
|
||||
bash_install_dir = join_paths(datadir, 'bash-completion', 'completions')
|
||||
install_data('etc/mpv.bash-completion', install_dir: bash_install_dir, rename: 'mpv')
|
3
mpv-0.38.0+git20240418.2f8038c59885.obscpio
Normal file
3
mpv-0.38.0+git20240418.2f8038c59885.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7a63dbe5e97072aca80964248a3cca60b771a286fcbd2c52245c613aa3f3b941
|
||||
size 10144781
|
3
mpv-0.38.0+git20240706.00f43e0916fa.obscpio
Normal file
3
mpv-0.38.0+git20240706.00f43e0916fa.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b3e59badac58587370a84cffccb2dcb2595b300ce67341a1c50e976756c02164
|
||||
size 10387469
|
24
mpv-make-ffmpeg-version-check-non-fatal.patch
Normal file
24
mpv-make-ffmpeg-version-check-non-fatal.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 7feac1e3ab52002314a0a939313cdea93f5a0b3a Mon Sep 17 00:00:00 2001
|
||||
From: Mia Herkt <mia@0x0.st>
|
||||
Date: Sat, 18 Mar 2023 01:10:57 +0100
|
||||
Subject: [PATCH] av_log: make FFmpeg version check non-fatal
|
||||
|
||||
---
|
||||
common/av_log.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/common/av_log.c b/common/av_log.c
|
||||
index 15d17aff..ae173592 100644
|
||||
--- a/common/av_log.c
|
||||
+++ b/common/av_log.c
|
||||
@@ -207,7 +207,6 @@ void check_library_versions(struct mp_log *log, int v)
|
||||
{
|
||||
fprintf(stderr, "%s: %d.%d.%d -> %d.%d.%d\n",
|
||||
l->name, V(l->buildv), V(l->runv));
|
||||
- abort();
|
||||
}
|
||||
}
|
||||
}
|
||||
--
|
||||
2.40.0
|
||||
|
6569
mpv.changes
Normal file
6569
mpv.changes
Normal file
File diff suppressed because it is too large
Load Diff
4
mpv.obsinfo
Normal file
4
mpv.obsinfo
Normal file
@ -0,0 +1,4 @@
|
||||
name: mpv
|
||||
version: 0.38.0+git20240706.00f43e0916fa
|
||||
mtime: 1720274620
|
||||
commit: 00f43e0916faa4f60837d638349e2a66592a9a2b
|
239
mpv.spec
Normal file
239
mpv.spec
Normal file
@ -0,0 +1,239 @@
|
||||
#
|
||||
# spec file for package mpv
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2015 Packman Team <packman@links2linux.de>
|
||||
# Copyright (c) 2012 Jiri Slaby <jslaby@suse.de>
|
||||
# Copyright (c) 2011-2012 Pascal Bleser <pascal.bleser@opensuse.org>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define lname libmpv2
|
||||
Name: mpv
|
||||
Version: 0.38.0+git20240706.00f43e0916fa
|
||||
Release: 0
|
||||
Summary: Advanced general-purpose multimedia player
|
||||
License: GPL-2.0-or-later
|
||||
Group: Productivity/Multimedia/Video/Players
|
||||
URL: http://mpv.io
|
||||
Source: %{name}-%{version}.tar.xz
|
||||
Source2: %{name}.changes
|
||||
# PATCH-FIX-OPENSUSE do not require equal libav versions, obs rebuilds as needed
|
||||
Patch0: mpv-make-ffmpeg-version-check-non-fatal.patch
|
||||
# Install docs in proper directory
|
||||
Patch2: fix-docs-path.patch
|
||||
BuildRequires: bash
|
||||
BuildRequires: hicolor-icon-theme
|
||||
BuildRequires: linux-kernel-headers
|
||||
BuildRequires: meson >= 0.60.3
|
||||
# Needed any lua to convert the bash-completion
|
||||
BuildRequires: lua
|
||||
BuildRequires: perl
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3-docutils
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: pkgconfig(alsa) >= 1.0.18
|
||||
BuildRequires: pkgconfig(caca) >= 0.99.beta18
|
||||
BuildRequires: pkgconfig(dri)
|
||||
BuildRequires: pkgconfig(dvdnav) >= 4.2.0
|
||||
BuildRequires: pkgconfig(dvdread) >= 4.1.0
|
||||
BuildRequires: pkgconfig(egl) >= 1.4
|
||||
BuildRequires: pkgconfig(ffnvcodec) >= 11.1.5.1
|
||||
BuildRequires: pkgconfig(gbm) >= 17.1.0
|
||||
BuildRequires: pkgconfig(gl)
|
||||
BuildRequires: pkgconfig(jack)
|
||||
BuildRequires: pkgconfig(lcms2) >= 2.6
|
||||
BuildRequires: pkgconfig(libarchive) >= 3.4.0
|
||||
BuildRequires: pkgconfig(libass) >= 0.12.2
|
||||
BuildRequires: pkgconfig(libavcodec) >= 60.31.102
|
||||
BuildRequires: pkgconfig(libavdevice) >= 60.3.100
|
||||
BuildRequires: pkgconfig(libavfilter) >= 9.12.100
|
||||
BuildRequires: pkgconfig(libavformat) >= 60.16.100
|
||||
BuildRequires: pkgconfig(libavif) >= 0.11.1
|
||||
BuildRequires: pkgconfig(libavutil) >= 58.29.100
|
||||
BuildRequires: pkgconfig(libbluray) >= 0.3.0
|
||||
BuildRequires: pkgconfig(libcdio)
|
||||
BuildRequires: pkgconfig(libcdio_cdda)
|
||||
BuildRequires: pkgconfig(libcdio_paranoia)
|
||||
BuildRequires: pkgconfig(libdrm) >= 2.4.105
|
||||
BuildRequires: pkgconfig(libiso9660)
|
||||
BuildRequires: pkgconfig(libjpeg)
|
||||
BuildRequires: pkgconfig(libjxl)
|
||||
BuildRequires: pkgconfig(libjxl_threads)
|
||||
BuildRequires: pkgconfig(libpulse) >= 1.0
|
||||
BuildRequires: pkgconfig(libsixel) >= 1.5
|
||||
BuildRequires: pkgconfig(libswresample) >= 4.12.100
|
||||
BuildRequires: pkgconfig(libswscale) >= 7.5.100
|
||||
BuildRequires: pkgconfig(libva) >= 1.1.0
|
||||
BuildRequires: pkgconfig(lua5.1)
|
||||
BuildRequires: pkgconfig(openal) >= 1.13
|
||||
BuildRequires: pkgconfig(python3)
|
||||
BuildRequires: pkgconfig(rubberband) >= 3.0.0
|
||||
BuildRequires: pkgconfig(uchardet)
|
||||
BuildRequires: pkgconfig(vapoursynth) >= 56
|
||||
BuildRequires: pkgconfig(vapoursynth-script) >= 56
|
||||
BuildRequires: pkgconfig(vdpau) >= 0.2
|
||||
BuildRequires: pkgconfig(x11) >= 1.0.0
|
||||
BuildRequires: pkgconfig(xext) >= 1.0.0
|
||||
BuildRequires: pkgconfig(xkbcommon) >= 0.3.0
|
||||
BuildRequires: pkgconfig(xpresent) >= 1.0.0
|
||||
BuildRequires: pkgconfig(xrandr) >= 1.4.0
|
||||
BuildRequires: pkgconfig(xscrnsaver) >= 1.0.0
|
||||
BuildRequires: pkgconfig(xv)
|
||||
BuildRequires: pkgconfig(zimg) >= 2.9
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
Requires: hicolor-icon-theme
|
||||
Requires(post): hicolor-icon-theme
|
||||
Requires(post): update-desktop-files
|
||||
Requires(postun): hicolor-icon-theme
|
||||
Requires(postun): update-desktop-files
|
||||
# Used via LUA scripts
|
||||
Recommends: yt-dlp
|
||||
Conflicts: mpv-plugin-mpris < 0.4
|
||||
# Obsoletion of mplayer2 that is dead for 2 years now
|
||||
Provides: mplayer2 = 20140101
|
||||
Obsoletes: mplayer2 < 20140101
|
||||
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.48
|
||||
BuildRequires: pkgconfig(libplacebo) >= 6.338.2
|
||||
BuildRequires: pkgconfig(libva-wayland) >= 1.1.0
|
||||
BuildRequires: pkgconfig(mujs)
|
||||
BuildRequires: pkgconfig(shaderc)
|
||||
BuildRequires: pkgconfig(vulkan) >= 1.1.70
|
||||
BuildRequires: pkgconfig(wayland-client) >= 1.20.0
|
||||
BuildRequires: pkgconfig(wayland-cursor) >= 1.20.0
|
||||
BuildRequires: pkgconfig(wayland-egl) >= 9.0.0
|
||||
BuildRequires: pkgconfig(wayland-protocols) >= 1.25
|
||||
BuildRequires: pkgconfig(wayland-scanner)
|
||||
BuildRequires: pkgconfig(wayland-server)
|
||||
# JIT for lua.
|
||||
%ifarch aarch64 %{ix86} x86_64
|
||||
BuildRequires: pkgconfig(luajit)
|
||||
%else
|
||||
BuildRequires: pkgconfig(lua5.1)
|
||||
%endif
|
||||
|
||||
%description
|
||||
mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety
|
||||
of video file formats, audio and video codecs, and subtitle types.
|
||||
|
||||
%package bash-completion
|
||||
Summary: Bash Completion for %{name}
|
||||
Group: Productivity/Multimedia/Video/Players
|
||||
Requires: %{name} = %{version}
|
||||
Requires: bash-completion
|
||||
Recommends: xrandr
|
||||
Supplements: (mpv and bash)
|
||||
BuildArch: noarch
|
||||
|
||||
%description bash-completion
|
||||
Bash command line completion support for %{name}.
|
||||
|
||||
%package zsh-completion
|
||||
Summary: ZSH Completion for %{name}
|
||||
Group: Productivity/Multimedia/Video/Players
|
||||
Requires: %{name} = %{version}
|
||||
Supplements: (mpv and zsh)
|
||||
BuildArch: noarch
|
||||
|
||||
%description zsh-completion
|
||||
ZSH command line completion support for %{name}.
|
||||
|
||||
%package devel
|
||||
Summary: A library to link together with mpv player
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{lname} = %{version}
|
||||
|
||||
%description devel
|
||||
mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety
|
||||
of video file formats, audio and video codecs, and subtitle types.
|
||||
|
||||
This package contains all the development files.
|
||||
|
||||
%package -n %{lname}
|
||||
Summary: A library to link together with mpv player
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n %{lname}
|
||||
mpv is a movie player based on MPlayer and mplayer2. It supports a wide variety
|
||||
of video file formats, audio and video codecs, and subtitle types.
|
||||
|
||||
This package contains a library that can other apps use to utilize the mpv
|
||||
features.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
# I hate UNKNOWN so lets put decent info there.
|
||||
MODIFIED="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{SOURCE2}")"
|
||||
DATE="$(date -d "$MODIFIED" "+%%b %%e %%Y")"
|
||||
sed -i "s|UNKNOWN|$DATE|g;s|VERSION|\"%{version}\"|g" common/version.c
|
||||
|
||||
%build
|
||||
# We don't want to rebuild all the time.
|
||||
myopts=" -Dbuild-date=false"
|
||||
%meson \
|
||||
--auto-features=auto \
|
||||
-Dcdda=enabled \
|
||||
-Dlibmpv=true \
|
||||
-Ddvbin=enabled \
|
||||
-Ddvdnav=enabled \
|
||||
-Dopenal=enabled \
|
||||
${myopts} \
|
||||
%{?nil}
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
|
||||
install -D -m 0644 etc/input.conf %{buildroot}%{_sysconfdir}/%{name}/input.conf
|
||||
install -D -m 0644 etc/mpv.conf %{buildroot}%{_sysconfdir}/%{name}/mpv.conf
|
||||
# remove shebang
|
||||
sed -i -e '1d' %{buildroot}%{_datadir}/bash-completion/completions/mpv
|
||||
|
||||
%post -n %{lname} -p /sbin/ldconfig
|
||||
%postun -n %{lname} -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%license LICENSE.GPL
|
||||
%doc Copyright README.md RELEASE_NOTES
|
||||
%doc %{_defaultdocdir}/%{name}/input.conf
|
||||
%doc %{_defaultdocdir}/%{name}/mplayer-input.conf
|
||||
%doc %{_defaultdocdir}/%{name}/mpv.conf
|
||||
%doc %{_defaultdocdir}/%{name}/restore-old-bindings.conf
|
||||
%dir %{_sysconfdir}/%{name}/
|
||||
%ghost %dir %{_sysconfdir}/%{name}/scripts/
|
||||
%config %{_sysconfdir}/%{name}/encoding-profiles.conf
|
||||
%config %{_sysconfdir}/%{name}/input.conf
|
||||
%config %{_sysconfdir}/%{name}/mpv.conf
|
||||
%{_bindir}/%{name}
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/icons/hicolor
|
||||
%{_datadir}/metainfo/mpv.metainfo.xml
|
||||
%{_mandir}/man?/%{name}.?%{?ext_man}
|
||||
|
||||
%files zsh-completion
|
||||
%{_datadir}/zsh/site-functions/_mpv
|
||||
|
||||
%files bash-completion
|
||||
%{_datadir}/bash-completion/completions/mpv
|
||||
|
||||
%files -n %{lname}
|
||||
%{_libdir}/*.so.*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/%{name}/
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/pkgconfig/%{name}.pc
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user