From: Tomas Volf <~@wolfsden.cz>
To: 74748@debbugs.gnu.org
Subject: bug#74748: Constructor created by define-configuration is slow (>25s) when many fields are defined
Date: Mon, 09 Dec 2024 16:13:16 +0100 [thread overview]
Message-ID: <87msh499f7.fsf@wolfsden.cz> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 1545 bytes --]
Hello,
I am writing a configuration for mpv and hit an issue of the generated
constructor (`home-mpv-configuration') is extremely slow. While the
almost 800 fields is unusually high, initializing the instances of the
record should *not* take almost 30 seconds. The full file is attached
to this email (as `mpv.scm').
--8<---------------cut here---------------start------------->8---
scheme@(guix-user)> ,use (gnu home services mpv)
scheme@(guix-user)> ,t (and (home-mpv-configuration (global (mpv-profile-configuration (fullscreen #t)))) #t)
$1 = #t
;; 29.615315s real time, 50.896973s run time. 24.031723s spent in GC.
--8<---------------cut here---------------end--------------->8---
Interestingly, profiling does not give us anything useful:
--8<---------------cut here---------------start------------->8---
scheme@(guix-user)> ,pr (and (home-mpv-configuration (global (mpv-profile-configuration (fullscreen #t)))) #t)
No samples recorded.
--8<---------------cut here---------------end--------------->8---
I also tried to remove all my custom sanitizers, to make sure the issue
is not in my code, but that did not help.
I took a short look, but code of both the define-configuration and of
Guix records is complex, full of syntax magic and I did not have any
luck trying to debug it myself. Hence this report.
Have a nice day,
Tomas
[-- Attachment #1.2: Reproducer. --]
[-- Type: text/x-guile, Size: 121138 bytes --]
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2024 Tomas Volf <~@wolfsden.cz>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu home services mpv)
#:use-module (gnu home services)
#:use-module (gnu services configuration)
#:use-module (guix gexp)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-71)
#:export (home-mpv-configuration
home-mpv-configuration?
home-mpv-configuration-global
home-mpv-configuration-profiles
home-mpv-configuration-extra
home-mpv-configuration-source-location
mpv-profile-configuration
mpv-profile-configuration?
mpv-profile-configuration-source-location
;; Generated exports - START.
;; Generated exports - END.
))
\f
;;;
;;; Basic types.
;;;
(define-maybe type/boolean)
(define (serialize-type/boolean field-name value)
#~(string-append #$(symbol->string field-name)
"="
#$(if value "yes" "no")
"\n"))
(define type/boolean?
(const #t))
(define-maybe type/integer)
(define (serialize-type/integer field-name value)
#~(string-append #$(symbol->string field-name)
"="
#$(number->string value)
"\n"))
(define (type/integer? n)
;; We assume integer is a signed 32bit number.
(and-let* (((integer? n))
((>= n -2147483648))
((<= n 2147483647)))))
(define-maybe type/integer64)
(define (serialize-type/integer64 field-name value)
#~(string-append #$(symbol->string field-name)
"="
#$(number->string value)
"\n"))
(define (type/integer64? n)
;; We assume integer is a signed 64bit number.
(and-let* (((integer? n))
((>= n -9223372036854775808))
((<= n 9223372036854775807)))))
(define-maybe type/string)
(define (serialize-type/string field-name value)
#~(string-append #$(symbol->string field-name)
"="
#$value
"\n"))
(define type/string?
string?)
(define-maybe type/float)
(define (serialize-type/float field-name value)
#~(string-append #$(symbol->string field-name)
"="
#$(number->string (exact->inexact value))
"\n"))
(define type/float?
;; I am not sure how to validate floats.
real?)
(define-maybe type/double)
(define (serialize-type/double field-name value)
#~(string-append #$(symbol->string field-name)
"="
#$(number->string (exact->inexact value))
"\n"))
(define (type/double? value)
;; I am not sure how to validate doubles.
real?)
\f
;;;
;;; Additional types (possible based on the basic ones).
;;;
;;; Aspect seems to be treated as an integer, so define it in terms of it.
(define-maybe type/aspect)
(define serialize-type/aspect serialize-type/integer)
(define type/aspect? type/integer?)
;;; `Audio channels or channel map' seems to be basically a free form string
;;; with no way to validate.
(define-maybe type/audio-channels-or-channel-map)
(define serialize-type/audio-channels-or-channel-map serialize-type/string)
(define type/audio-channels-or-channel-map? type/string?)
;;; Does not seem possible to validate.
(define-maybe type/audio-format)
(define serialize-type/audio-format serialize-type/string)
(define type/audio-format? type/string?)
;;; While most options list 4.6116860184274e+18 as a maximum value, we will
;;; use integer64 here. That should be enough for everyone for few more
;;; years.
(define-maybe type/byte-size)
(define serialize-type/byte-size serialize-type/integer64)
(define type/byte-size? type/integer64?)
(define-maybe type/color)
(define (serialize-type/color field-name value)
#~(string-append #$(symbol->string field-name)
"="
#$(if (list? value)
(string-join (map number->string value) "/")
value)
"\n"))
(define (type/color? value)
(define (ok-num? n)
(and (number? n)
(>= n 0)
(<= n 1)))
(if (list? value)
;; Either a list of 3(4) numbers encoding RGB(A) on range from 0 to 1...
(match value
(((? ok-num? r) (? ok-num? g) (? ok-num? b))
#t)
(((? ok-num? r) (? ok-num? g) (? ok-num? b) (? ok-num? alpha))
#t)
(_
#f))
;; ... or RGB(A) hex encoding.
(string-match "^#([A-Fa-f0-9]{2})?[A-Fa-f0-9]{6}$" value)))
;;; I do not see value mirroring fourcc.org's database here. It is further
;;; complicated by arbitrary hex being accepted as well. So string it is.
(define-maybe type/fourcc)
(define serialize-type/fourcc serialize-type/string)
(define type/fourcc? type/string?)
;;; No way to validate.
(define-maybe type/image-format)
(define serialize-type/image-format serialize-type/string)
(define type/image-format? type/string?)
;;; Looking at the documentation for --start, there is no way to make this
;;; bullet-proof, especially since even chapter numbers are accepted.
(define-maybe type/relative-time-or-percent-position)
(define serialize-type/relative-time-or-percent-position serialize-type/string)
(define type/relative-time-or-percent-position? type/string?)
(define-maybe type/time)
(define serialize-type/time serialize-type/string)
(define type/time? type/string?)
(define-maybe type/video-rectangle)
(define serialize-type/video-rectangle serialize-type/string)
(define (type/video-rectangle? value)
(or (string-match "-?[0-9]+%?:-?[0-9]+%?" value)
(string-match
"^(-?[0-9]+%?(x-?[0-9]+%?)?)?([+-]-?[0-9]+%?[+-]-?[0-9]+%?)?$"
value)))
(define-maybe type/window-geometry)
(define serialize-type/window-geometry serialize-type/string)
(define (type/window-geometry? value)
(or (string-match "-?[0-9]+%?:-?[0-9]+%?" value)
(string-match
"^(-?[0-9]+%?(x-?[0-9]+%?)?)?([+-]-?[0-9]+%?[+-]-?[0-9]+%?)?(/[0-9]+)?$"
value)))
(define-maybe type/window-size)
(define serialize-type/window-size serialize-type/string)
(define (type/window-size? value)
(string-match "^([0-9]+%?(x[0-9]+%?)?)?$" value))
(define-maybe type/enumeration)
(define (serialize-type/enumeration field-name value)
#~(string-append #$(symbol->string field-name)
"="
;; This could be either symbol or (in case of enumerations
;; with alternate type) anything. So just use `format'.
#$(format #f "~s" value)
"\n"))
(define (type/enumeration? value)
;; There is no general way to check enumerations. The field always has to
;; define custom sanitizer.
#t)
\f
;;;
;;; List types.
;;;
(define-maybe type/list-of-string)
(define (serialize-type/list-of-string field-name lst)
#~(string-append #$(symbol->string field-name)
"="
#$(string-join lst ",")
"\n"))
(define (type/list-of-string? lst)
(every type/string? lst))
(define-maybe type/list-of-key-value)
(define (serialize-type/list-of-key-value field-name lst)
#~(string-append #$(symbol->string field-name)
"="
#$(string-join (map (match-lambda
((k . v) (format #f "~a=~a" k v)))
lst)
",")
"\n"))
(define (type/list-of-key-value? lst)
(every (match-lambda
(((? string?) . (? string?)) #t)
(_ #f))
lst))
(define-maybe type/list-of-object-setting)
(define serialize-type/list-of-object-setting serialize-type/list-of-string)
(define type/list-of-object-setting? type/list-of-string?)
(define-maybe type/list-of-output-verbosity)
(define serialize-type/list-of-output-verbosity serialize-type/list-of-key-value)
(define type/list-of-output-verbosity? type/list-of-key-value?)
\f
;;;
;;; Actual configuration record. Contains a lot of generated code.
;;;
;;; Generated code - START.
(define-configuration
mpv-profile-configuration
(ab-loop-a maybe-type/time "")
(ab-loop-b maybe-type/time "")
(ab-loop-count
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(inf))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))))
(access-references maybe-type/boolean "")
(ad maybe-type/string "")
(ad-lavc-ac3drc
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 6))))))
(ad-lavc-downmix maybe-type/boolean "")
(ad-lavc-o maybe-type/list-of-key-value "")
(ad-lavc-threads
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 16))))))
(ad-queue-enable maybe-type/boolean "")
(ad-queue-max-bytes
maybe-type/byte-size
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/byte-size? val)
(>= val 0)
(<= val 4.6116860184274e18))))))
(ad-queue-max-samples
maybe-type/integer64
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer64? val)
(>= val 0)
(<= val +inf.0))))))
(ad-queue-max-secs
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(af maybe-type/list-of-object-setting "")
(audio maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no auto))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 8190))))))))
(alang maybe-type/list-of-string "")
(allow-delayed-peak-detect maybe-type/boolean "")
(alsa-buffer-time
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))
(alsa-ignore-chmap maybe-type/boolean "")
(alsa-mixer-device maybe-type/string "")
(alsa-mixer-index
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 99))))))
(alsa-mixer-name maybe-type/string "")
(alsa-non-interleaved maybe-type/boolean "")
(alsa-periods
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))
(alsa-resample maybe-type/boolean "")
(ao maybe-type/list-of-object-setting "")
(ao-null-broken-delay maybe-type/boolean "")
(ao-null-broken-eof maybe-type/boolean "")
(ao-null-buffer
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(ao-null-channel-layouts
maybe-type/audio-channels-or-channel-map
"")
(ao-null-format maybe-type/audio-format "")
(ao-null-latency
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(ao-null-outburst
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 100000))))))
(ao-null-speed
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 10000))))))
(ao-null-untimed maybe-type/boolean "")
(ao-pcm-append maybe-type/boolean "")
(ao-pcm-file maybe-type/string "")
(ao-pcm-waveheader maybe-type/boolean "")
(audio-backward-batch
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 1024))))))
(audio-backward-overlap
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(auto))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 1024))))))))
(audio-buffer
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val 10))))))
(audio-channels
maybe-type/audio-channels-or-channel-map
"")
(audio-client-name maybe-type/string "")
(audio-delay maybe-type/float "")
(audio-demuxer maybe-type/string "")
(audio-device maybe-type/string "")
(audio-display
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no embedded-first external-first)))))))
(audio-exclusive maybe-type/boolean "")
(audio-exts maybe-type/list-of-string "")
(audio-fallback-to-null maybe-type/boolean "")
(audio-file-auto
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no exact fuzzy all)))))))
(audio-file-paths maybe-type/list-of-string "")
(audio-files maybe-type/list-of-string "")
(audio-format maybe-type/audio-format "")
(audio-normalize-downmix maybe-type/boolean "")
(audio-pitch-correction maybe-type/boolean "")
(audio-resample-cutoff
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val 1))))))
(audio-resample-filter-size
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 32))))))
(audio-resample-linear maybe-type/boolean "")
(audio-resample-max-output-size
maybe-type/double
"")
(audio-resample-phase-shift
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 30))))))
(audio-reversal-buffer
maybe-type/byte-size
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/byte-size? val)
(>= val 0)
(<= val 4.6116860184274e18))))))
(audio-samplerate
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 768000))))))
(audio-spdif maybe-type/string "")
(audio-stream-silence maybe-type/boolean "")
(audio-swresample-o
maybe-type/list-of-key-value
"")
(audio-wait-open
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 60))))))
(auto-window-resize maybe-type/boolean "")
(autocreate-playlist
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no filter same)))))))
(autofit maybe-type/window-size "")
(autofit-larger maybe-type/window-size "")
(autofit-smaller maybe-type/window-size "")
(autoload-files maybe-type/boolean "")
(autosync
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 10000))))))))
(background
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(none color tiles)))))))
(background-color maybe-type/color "")
(blend-subtitles
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes video)))))))
(bluray-device maybe-type/string "")
(border maybe-type/boolean "")
(border-background
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(none color tiles)))))))
(brightness
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -100)
(<= val 100))))))
(cache maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no auto yes)))))))
(cache-on-disk maybe-type/boolean "")
(cache-pause maybe-type/boolean "")
(cache-pause-initial maybe-type/boolean "")
(cache-pause-wait
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val +inf.0))))))
(cache-secs
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(cdda-cdtext maybe-type/boolean "")
(cdda-device maybe-type/string "")
(cdda-overlap
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 75))))))
(cdda-paranoia
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2))))))
(cdda-sector-size
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 100))))))
(cdda-skip maybe-type/boolean "")
(cdda-span-a maybe-type/integer "")
(cdda-span-b maybe-type/integer "")
(cdda-speed
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 100))))))
(cdda-toc-offset maybe-type/integer "")
(chapter-merge-threshold
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 10000))))))
(chapter-seek-threshold maybe-type/double "")
(chapters-file maybe-type/string "")
(config maybe-type/boolean "")
(container-fps-override
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(contrast
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -100)
(<= val 100))))))
(cookies maybe-type/boolean "")
(cookies-file maybe-type/string "")
(corner-rounding
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(correct-downscaling maybe-type/boolean "")
(correct-pts maybe-type/boolean "")
(cover-art-auto
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no exact fuzzy all)))))))
(cover-art-files maybe-type/list-of-string "")
(cover-art-whitelist
maybe-type/list-of-string
"")
(cscale
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(bilinear
bicubic_fast
oversample
spline16
spline36
spline64
sinc
lanczos
ginseng
bicubic
hermite
catmull_rom
mitchell
robidoux
robidouxsharp
box
nearest
triangle
gaussian
jinc
ewa_lanczos
ewa_hanning
ewa_ginseng
ewa_lanczossharp
ewa_lanczos4sharpest
ewa_lanczossoft
haasnsoft
ewa_robidoux
ewa_robidouxsharp
bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx)))))))
(cscale-antiring
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(cscale-blur maybe-type/float "")
(cscale-clamp
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(cscale-param1 maybe-type/float "")
(cscale-param2 maybe-type/float "")
(cscale-radius
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.5)
(<= val 16))))))
(cscale-taper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(cscale-window
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx
jinc)))))))
(cscale-wparam maybe-type/float "")
(cscale-wtaper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(cursor-autohide
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no always))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 30000))))))))
(cursor-autohide-fs-only maybe-type/boolean "")
(deband maybe-type/boolean "")
(deband-grain
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 4096))))))
(deband-iterations
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 16))))))
(deband-range
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 1)
(<= val 64))))))
(deband-threshold
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 4096))))))
(deinterlace
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes auto)))))))
(deinterlace-field-parity
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(tff bff auto)))))))
(demuxer maybe-type/string "")
(demuxer-backward-playback-step
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(demuxer-cache-dir maybe-type/string "")
(demuxer-cache-unlink-files
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(immediate whendone no)))))))
(demuxer-cache-wait maybe-type/boolean "")
(demuxer-donate-buffer maybe-type/boolean "")
(demuxer-hysteresis-secs
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(demuxer-lavf-allow-mimetype
maybe-type/boolean
"")
(demuxer-lavf-analyzeduration
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 3600))))))
(demuxer-lavf-buffersize
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 10485760))))))
(demuxer-lavf-format maybe-type/string "")
(demuxer-lavf-hacks maybe-type/boolean "")
(demuxer-lavf-linearize-timestamps
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no auto yes)))))))
(demuxer-lavf-o maybe-type/list-of-key-value "")
(demuxer-lavf-probe-info
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes auto nostreams)))))))
(demuxer-lavf-probescore
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 100))))))
(demuxer-lavf-probesize
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 32)
(<= val 2147483647))))))
(demuxer-lavf-propagate-opts
maybe-type/boolean
"")
(demuxer-max-back-bytes
maybe-type/byte-size
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/byte-size? val)
(>= val 0)
(<= val 4.6116860184274e18))))))
(demuxer-max-bytes
maybe-type/byte-size
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/byte-size? val)
(>= val 0)
(<= val 4.6116860184274e18))))))
(demuxer-mkv-probe-start-time
maybe-type/boolean
"")
(demuxer-mkv-probe-video-duration
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes full)))))))
(demuxer-mkv-subtitle-preroll
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes index)))))))
(demuxer-mkv-subtitle-preroll-secs
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(demuxer-mkv-subtitle-preroll-secs-index
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(demuxer-rawaudio-channels
maybe-type/audio-channels-or-channel-map
"")
(demuxer-rawaudio-format
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(u8 s8
u16le
u16be
s16le
s16be
u24le
u24be
s24le
s24be
u32le
u32be
s32le
s32be
floatle
floatbe
doublele
doublebe
u16
s16
u24
s24
u32
s32
float
double)))))))
(demuxer-rawaudio-rate
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1000)
(<= val 384000))))))
(demuxer-rawvideo-codec maybe-type/string "")
(demuxer-rawvideo-format maybe-type/fourcc "")
(demuxer-rawvideo-fps
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.001)
(<= val 1000))))))
(demuxer-rawvideo-h
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 8192))))))
(demuxer-rawvideo-mp-format
maybe-type/image-format
"")
(demuxer-rawvideo-size
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 268435456))))))
(demuxer-rawvideo-w
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 8192))))))
(demuxer-readahead-secs
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(demuxer-seekable-cache
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto no yes)))))))
(demuxer-termination-timeout
maybe-type/double
"")
(demuxer-thread maybe-type/boolean "")
(directory-filter-types
maybe-type/list-of-string
"")
(directory-mode
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto lazy recursive ignore)))))))
(display-fps-override
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(display-tags maybe-type/list-of-string "")
(dither
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(fruit ordered error-diffusion no)))))))
(dither-depth
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no auto))
(and (maybe-type/integer? val)
(>= val -1)
(<= val 16))))))))
(dither-size-fruit
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 2)
(<= val 8))))))
(drag-and-drop
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no auto replace append insert-next)))))))
(drm-connector maybe-type/string "")
(drm-device maybe-type/string "")
(drm-draw-plane
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(primary overlay))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))))
(drm-draw-surface-size maybe-type/window-size "")
(drm-drmprime-video-plane
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(primary overlay))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))))
(drm-format
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(xrgb8888 xrgb2101010 xbgr8888 xbgr2101010 yuyv)))))))
(drm-mode maybe-type/string "")
(drm-vrr-enabled
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes auto)))))))
(dscale
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(bilinear
bicubic_fast
oversample
spline16
spline36
spline64
sinc
lanczos
ginseng
bicubic
hermite
catmull_rom
mitchell
robidoux
robidouxsharp
box
nearest
triangle
gaussian
jinc
ewa_lanczos
ewa_hanning
ewa_ginseng
ewa_lanczossharp
ewa_lanczos4sharpest
ewa_lanczossoft
haasnsoft
ewa_robidoux
ewa_robidouxsharp
bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx)))))))
(dscale-antiring
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(dscale-blur maybe-type/float "")
(dscale-clamp
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(dscale-param1 maybe-type/float "")
(dscale-param2 maybe-type/float "")
(dscale-radius
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.5)
(<= val 16))))))
(dscale-taper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(dscale-window
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx
jinc)))))))
(dscale-wparam maybe-type/float "")
(dscale-wtaper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(dump-stats maybe-type/string "")
(dvbin-card
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 15))))))
(dvbin-channel-switch-offset
maybe-type/integer
"")
(dvbin-file maybe-type/string "")
(dvbin-full-transponder maybe-type/boolean "")
(dvbin-prog maybe-type/string "")
(dvbin-timeout
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 30))))))
(dvd-angle
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 99))))))
(dvd-device maybe-type/string "")
(dvd-speed maybe-type/integer "")
(edition
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(auto))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 8190))))))))
(egl-config-id maybe-type/integer "")
(egl-output-format
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto rgb8
rgba8
rgb10
rgb10_a2
rgb16
rgba16
rgb16f
rgba16f
rgb32f
rgba32f)))))))
(embeddedfonts maybe-type/boolean "")
(end maybe-type/relative-time-or-percent-position
"")
(error-diffusion maybe-type/string "")
(external-files maybe-type/list-of-string "")
(fbo-format maybe-type/string "")
(focus-on
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(never open all)))))))
(force-media-title maybe-type/string "")
(force-render maybe-type/boolean "")
(force-rgba-osd-rendering maybe-type/boolean "")
(force-seekable maybe-type/boolean "")
(force-window
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes immediate)))))))
(force-window-position maybe-type/boolean "")
(framedrop
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no vo decoder decoder+vo)))))))
(frames
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(all))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))))
(fs-screen
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(all current))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 32))))))))
(fs-screen-name maybe-type/string "")
(fullscreen maybe-type/boolean "")
(gamma maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -100)
(<= val 100))))))
(gamma-auto maybe-type/boolean "")
(gamma-factor
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.1)
(<= val 2))))))
(gamut-mapping-mode
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto clip
perceptual
relative
saturation
absolute
desaturate
darken
warn
linear)))))))
(gapless-audio
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes weak)))))))
(geometry maybe-type/window-geometry "")
(glsl-shader-opts
maybe-type/list-of-key-value
"")
(glsl-shaders maybe-type/list-of-string "")
(gpu-api maybe-type/list-of-object-setting "")
(gpu-context
maybe-type/list-of-object-setting
"")
(gpu-debug maybe-type/boolean "")
(gpu-dumb-mode
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto yes no)))))))
(gpu-hwdec-interop maybe-type/string "")
(gpu-shader-cache maybe-type/boolean "")
(gpu-shader-cache-dir maybe-type/string "")
(gpu-sw maybe-type/boolean "")
(gpu-tex-pad-x
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 4096))))))
(gpu-tex-pad-y
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 4096))))))
(hdr-compute-peak
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto yes no)))))))
(hdr-contrast-recovery
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 2))))))
(hdr-contrast-smoothness
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 1)
(<= val 100))))))
(hdr-peak-decay-rate
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1000))))))
(hdr-peak-percentile
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(hdr-scene-threshold-high
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 20))))))
(hdr-scene-threshold-low
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 20))))))
(hidpi-window-scale maybe-type/boolean "")
(hls-bitrate
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no min max))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))))
(hr-seek
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no absolute yes always default)))))))
(hr-seek-demuxer-offset maybe-type/float "")
(hr-seek-framedrop maybe-type/boolean "")
(http-header-fields maybe-type/list-of-string "")
(http-proxy maybe-type/string "")
(hue maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -100)
(<= val 100))))))
(hwdec maybe-type/list-of-string "")
(hwdec-codecs maybe-type/string "")
(hwdec-extra-frames
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 256))))))
(hwdec-image-format maybe-type/image-format "")
(icc-3dlut-size maybe-type/string "")
(icc-cache maybe-type/boolean "")
(icc-cache-dir maybe-type/string "")
(icc-force-contrast
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no inf))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 1000000))))))))
(icc-intent maybe-type/integer "")
(icc-profile maybe-type/string "")
(icc-profile-auto maybe-type/boolean "")
(icc-use-luma maybe-type/boolean "")
(idle maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no once yes)))))))
(ignore-path-in-watch-later-config
maybe-type/boolean
"")
(image-display-duration
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(image-exts maybe-type/list-of-string "")
(image-lut maybe-type/string "")
(image-lut-type
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto native normalized conversion)))))))
(image-subs-video-resolution
maybe-type/boolean
"")
(include maybe-type/string "")
(index maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(default recreate)))))))
(initial-audio-sync maybe-type/boolean "")
(input-ar-delay maybe-type/integer "")
(input-ar-rate maybe-type/integer "")
(input-builtin-bindings maybe-type/boolean "")
(input-builtin-dragging maybe-type/boolean "")
(input-commands maybe-type/list-of-string "")
(input-conf maybe-type/string "")
(input-cursor maybe-type/boolean "")
(input-cursor-passthrough maybe-type/boolean "")
(input-default-bindings maybe-type/boolean "")
(input-doubleclick-time
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 1000))))))
(input-dragging-deadzone maybe-type/integer "")
(input-ipc-client maybe-type/string "")
(input-ipc-server maybe-type/string "")
(input-key-fifo-size
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 2)
(<= val 65000))))))
(input-media-keys maybe-type/boolean "")
(input-preprocess-wheel maybe-type/boolean "")
(input-right-alt-gr maybe-type/boolean "")
(input-terminal maybe-type/boolean "")
(input-test maybe-type/boolean "")
(input-touch-emulate-mouse maybe-type/boolean "")
(input-vo-keyboard maybe-type/boolean "")
(interpolation maybe-type/boolean "")
(interpolation-preserve maybe-type/boolean "")
(interpolation-threshold maybe-type/float "")
(inverse-tone-mapping maybe-type/boolean "")
(jack-autostart maybe-type/boolean "")
(jack-connect maybe-type/boolean "")
(jack-name maybe-type/string "")
(jack-port maybe-type/string "")
(jack-std-channel-layout
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(waveext any)))))))
(keep-open
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes always)))))))
(keep-open-pause maybe-type/boolean "")
(keepaspect maybe-type/boolean "")
(keepaspect-window maybe-type/boolean "")
(lavfi-complex maybe-type/string "")
(length
maybe-type/relative-time-or-percent-position
"")
(libplacebo-opts maybe-type/list-of-key-value "")
(linear-downscaling maybe-type/boolean "")
(linear-upscaling maybe-type/boolean "")
(load-auto-profiles
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes auto)))))))
(load-osd-console maybe-type/boolean "")
(load-scripts maybe-type/boolean "")
(load-select maybe-type/boolean "")
(load-stats-overlay maybe-type/boolean "")
(load-unsafe-playlists maybe-type/boolean "")
(log-file maybe-type/string "")
(loop-file
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no inf yes))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 10000))))))))
(loop-playlist
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no inf yes force))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 10000))))))))
(lut maybe-type/string "")
(lut-type
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto native normalized conversion)))))))
(mc maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(media-controls
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no player yes)))))))
(merge-files maybe-type/boolean "")
(metadata-codepage maybe-type/string "")
(mf-fps maybe-type/double "")
(mf-type maybe-type/string "")
(monitoraspect
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 9))))))
(monitorpixelaspect
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.03125)
(<= val 32))))))
(msg-color maybe-type/boolean "")
(msg-level
maybe-type/list-of-output-verbosity
"")
(msg-module maybe-type/boolean "")
(msg-time maybe-type/boolean "")
(mute maybe-type/boolean "")
(native-fs maybe-type/boolean "")
(native-keyrepeat maybe-type/boolean "")
(native-touch maybe-type/boolean "")
(network-timeout
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(oac maybe-type/string "")
(oacopts maybe-type/list-of-key-value "")
(ocopy-metadata maybe-type/boolean "")
(of maybe-type/string "")
(ofopts maybe-type/list-of-key-value "")
(on-all-workspaces maybe-type/boolean "")
(ontop maybe-type/boolean "")
(ontop-level
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(window system desktop))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))))
(opengl-check-pattern-a maybe-type/integer "")
(opengl-check-pattern-b maybe-type/integer "")
(opengl-early-flush
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes auto)))))))
(opengl-es
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto yes no)))))))
(opengl-glfinish maybe-type/boolean "")
(opengl-pbo maybe-type/boolean "")
(opengl-rectangle-textures maybe-type/boolean "")
(opengl-swapinterval maybe-type/integer "")
(opengl-waitvsync maybe-type/boolean "")
(orawts maybe-type/boolean "")
(ordered-chapters maybe-type/boolean "")
(ordered-chapters-files maybe-type/string "")
(oremove-metadata maybe-type/list-of-string "")
(osc maybe-type/boolean "")
(osd-align-x
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(left center right)))))))
(osd-align-y
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(top center bottom)))))))
(osd-back-color maybe-type/color "")
(osd-bar maybe-type/boolean "")
(osd-bar-align-x
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -1)
(<= val 1))))))
(osd-bar-align-y
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -1)
(<= val 1))))))
(osd-bar-h
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.1)
(<= val 50))))))
(osd-bar-outline-size
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1000))))))
(osd-bar-w
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 1)
(<= val 100))))))
(osd-blur
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 20))))))
(osd-bold maybe-type/boolean "")
(osd-border-style
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(outline-and-shadow opaque-box background-box)))))))
(osd-color maybe-type/color "")
(osd-duration
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 3600000))))))
(osd-font maybe-type/string "")
(osd-font-provider
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto none fontconfig)))))))
(osd-font-size
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 1)
(<= val 9000))))))
(osd-fonts-dir maybe-type/string "")
(osd-fractions maybe-type/boolean "")
(osd-italic maybe-type/boolean "")
(osd-justify
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto left center right)))))))
(osd-level
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(#{0}# #{1}# #{2}# #{3}#)))))))
(osd-margin-x
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 300))))))
(osd-margin-y
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 600))))))
(osd-msg1 maybe-type/string "")
(osd-msg2 maybe-type/string "")
(osd-msg3 maybe-type/string "")
(osd-on-seek
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no bar msg msg-bar)))))))
(osd-outline-color maybe-type/color "")
(osd-outline-size maybe-type/float "")
(osd-playing-msg maybe-type/string "")
(osd-playing-msg-duration
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 3600000))))))
(osd-playlist-entry
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(title filename both)))))))
(osd-scale
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(osd-scale-by-window maybe-type/boolean "")
(osd-shadow-offset maybe-type/float "")
(osd-spacing
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -10)
(<= val 10))))))
(osd-status-msg maybe-type/string "")
(oset-metadata maybe-type/list-of-key-value "")
(ovc maybe-type/string "")
(ovcopts maybe-type/list-of-key-value "")
(panscan
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(pause maybe-type/boolean "")
(pitch maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0.01)
(<= val 100))))))
(play-direction
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(forward + backward -)))))))
(player-operation-mode
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(cplayer pseudo-gui)))))))
(playlist-start
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(auto no))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))))
(prefetch-playlist maybe-type/boolean "")
(profile maybe-type/list-of-string "")
(pulse-allow-suspended maybe-type/boolean "")
(pulse-buffer
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(native))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 2000))))))))
(pulse-host maybe-type/string "")
(pulse-latency-hacks maybe-type/boolean "")
(quiet maybe-type/boolean "")
(really-quiet maybe-type/boolean "")
(rebase-start-time maybe-type/boolean "")
(referrer maybe-type/string "")
(replaygain
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no track album)))))))
(replaygain-clip maybe-type/boolean "")
(replaygain-fallback
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -200)
(<= val 60))))))
(replaygain-preamp
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -150)
(<= val 150))))))
(reset-on-next-file maybe-type/list-of-string "")
(resume-playback maybe-type/boolean "")
(resume-playback-check-mtime
maybe-type/boolean
"")
(rtsp-transport
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(lavf udp tcp http udp_multicast)))))))
(saturation
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -100)
(<= val 100))))))
(save-position-on-quit maybe-type/boolean "")
(scale maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(bilinear
bicubic_fast
oversample
spline16
spline36
spline64
sinc
lanczos
ginseng
bicubic
hermite
catmull_rom
mitchell
robidoux
robidouxsharp
box
nearest
triangle
gaussian
jinc
ewa_lanczos
ewa_hanning
ewa_ginseng
ewa_lanczossharp
ewa_lanczos4sharpest
ewa_lanczossoft
haasnsoft
ewa_robidoux
ewa_robidouxsharp
bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx)))))))
(scale-antiring
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(scale-blur maybe-type/float "")
(scale-clamp
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(scale-param1 maybe-type/float "")
(scale-param2 maybe-type/float "")
(scale-radius
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.5)
(<= val 16))))))
(scale-taper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(scale-window
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx
jinc)))))))
(scale-wparam maybe-type/float "")
(scale-wtaper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(scaler-resizes-only maybe-type/boolean "")
(screen
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(default))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 32))))))))
(screen-name maybe-type/string "")
(screenshot-avif-encoder maybe-type/string "")
(screenshot-avif-opts
maybe-type/list-of-key-value
"")
(screenshot-avif-pixfmt maybe-type/string "")
(screenshot-directory maybe-type/string "")
(screenshot-format
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(jpg jpeg png webp jxl avif)))))))
(screenshot-high-bit-depth maybe-type/boolean "")
(screenshot-jpeg-quality
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 100))))))
(screenshot-jpeg-source-chroma
maybe-type/boolean
"")
(screenshot-jxl-distance
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val 15))))))
(screenshot-jxl-effort
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 9))))))
(screenshot-png-compression
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 9))))))
(screenshot-png-filter
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 5))))))
(screenshot-sw maybe-type/boolean "")
(screenshot-tag-colorspace maybe-type/boolean "")
(screenshot-template maybe-type/string "")
(screenshot-webp-compression
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 6))))))
(screenshot-webp-lossless maybe-type/boolean "")
(screenshot-webp-quality
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 100))))))
(script-opts maybe-type/list-of-key-value "")
(scripts maybe-type/list-of-string "")
(secondary-sid
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no auto))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 8190))))))))
(secondary-sub-ass-override
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes scale force strip)))))))
(secondary-sub-delay maybe-type/float "")
(secondary-sub-pos
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 150))))))
(secondary-sub-visibility maybe-type/boolean "")
(sharpen maybe-type/float "")
(show-in-taskbar maybe-type/boolean "")
(shuffle maybe-type/boolean "")
(sub maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no auto))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 8190))))))))
(sigmoid-center
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(sigmoid-slope
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 1)
(<= val 20))))))
(sigmoid-upscaling maybe-type/boolean "")
(slang maybe-type/list-of-string "")
(snap-window maybe-type/boolean "")
(speed maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0.01)
(<= val 100))))))
(spirv-compiler
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto)))))))
(sstep maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(start maybe-type/relative-time-or-percent-position
"")
(stop-playback-on-init-failure
maybe-type/boolean
"")
(stop-screensaver
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes always)))))))
(stream-buffer-size
maybe-type/byte-size
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/byte-size? val)
(>= val 4096)
(<= val 536870912))))))
(stream-dump maybe-type/string "")
(stream-lavf-o maybe-type/list-of-key-value "")
(stream-record maybe-type/string "")
(stretch-dvd-subs maybe-type/boolean "")
(stretch-image-subs-to-screen
maybe-type/boolean
"")
(sub-align-x
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(left center right)))))))
(sub-align-y
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(top center bottom)))))))
(sub-ass maybe-type/boolean "")
(sub-ass-force-margins maybe-type/boolean "")
(sub-ass-hinting
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(none light normal native)))))))
(sub-ass-justify maybe-type/boolean "")
(sub-ass-line-spacing
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -1000)
(<= val 1000))))))
(sub-ass-override
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes scale force strip)))))))
(sub-ass-scale-with-window maybe-type/boolean "")
(sub-ass-shaper
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(simple complex)))))))
(sub-ass-style-overrides
maybe-type/list-of-string
"")
(sub-ass-styles maybe-type/string "")
(sub-ass-use-video-data
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(none aspect-ratio all)))))))
(sub-ass-video-aspect-override
maybe-type/aspect
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/aspect? val)
(>= val 0)
(<= val 10))))))
(sub-ass-vsfilter-color-compat
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no basic full force-601)))))))
(sub-auto
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no exact fuzzy all)))))))
(sub-auto-exts maybe-type/list-of-string "")
(sub-back-color maybe-type/color "")
(sub-blur
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 20))))))
(sub-bold maybe-type/boolean "")
(sub-border-style
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(outline-and-shadow opaque-box background-box)))))))
(sub-clear-on-seek maybe-type/boolean "")
(sub-codepage maybe-type/string "")
(sub-color maybe-type/color "")
(sub-create-cc-track maybe-type/boolean "")
(sub-delay maybe-type/float "")
(sub-demuxer maybe-type/string "")
(sub-file-paths maybe-type/list-of-string "")
(sub-files maybe-type/list-of-string "")
(sub-filter-jsre maybe-type/list-of-string "")
(sub-filter-regex maybe-type/list-of-string "")
(sub-filter-regex-enable maybe-type/boolean "")
(sub-filter-regex-plain maybe-type/boolean "")
(sub-filter-regex-warn maybe-type/boolean "")
(sub-filter-sdh maybe-type/boolean "")
(sub-filter-sdh-enclosures maybe-type/string "")
(sub-filter-sdh-harder maybe-type/boolean "")
(sub-fix-timing maybe-type/boolean "")
(sub-font maybe-type/string "")
(sub-font-provider
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto none fontconfig)))))))
(sub-font-size
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 1)
(<= val 9000))))))
(sub-fonts-dir maybe-type/string "")
(sub-forced-events-only maybe-type/boolean "")
(sub-fps maybe-type/float "")
(sub-gauss
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 3))))))
(sub-gray maybe-type/boolean "")
(sub-italic maybe-type/boolean "")
(sub-justify
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto left center right)))))))
(sub-lavc-o maybe-type/list-of-key-value "")
(sub-margin-x
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 300))))))
(sub-margin-y
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 600))))))
(sub-outline-color maybe-type/color "")
(sub-outline-size maybe-type/float "")
(sub-past-video-end maybe-type/boolean "")
(sub-pos
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 150))))))
(sub-scale
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(sub-scale-by-window maybe-type/boolean "")
(sub-scale-with-window maybe-type/boolean "")
(sub-shadow-offset maybe-type/float "")
(sub-spacing
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -10)
(<= val 10))))))
(sub-speed maybe-type/float "")
(sub-stretch-durations maybe-type/boolean "")
(sub-use-margins maybe-type/boolean "")
(sub-visibility maybe-type/boolean "")
(sub-vsfilter-bidi-compat maybe-type/boolean "")
(subs-fallback
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no default yes)))))))
(subs-fallback-forced
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes always)))))))
(subs-match-os-language maybe-type/boolean "")
(subs-with-matching-audio
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no forced yes)))))))
(swapchain-depth
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 8))))))
(sws-allow-zimg maybe-type/boolean "")
(sws-bitexact maybe-type/boolean "")
(sws-cgb
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(sws-chs maybe-type/integer "")
(sws-cs
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -100)
(<= val 100))))))
(sws-cvs maybe-type/integer "")
(sws-fast maybe-type/boolean "")
(sws-lgb
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 100))))))
(sws-ls
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -100)
(<= val 100))))))
(sws-scaler
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(fast-bilinear
bilinear
bicubic
x
point
area
bicublin
gauss
sinc
lanczos
spline)))))))
(target-colorspace-hint maybe-type/boolean "")
(target-contrast
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(auto inf))
(and (maybe-type/integer? val)
(>= val 10)
(<= val 1000000))))))))
(target-gamut
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto bt.601-525
bt.601-625
bt.709
bt.2020
bt.470m
apple
adobe
prophoto
cie1931
dci-p3
display-p3
v-gamut
s-gamut
ebu3213
film-c
aces-ap0
aces-ap1)))))))
(target-lut maybe-type/string "")
(target-peak
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(auto))
(and (maybe-type/integer? val)
(>= val 10)
(<= val 10000))))))))
(target-prim
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto bt.601-525
bt.601-625
bt.709
bt.2020
bt.470m
apple
adobe
prophoto
cie1931
dci-p3
display-p3
v-gamut
s-gamut
ebu3213
film-c
aces-ap0
aces-ap1)))))))
(target-trc
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto bt.1886
srgb
linear
gamma1.8
gamma2.0
gamma2.2
gamma2.4
gamma2.6
gamma2.8
prophoto
pq
hlg
v-log
s-log1
s-log2
st428)))))))
(taskbar-progress maybe-type/boolean "")
(teletext-page
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val -1)
(<= val 999))))))
(temporal-dither maybe-type/boolean "")
(temporal-dither-period
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 128))))))
(term-osd
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(force auto no)))))))
(term-osd-bar maybe-type/boolean "")
(term-osd-bar-chars maybe-type/string "")
(term-playing-msg maybe-type/string "")
(term-status-msg maybe-type/string "")
(term-title maybe-type/string "")
(terminal maybe-type/boolean "")
(title maybe-type/string "")
(title-bar maybe-type/boolean "")
(tls-ca-file maybe-type/string "")
(tls-cert-file maybe-type/string "")
(tls-key-file maybe-type/string "")
(tls-verify maybe-type/boolean "")
(tone-mapping
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto clip
mobius
reinhard
hable
gamma
linear
spline
bt.2390
bt.2446a
st2094-40
st2094-10)))))))
(tone-mapping-max-boost
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 1)
(<= val 10))))))
(tone-mapping-param maybe-type/float "")
(tone-mapping-visualize maybe-type/boolean "")
(track-auto-selection maybe-type/boolean "")
(tscale
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(oversample
linear
spline16
spline36
spline64
sinc
lanczos
ginseng
bicubic
hermite
catmull_rom
mitchell
robidoux
robidouxsharp
box
nearest
triangle
gaussian
bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx
jinc)))))))
(tscale-antiring
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(tscale-blur maybe-type/float "")
(tscale-clamp
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(tscale-param1 maybe-type/float "")
(tscale-param2 maybe-type/float "")
(tscale-radius
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0.5)
(<= val 16))))))
(tscale-taper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(tscale-window
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(bartlett
cosine
hanning
tukey
hamming
quadric
welch
kaiser
blackman
sphinx
jinc)))))))
(tscale-wparam maybe-type/float "")
(tscale-wtaper
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(untimed maybe-type/boolean "")
(use-embedded-icc-profile maybe-type/boolean "")
(use-filedir-conf maybe-type/boolean "")
(user-agent maybe-type/string "")
(vaapi-device maybe-type/string "")
(vd maybe-type/string "")
(vd-apply-cropping maybe-type/boolean "")
(vd-lavc-assume-old-x264 maybe-type/boolean "")
(vd-lavc-bitexact maybe-type/boolean "")
(vd-lavc-check-hw-profile maybe-type/boolean "")
(vd-lavc-dr
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto no yes)))))))
(vd-lavc-fast maybe-type/boolean "")
(vd-lavc-film-grain
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto cpu gpu)))))))
(vd-lavc-framedrop
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(none default nonref bidir nonkey all)))))))
(vd-lavc-o maybe-type/list-of-key-value "")
(vd-lavc-show-all maybe-type/boolean "")
(vd-lavc-skipframe
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(none default nonref bidir nonkey all)))))))
(vd-lavc-skipidct
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(none default nonref bidir nonkey all)))))))
(vd-lavc-skiploopfilter
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(none default nonref bidir nonkey all)))))))
(vd-lavc-software-fallback
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no yes))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 2147483647))))))))
(vd-lavc-threads
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val +inf.0))))))
(vd-queue-enable maybe-type/boolean "")
(vd-queue-max-bytes
maybe-type/byte-size
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/byte-size? val)
(>= val 0)
(<= val 4.6116860184274e18))))))
(vd-queue-max-samples
maybe-type/integer64
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer64? val)
(>= val 0)
(<= val +inf.0))))))
(vd-queue-max-secs
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(vf maybe-type/list-of-object-setting "")
(video maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no auto))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 8190))))))))
(video-align-x
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -1)
(<= val 1))))))
(video-align-y
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -1)
(<= val 1))))))
(video-aspect-method
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(bitstream container)))))))
(video-aspect-override
maybe-type/aspect
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/aspect? val)
(>= val -1)
(<= val 10))))))
(video-backward-batch
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 1024))))))
(video-backward-overlap
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(auto))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 1024))))))))
(video-crop maybe-type/video-rectangle "")
(video-exts maybe-type/list-of-string "")
(video-latency-hacks maybe-type/boolean "")
(video-margin-ratio-bottom
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(video-margin-ratio-left
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(video-margin-ratio-right
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(video-margin-ratio-top
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(video-osd maybe-type/boolean "")
(video-output-levels
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto limited full)))))))
(video-pan-x maybe-type/float "")
(video-pan-y maybe-type/float "")
(video-reversal-buffer
maybe-type/byte-size
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/byte-size? val)
(>= val 0)
(<= val 4.6116860184274e18))))))
(video-rotate
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(no))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 359))))))))
(video-scale-x
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 10000))))))
(video-scale-y
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 10000))))))
(video-sync
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(audio display-resample
display-resample-vdrop
display-resample-desync
display-tempo
display-adrop
display-vdrop
display-desync
desync)))))))
(video-sync-max-audio-change
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val 1))))))
(video-sync-max-factor
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 10))))))
(video-sync-max-video-change
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val +inf.0))))))
(video-timing-offset
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val 1))))))
(video-unscaled
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes downscale-big)))))))
(video-zoom
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -20)
(<= val 20))))))
(vlang maybe-type/list-of-string "")
(vo maybe-type/list-of-object-setting "")
(vo-image-avif-encoder maybe-type/string "")
(vo-image-avif-opts
maybe-type/list-of-key-value
"")
(vo-image-avif-pixfmt maybe-type/string "")
(vo-image-format
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(jpg jpeg png webp jxl avif)))))))
(vo-image-high-bit-depth maybe-type/boolean "")
(vo-image-jpeg-quality
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 100))))))
(vo-image-jpeg-source-chroma
maybe-type/boolean
"")
(vo-image-jxl-distance
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val 15))))))
(vo-image-jxl-effort
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 9))))))
(vo-image-outdir maybe-type/string "")
(vo-image-png-compression
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 9))))))
(vo-image-png-filter
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 5))))))
(vo-image-tag-colorspace maybe-type/boolean "")
(vo-image-webp-compression
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 6))))))
(vo-image-webp-lossless maybe-type/boolean "")
(vo-image-webp-quality
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 100))))))
(vo-kitty-alt-screen maybe-type/boolean "")
(vo-kitty-cols maybe-type/integer "")
(vo-kitty-config-clear maybe-type/boolean "")
(vo-kitty-height maybe-type/integer "")
(vo-kitty-left maybe-type/integer "")
(vo-kitty-rows maybe-type/integer "")
(vo-kitty-top maybe-type/integer "")
(vo-kitty-use-shm maybe-type/boolean "")
(vo-kitty-width maybe-type/integer "")
(vo-null-fps
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0)
(<= val 10000))))))
(vo-sixel-alt-screen maybe-type/boolean "")
(vo-sixel-buffered maybe-type/boolean "")
(vo-sixel-cols maybe-type/integer "")
(vo-sixel-config-clear maybe-type/boolean "")
(vo-sixel-dither
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto none
atkinson
fs
jajuni
stucki
burkes
arithmetic
xor)))))))
(vo-sixel-fixedpalette maybe-type/boolean "")
(vo-sixel-height maybe-type/integer "")
(vo-sixel-left maybe-type/integer "")
(vo-sixel-pad-x maybe-type/integer "")
(vo-sixel-pad-y maybe-type/integer "")
(vo-sixel-reqcolors maybe-type/integer "")
(vo-sixel-rows maybe-type/integer "")
(vo-sixel-threshold maybe-type/integer "")
(vo-sixel-top maybe-type/integer "")
(vo-sixel-width maybe-type/integer "")
(vo-tct-256 maybe-type/boolean "")
(vo-tct-algo
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(plain half-blocks)))))))
(vo-tct-buffering
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(pixel line frame)))))))
(vo-tct-height maybe-type/integer "")
(vo-tct-width maybe-type/integer "")
(vo-vaapi-scaled-osd maybe-type/boolean "")
(vo-vaapi-scaling
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(default fast hq nla)))))))
(vo-vdpau-chroma-deint maybe-type/boolean "")
(vo-vdpau-colorkey maybe-type/color "")
(vo-vdpau-composite-detect maybe-type/boolean "")
(vo-vdpau-denoise
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 1))))))
(vo-vdpau-force-yuv maybe-type/boolean "")
(vo-vdpau-fps maybe-type/double "")
(vo-vdpau-hqscaling
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 9))))))
(vo-vdpau-output-surfaces
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 2)
(<= val 15))))))
(vo-vdpau-pullup maybe-type/boolean "")
(vo-vdpau-queuetime-fs maybe-type/integer "")
(vo-vdpau-queuetime-windowed
maybe-type/integer
"")
(vo-vdpau-sharpen
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -1)
(<= val 1))))))
(volume
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -1)
(<= val 1000))))))
(volume-gain
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -150)
(<= val 150))))))
(volume-gain-max
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 0)
(<= val 150))))))
(volume-gain-min
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val -150)
(<= val 0))))))
(volume-max
maybe-type/float
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/float? val)
(>= val 100)
(<= val 1000))))))
(vulkan-async-compute maybe-type/boolean "")
(vulkan-async-transfer maybe-type/boolean "")
(vulkan-device maybe-type/string "")
(vulkan-display-display maybe-type/integer "")
(vulkan-display-mode maybe-type/integer "")
(vulkan-display-plane maybe-type/integer "")
(vulkan-queue-count
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 8))))))
(vulkan-swap-mode
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(auto fifo fifo-relaxed mailbox immediate)))))))
(watch-later-directory maybe-type/string "")
(watch-later-options
maybe-type/list-of-string
"")
(wayland-app-id maybe-type/string "")
(wayland-configure-bounds
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto no yes)))))))
(wayland-content-type
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto none photo video game)))))))
(wayland-disable-vsync maybe-type/boolean "")
(wayland-edge-pixels-pointer
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))
(wayland-edge-pixels-touch
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val 2147483647))))))
(wayland-present maybe-type/boolean "")
(wid maybe-type/integer64 "")
(window-dragging maybe-type/boolean "")
(window-maximized maybe-type/boolean "")
(window-minimized maybe-type/boolean "")
(window-scale
maybe-type/double
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/double? val)
(>= val 0.001)
(<= val 100))))))
(write-filename-in-watch-later-config
maybe-type/boolean
"")
(x11-bypass-compositor
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no yes fs-only never)))))))
(x11-name maybe-type/string "")
(x11-netwm
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(auto no yes)))))))
(x11-present
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no auto yes)))))))
(x11-wid-title maybe-type/boolean "")
(xv-adaptor
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val -1)
(<= val +inf.0))))))
(xv-buffers
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 10))))))
(xv-ck maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(use set cur)))))))
(xv-ck-method
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(none bg man auto)))))))
(xv-colorkey maybe-type/integer "")
(xv-port
maybe-type/integer
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/integer? val)
(>= val 0)
(<= val +inf.0))))))
(ytdl maybe-type/boolean "")
(ytdl-format maybe-type/string "")
(ytdl-raw-options
maybe-type/list-of-key-value
"")
(zimg-dither
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val '(no ordered random error-diffusion)))))))
(zimg-fast maybe-type/boolean "")
(zimg-scaler
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(point bilinear
bicubic
spline16
spline36
lanczos)))))))
(zimg-scaler-chroma
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(memq val
'(point bilinear
bicubic
spline16
spline36
lanczos)))))))
(zimg-scaler-chroma-param-a maybe-type/double "")
(zimg-scaler-chroma-param-b maybe-type/double "")
(zimg-scaler-param-a maybe-type/double "")
(zimg-scaler-param-b maybe-type/double "")
(zimg-threads
maybe-type/enumeration
""
(sanitizer
(lambda (val)
(or (not (maybe-value-set? val))
(and (maybe-type/enumeration? val)
(or (memq val '(auto))
(and (maybe-type/integer? val)
(>= val 1)
(<= val 64)))))))))
;;; Generated code - END.
(set-object-property!
(module-ref (current-module) 'mpv-profile-configuration)
'documentation
(generate-documentation
`((mpv-profile-configuration ,mpv-profile-configuration-fields))
'mpv-profile-configuration))
\f
;;;
;;; Configuration base.
;;;
(define-maybe type/mpv-profile-configurations)
(define (serialize-type/mpv-profile-configurations _ profiles)
#~(string-append
#$@(map (match-lambda
((name . config)
#~(string-append
#$(format #f "[~a]~%" name)
#$(serialize-mpv-profile-configuration _ config))))
profiles)))
(define (type/mpv-profile-configurations? alist)
(every (match-lambda
(((? symbol?) . (? mpv-profile-configuration?)) #t)
(_ #f))
alist))
(define-maybe type/extra)
(define (serialize-type/extra _ value)
#~(string-append #$value "\n"))
(define type/extra? string?)
(define (serialize-mpv-profile-configuration _ config)
(serialize-configuration config mpv-profile-configuration-fields))
(define-configuration home-mpv-configuration
(global
mpv-profile-configuration
"Globally valid settings, outputted before any profile.")
(profiles
maybe-type/mpv-profile-configurations
"Alist mapping additional settings to specific profiles. Key should be a
symbol, value an instance of @code{mpv-profile-configuration}.")
(extra
maybe-type/extra
"Additional content to append to the end of the configuration file."))
(set-object-property!
(module-ref (current-module) 'home-mpv-configuration)
'documentation
(generate-documentation
`((home-mpv-configuration ,home-mpv-configuration-fields))
'home-mpv-configuration))
[-- Attachment #1.3: Type: text/plain, Size: 120 bytes --]
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 853 bytes --]
next reply other threads:[~2024-12-09 15:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 15:13 Tomas Volf [this message]
2024-12-24 14:38 ` bug#74748: Constructor created by define-configuration is slow (>25s) when many fields are defined Ludovic Courtès
2024-12-27 22:50 ` Tomas Volf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87msh499f7.fsf@wolfsden.cz \
--to=~@wolfsden.cz \
--cc=74748@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.