[
  {
    "section": "__meta__",
    "version": 7
  },
  {
    "section": "state",
    "hidden": true,
    "storage": true,
    "values":[
      {
        "value": "geometry",
        "default": "",
        "hidden": true
      }
    ]
  },
  {
    "section": "main",
    "order": 1,
    "values": [
      {
        "value": "webMode",
        "default": "desktop",
        "hidden": true,
        "possible_values": [
          [ "desktop", "desktop" ],
          [ "tv", "tv" ]
        ]
      },
      {
        "value": "layout",
        "default": "desktop",
        "hidden": true,
        "possible_values": [
          [ "desktop", "desktop" ],
          [ "tv", "tv" ]
        ]
      },
      {
        "value": "fullscreen",
        "display_name": "Full Screen",
        "help": "Forces the application into fullscreen mode.\nNote: Regular HTML5 fullscreen does still work.",
        "default": false,
        "platforms_excluded": "oe"
      },
      {
        "value": "minimizeOnDefocus",
        "default": false,
        "platforms": [ "windows" ],
        "hidden": true
      },
      {
        "value": "alwaysOnTop",
        "display_name": "Always on Top",
        "help": "Keeps Jellyfin on top of other windows.",
        "default": false
      },
      {
        "value": "hdmi_poweron",
        "default": false,
        "hidden": true,
        "platforms": [ "oe_rpi" ]
      },
      {
        "value": "disablemouse",
        "default": false,
        "hidden": true
      },
      {
        "value": "logLevel",
        "default": "debug",
        "hidden": true,
        "possible_values": [
          [ "debug", "debug" ],
          [ "info", "info" ],
          [ "warn", "warn" ],
          [ "error", "error" ],
          [ "fatal", "fatal" ],
          [ "disable", "disable" ]
        ]
      },
      {
        "value": "useOpenGL",
        "display_name": "Use OpenGL",
        "help": "Controls display method.",
        "default": false,
        "platforms": [ "windows" ]
      },
      {
        "value": "showPowerOptions",
        "default": true,
        "hidden": true
      },
      {
        "value": "useSystemVideoCodecs",
        "default": [
          {
            "value": true,
            "platforms": [ "oe" ]
          },
          {
            "value": false
          }
        ],
        "hidden": true
      },
      {
        "value": "forceFSScreen",
        "display_name": "Force Full Screen Display",
        "help": "Forces fullscreen to use a specific display.",
        "platforms_excluded": [ "oe" ],
        "default": ""
      },
      {
        "value": "forceAlwaysFS",
        "default": false,
        "hidden": true
      },
      {
        "value": "sdlEnabled",
        "default": true,
        "hidden": true
      },
      {
        "value": "checkForUpdates",
        "display_name": "Check For Updates",
        "help": "Allows user to disable update check plugin script.",
        "default": true
      },
      {
        "value": "enableInputRepeat",
        "display_name": "Enable Input Repeat",
        "help": "Allows disabling repeating of control inputs.",
        "default": true
      },
      {
        "value": "ignoreSSLErrors",
        "default": false,
        "hidden": true
      },
      {
        "value": "autodetectCertBundle",
        "display_name": "Auto-Detect Certificate Bundle",
        "help": "Allows use of system certificates for TLS.",
        "default": true,
        "platforms": [ "linux" ]
      },
      {
        "value": "userWebClient",
        "default": "",
        "hidden": true
      },
      {
        "value": "enableWindowsMediaIntegration",
        "display_name": "Enable Windows Media Integration",
        "default": true,
        "platforms": [ "windows" ]
      },
      {
        "value": "enableWindowsTaskbarIntegration",
        "display_name": "Enable Windows Taskbar Integration",
        "default": true,
        "platforms": [ "windows" ]
      },
      {
        "value": "enableMPV",
        "display_name": "Enable MPV Player",
        "help": "Enables MPV player for video and audio playback. When disabled, Jellyfin will fall back to the browser's built-in HTML5 player. This setting requires an application restart to take effect.\n\nNote: Disabling MPV will lose advanced features like audio passthrough, hardware decoding options, and codec-specific settings.",
        "default": true
      },
      {
        "value": "allowBrowserZoom",
        "display_name": "Allow Browser Zoom",
        "help": "Allows zooming the web interface using Ctrl+Plus/Minus, Ctrl+Scroll, or pinch-to-zoom. Changing this setting requires an application restart for pinch-to-zoom.",
        "default": true
      }
    ]
  },
  {
    "section": "audio",
    "order": 2,
    "values": [
      {
        "value": "devicetype",
        "display_name": "Device Type",
        "help": "Sets the device type. Can be \"Basic\", \"S/PDIF\", or \"HDMI\".\n\n- Basic: disables passthrough.\n- S/PDIF: transcodes surround sound to specific formats.\n- HDMI: supports additional passthrough options.",
        "default": "basic",
        "possible_values": [
          [ "basic", "Basic" ],
          [ "spdif", "S/PDIF" ],
          [ "hdmi", "HDMI" ]
        ]
      },
      {
        "value": "channels",
        "display_name": "Channels",
        "help": "Sets how many audio channels are allowed. The default is \"Stereo\" except on MacOS where it is \"Auto\".\n\n- Auto: automatically set.\n- Stereo: 2 channel stereo.\n- 5.1 Surround Sound: up to 5.1 surround sound.\n- 7.1 Surround Sound: up to 7.1 surround sound.",
        "default": [
          {
            "value": "auto",
            "platforms": [ "osx" ]
          },
          {
            "value": "2.0"
          }
        ],
        "possible_values": [
          [ "auto", "Auto" ],
          [ "2.0", "Stereo" ],
          [ "5.1,2.0", "5.1 Surround Sound" ],
          [ "7.1,5.1,2.0", "7.1 Surround Sound" ]
        ]
      },
      {
        "value": "device",
        "display_name": "Device",
        "help": "Allows forcing media output to a specific device. The default is \"Auto\".",
        "default": "auto"
      },
      {
        "value": "normalize",
        "display_name": "Normalize",
        "help": "Enable audio volume normalization.",
        "default": true
      },
      {
        "value": "exclusive",
        "display_name": "Exclusive",
        "help": "Takes exclusive control of audio device. The default is disabled.",
        "default": false,
        "platforms": [ "osx", "windows" ]
      },
      {
        "value": "passthrough.ac3",
        "display_name": "AC3 Passthrough",
        "help": "Enables AC3 passthrough. Requires \"S/PDIF\", or \"HDMI\" device type and all video transcoding to be off. The default is disabled.",
        "default": false
      },
      {
        "value": "passthrough.dts",
        "display_name": "DTS Passthrough",
        "help": "Enables DTS passthrough. Requires \"S/PDIF\", or \"HDMI\" device type and all video transcoding to be off. The default is disabled.",
        "default": false
      },
      {
        "value": "passthrough.eac3",
        "display_name": "E-AC3 Passthrough",
        "help": "Enables E-AC3 passthrough. Requires \"HDMI\" device type and all video transcoding to be off. The default is disabled.",
        "default": false,
        "platforms_excluded": [ "osx", "oe_rpi" ]
      },
      {
        "value": "passthrough.dts-hd",
        "display_name": "DTS-HD Passthrough",
        "help": "Enables DTS-HD passthrough. Requires \"HDMI\" device type and all video transcoding to be off. The default is disabled.",
        "default": false,
        "platforms_excluded": [ "osx", "oe_rpi" ]
      },
      {
        "value": "passthrough.truehd",
        "display_name": "TrueHD Passthrough",
        "help": "Enables TrueHD passthrough. Requires \"HDMI\" device type and all video transcoding to be off. The default is disabled.",
        "default": false,
        "platforms_excluded": [ "osx", "oe_rpi" ]
      }
    ]
  },
  {
    "section": "video",
    "order": 3,
    "values": [
      {
        "value": "debug.force_vo",
        "default": "",
        "hidden": true
      },
      {
        "value": "refreshrate.auto_switch",
        "display_name": "Display Refresh Rate Sync",
        "help": "Sets the display refresh rate to the media refresh rate. The default is disabled.",
        "default": false
      },
      {
        "value": "refreshrate.delay",
        "default": 3,
        "hidden": true
      },
      {
        "value": "refreshrate.avoid_25hz_30hz",
        "default": true,
        "hidden": true
      },
      {
        "value": "hardwareDecoding",
        "display_name": "Hardware Decoding",
        "help": "Sets the hardware decoding method. The default is \"copy\"\n\n- Enabled: full hardware acceleration. Removes MPV shader pipelines. Can cause issues more often.\n- Copy: uses hardware decoding but copies the video through MPV's shader pipelines.\n- Disabled: completely disable hardware decoding. Use this if video is glitchy.",
        "default": "copy",
        "possible_values": [
          [ "enabled", "Enabled", { "platforms_excluded": "osx" } ],
          [ "enabled", "Enabled (Modern)", { "platforms": "osx" } ],
          [ "osx_compat", "Enabled (Old)", { "platforms": "osx" } ],
          [ "copy", "Copy" ],
          [ "disabled", "Disabled" ]
        ],
        "platforms_excluded": "oe_rpi"
      },
      {
        "value": "deinterlace",
        "display_name": "Deinterlace",
        "help": "Enables deinterlacing. The default is disabled.",
        "default": false,
        "platforms_excluded": "oe_rpi"
      },
      {
        "value": "prefer_transcode_to_h265",
        "display_name": "Prefer Transcode to H.265",
        "default": false
      },
      {
        "value": "allow_transcode_to_hevc",
        "display_name": "Allow Transcode to HEVC",
        "help": "If set, it allows transcoding to \"HEVC\" in the video profile. The default is false.\n\nThis is mostly added as a workaround for Dolby Vision content direct playing when it shouldn't.",
        "default": false
      },
      {
        "value": "force_transcode_hevc",
        "display_name": "Force Transcode HEVC",
        "default": false
      },
      {
        "value": "force_transcode_4k",
        "display_name": "Force Transcode 4K",
        "default": false
      },
      {
        "value": "force_transcode_av1",
        "display_name": "Force Transcode AV1",
        "default": false
      },
      {
        "value": "force_transcode_hdr",
        "display_name": "Force Transcode HDR",
        "help": "If set, HDR media support is dropped from the video profile. The default is false.",
        "default": false
      },
      {
        "value": "force_transcode_hi10p",
        "display_name": "Force Transcode Hi10P",
        "default": false
      },
      {
        "value": "force_transcode_dovi",
        "display_name": "Force Transcode Dolby Vision",
        "default": true
      },
      {
        "value": "always_force_transcode",
        "display_name": "Always Force Transcode",
        "default": false
      },
      {
        "value": "sync_mode",
        "display_name": "AV Sync Mode",
        "help": "How the player synchronizes audio and video.\n\nIf you use this option, you usually want to set it to display-resample to enable a timing mode that tries to not skip or repeat frames when for example playing 24fps video on a 24Hz screen.\n\n- Audio: time video frames to audio. This is the most robust mode, because the player doesn't have to assume anything about how the display behaves. The disadvantage is that it can lead to occasional frame drops or repeats. If audio is disabled, this uses the system clock. This is the default mode.\n\n- Resample: resample audio to match the video. This mode will also try to adjust audio speed to compensate for other drift. (This means it will play the audio at a different speed every once in a while to reduce the A/V difference.)\n\n- Audio Drop: drop or repeat audio data to compensate desyncing video. This mode will cause severe audio artifacts if the real monitor refresh rate is too different from the reported or forced rate. Since mpv 0.33.0, this acts on entire audio frames, instead of single samples.",
        "default": "audio",
        "possible_values": [
          [ "audio", "Audio" ],
          [ "display-resample", "Resample" ],
          [ "display-adrop", "Audio Drop" ]
        ]
      },
      {
        "value": "audio_delay.normal",
        "default": 0,
        "hidden": true,
        "possible_range": {
          "min": -300,
          "max": 300,
          "step": 50
        }
      },
      {
        "value": "audio_delay.24hz",
        "default": 0,
        "hidden": true,
        "possible_range": {
          "min": -300,
          "max": 300,
          "step": 50
        }
      },
      {
        "value": "audio_delay.25hz",
        "default": 0,
        "hidden": true,
        "possible_range": {
          "min": -300,
          "max": 300,
          "step": 50
        }
      },
      {
        "value": "audio_delay.50hz",
        "default": 0,
        "hidden": true,
        "possible_range": {
          "min": -300,
          "max": 300,
          "step": 50
        }
      },
      {
        "value": "cache",
        "display_name": "Cache Size",
        "help": "Controls cache size in MB for video streaming. The default is 75 MB",
        "default": 75,
        "possible_values": [
          [ 10, "Tiny (10 MB)" ],
          [ 75, "Default (75 MB)" ],
          [ 150, "Large (150 MB)", { "platforms_excluded": "oe_rpi" } ],
          [ 500, "Very Large (500 MB)", { "platforms_excluded": "oe_rpi" } ]
        ]
      },
      {
        "value": "aspect",
        "display_name": "Aspect Ratio",
        "default": "normal",
        "possible_values": [
          [ "custom", "Default" ],
          [ "normal", "Normal" ],
          [ "zoom", "Zoom" ],
          [ "force_4_3", "Force 4:3" ],
          [ "force_16_9", "Force 16:9" ],
          [ "force_16_9_if_4_3", "Force 16:9 if 4:3" ],
          [ "stretch", "Stretch" ],
          [ "noscaling", "No Scale" ]
        ]
      },
      {
        "value": "default_playback_speed",
        "display_name": "Default Playback Speed",
        "default": 1.0,
        "possible_values": [
          [ 0.5, "0.5x" ],
          [ 0.75, "0.75x" ],
          [ 1.0, "1x" ],
          [ 1.25, "1.25x" ],
          [ 1.5, "1.5x" ],
          [ 1.75, "1.75x" ],
          [ 2.0, "2x" ],
          [ 2.5, "2.5x" ],
          [ 3.0, "3x" ],
          [ 3.5, "3.5x" ],
          [ 4.0, "4.0x" ]
        ]
      }
    ]
  },
  {
    "section": "subtitles",
    "order": 4,
    "values": [
      {
        "value": "ass_scale_border_and_shadow",
        "display_name": "ASS Scale Border and Shadow",
        "help": "For ASS format subtitles, ensures that the text borders and shadows scale proportionally with the resolution.",
        "default": true
      },
      {
        "value": "ass_style_override",
        "display_name": "ASS Style Override",
        "help": "Control whether user style overrides should be applied. Note that all of these overrides try to be somewhat smart about figuring out whether or not a subtitle is considered a \"sign\".\n\nNo:	Render subtitles as specified by the subtitle scripts, without overrides.\nYes:	Apply all the --sub-ass-* style override options. Changing the default for any of these options can lead to incorrect subtitle rendering (default).\nForce:	Like yes, but also force all --sub-* options. Can break rendering easily.\nScale:	Like yes, but also apply --sub-scale.\nStrip:	Radically strip all ASS tags and styles from the subtitle. This is equivalent to the old --no-ass / --no-sub-ass options.\n\nThis also controls some bitmap subtitle overrides, as well as HTML tags in formats like SRT, despite the name of the option.",
        "default": "",
        "possible_values": [
          [ "", "Default" ],
          [ "yes", "Yes" ],
          [ "no", "No" ],
          [ "force", "Force" ],
          [ "scale", "Scale" ],
          [ "strip", "Strip" ]
        ]
      },
      {
        "value": "placement",
        "display_name": "Placement",
        "default": "",
        "possible_values": [
          [ "", "Default" ],
          [ "left,bottom", "Left, Bottom" ],
          [ "right,bottom", "Right, Bottom" ],
          [ "center,bottom", "Center, Bottom" ],
          [ "left,top", "Left, Top" ],
          [ "right,top", "Right, Top" ],
          [ "center,top", "Center, Top" ]
        ]
      },
      {
        "value": "color",
        "display_name": "Color",
        "default": "",
        "possible_values": [
          [ "", "Default" ],
          [ "#000000", "Black" ],
          [ "#FFFFFF", "White" ],
          [ "#EEEEEE", "Light Grey" ],
          [ "#CCCCCC", "Blended Light Grey" ],
          [ "#FBF93E", "Yellow" ],
          [ "#FFFFCC", "Light Yellow" ],
          [ "#EEEDB8", "Blended Light Yellow" ]
        ]
      },
      {
        "value": "border_color",
        "display_name": "Border Color",
        "default": "",
        "possible_values": [
          [ "", "Default" ],
          [ "#000000", "Black" ],
          [ "#FFFFFF", "White" ],
          [ "#EEEEEE", "Light Grey" ],
          [ "#CCCCCC", "Blended Light Grey" ],
          [ "#FBF93E", "Yellow" ],
          [ "#FFFFCC", "Light Yellow" ],
          [ "#EEEDB8", "Blended Light Yellow" ]
        ]
      },
      {
        "value": "border_size",
        "display_name": "Border Size",
        "default": -1,
        "possible_values": [
          [ -1, "Default" ],
          [ 0, "None" ],
          [ 1, "Tiny" ],
          [ 2, "Small" ],
          [ 3, "Normal" ],
          [ 4, "Large" ],
          [ 5, "Huge" ]
        ]
      },
      {
        "value": "background_color",
        "display_name": "Background Color",
        "default": "",
        "possible_values": [
          [ "", "Default" ],
          [ "#000000", "Black" ],
          [ "#FFFFFF", "White" ],
          [ "#EEEEEE", "Light Grey" ],
          [ "#CCCCCC", "Blended Light Grey" ],
          [ "#FBF93E", "Yellow" ],
          [ "#FFFFCC", "Light Yellow" ],
          [ "#EEEDB8", "Blended Light Yellow" ]
        ]
      },
      {
        "value": "background_transparency",
        "display_name": "Background Transparency",
        "default": "",
        "possible_values": [
          [ "", "Default" ],
          [ "FF", "0%" ],
          [ "C0", "25%" ],
          [ "80", "50%" ],
          [ "40", "75%" ],
          [ "00", "100%" ]
        ]
      },
      {
        "value": "size",
        "display_name": "Size",
        "default": -1,
        "possible_values": [
          [ -1, "Default" ],
          [ 18, "Tiny" ],
          [ 24, "Small" ],
          [ 32, "Normal" ],
          [ 42, "Large" ],
          [ 60, "Huge" ]
        ]
      },
      {
        "value": "font",
        "display_name": "Font",
        "default": "sans-serif",
        "possible_values": [
          [ "", "Default" ],
          [ "serif", "Serif" ],
          [ "sans-serif", "Sans-Serif" ],
          [ "script", "Script" ],
          [ "monospace", "Monospace" ],
          [ "display", "Display" ],
          [ "cursive", "Cursive" ],
          [ "fantasy", "Fantasy" ]
        ]
      }
    ]
  },
  {
    "section": "path",
    "hidden": true,
    "values": [
      {
        "value": "startupurl_desktop",
        "default": "bundled"
      },
      {
        "value": "startupurl_extension",
        "default": "bundled"
      }
    ]
  },
  {
    "section": "cec",
    "hidden": true,
    "values": [
      {
        "value": "hdmiport",
        "default": 0
      },
      {
        "value": "verbose_logging",
        "default": false
      },
      {
        "value": "enable",
        "default": true
      },
      {
        "value": "suspendonstandby",
        "default": false
      },
      {
        "value": "poweroffonstandby",
        "default": false
      },
      {
        "value": "activatesource",
        "default": true
      },
      {
        "value": "usekeyupdown",
        "default": false
      }
    ]
  },
  {
    "section": "appleremote",
    "hidden": true,
    "values": [
      {
        "value": "emulatepht",
        "default": true
      }
    ]
  },
  {
    "section": "system",
    "hidden": true,
    "values": [
        {
          "value": "systemname",
          "default": "JellyfinDesktop",
          "hidden": true,
          "platforms": [ "oe" ]
        },
        {
          "value": "lircd_enabled",
          "default": false,
          "platforms": [ "oe" ]
        },
        {
          "value": "smbd_enabled",
          "default": false,
          "platforms": [ "oe" ]
        },
        {
          "value": "sshd_enabled",
          "default": false,
          "platforms": [ "oe" ]
        }
    ]
  },
  {
    "section": "other",
    "order": 6,
    "values": [
      {
        "value": "other_conf",
        "display_name": "Manual MPV Configuration",
        "help": "Configuration must be supplied in the same format as mpv.conf, with each configuration on a new line. i.e. \"sub-border-size=5\". Removing all set values of a configuration, from both here and the settings above, will only restore it to default once Jellyfin has restarted.",
        "input_type": "textarea",
        "default": ""
      }
    ]
  }
]
