212 lines
6.5 KiB
JSON
212 lines
6.5 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://render-cadence.local/schemas/runtime-host.schema.json",
|
|
"title": "Render Cadence Runtime Host Configuration",
|
|
"description": "Startup configuration for the Render Cadence native host. This schema documents the settings currently read by AppConfigProvider.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"$schema": {
|
|
"type": "string",
|
|
"description": "Editor-only schema reference. The native host ignores this field."
|
|
},
|
|
"shaderLibrary": {
|
|
"type": "string",
|
|
"default": "shaders",
|
|
"description": "Path to the shader package library directory. Relative paths are resolved from the process/repo working location."
|
|
},
|
|
"serverPort": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535,
|
|
"default": 8080,
|
|
"description": "Preferred HTTP control server port."
|
|
},
|
|
"oscBindAddress": {
|
|
"type": "string",
|
|
"default": "0.0.0.0",
|
|
"description": "OSC bind address reserved for the control surface. The current native host exposes this in state but does not start the OSC listener yet."
|
|
},
|
|
"oscPort": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 65535,
|
|
"default": 9000,
|
|
"description": "OSC UDP port reserved for the control surface."
|
|
},
|
|
"oscSmoothing": {
|
|
"type": "number",
|
|
"minimum": 0,
|
|
"default": 0.18,
|
|
"description": "Reserved OSC smoothing amount exposed in runtime state."
|
|
},
|
|
"input": {
|
|
"$ref": "#/$defs/input"
|
|
},
|
|
"output": {
|
|
"$ref": "#/$defs/output"
|
|
},
|
|
"autoReload": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "When true, the runtime control layer may automatically rescan/reload shader packages when requested by the app flow."
|
|
},
|
|
"maxTemporalHistoryFrames": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"default": 12,
|
|
"description": "Maximum temporal history frames exposed to shaders that request history."
|
|
},
|
|
"previewEnabled": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Starts the optional preview window on its own thread."
|
|
},
|
|
"previewFps": {
|
|
"type": "number",
|
|
"exclusiveMinimum": 0,
|
|
"default": 59.94,
|
|
"description": "Target repaint rate for the optional preview window. It does not change render/output cadence."
|
|
}
|
|
},
|
|
"required": [
|
|
"shaderLibrary",
|
|
"serverPort",
|
|
"input",
|
|
"output"
|
|
],
|
|
"$defs": {
|
|
"inputBackend": {
|
|
"type": "string",
|
|
"enum": [
|
|
"decklink",
|
|
"ndi",
|
|
"none",
|
|
"disabled",
|
|
"off"
|
|
]
|
|
},
|
|
"outputBackend": {
|
|
"type": "string",
|
|
"enum": [
|
|
"decklink",
|
|
"ndi",
|
|
"none",
|
|
"disabled",
|
|
"off"
|
|
]
|
|
},
|
|
"resolution": {
|
|
"type": "string",
|
|
"enum": [
|
|
"720p",
|
|
"1080i",
|
|
"1080p",
|
|
"2160p",
|
|
"4k",
|
|
"uhd"
|
|
]
|
|
},
|
|
"frameRate": {
|
|
"type": "string",
|
|
"enum": [
|
|
"23.98",
|
|
"24",
|
|
"25",
|
|
"29.97",
|
|
"30",
|
|
"50",
|
|
"59.94",
|
|
"60"
|
|
]
|
|
},
|
|
"input": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"description": "Video input backend configuration. DeckLink uses the configured resolution/frameRate as a capture mode. NDI adapts to the received source shape and logs if it differs from these expected values.",
|
|
"properties": {
|
|
"backend": {
|
|
"$ref": "#/$defs/inputBackend",
|
|
"default": "decklink",
|
|
"description": "Input backend. Use 'decklink' for Blackmagic capture, 'ndi' for NDI receive, or 'none'/'disabled'/'off' for black fallback input."
|
|
},
|
|
"device": {
|
|
"type": "string",
|
|
"default": "default",
|
|
"description": "Input device/source selector. DeckLink currently uses 'default'. NDI accepts 'default'/'auto' for the first discovered source or an exact NDI source name."
|
|
},
|
|
"resolution": {
|
|
"$ref": "#/$defs/resolution",
|
|
"default": "1080p",
|
|
"description": "Expected input resolution/mode. For NDI this is advisory only; received source dimensions are used."
|
|
},
|
|
"frameRate": {
|
|
"$ref": "#/$defs/frameRate",
|
|
"default": "59.94",
|
|
"description": "Expected input frame rate. DeckLink uses this to resolve the hardware mode; NDI currently treats it as an expectation for logging/state."
|
|
}
|
|
},
|
|
"required": [
|
|
"backend",
|
|
"device",
|
|
"resolution",
|
|
"frameRate"
|
|
]
|
|
},
|
|
"output": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"description": "Video output backend configuration.",
|
|
"properties": {
|
|
"backend": {
|
|
"$ref": "#/$defs/outputBackend",
|
|
"default": "decklink",
|
|
"description": "Output backend. Use 'decklink' for Blackmagic playout, 'ndi' for NDI send, or 'none'/'disabled'/'off' to disable scheduled output."
|
|
},
|
|
"device": {
|
|
"type": "string",
|
|
"default": "default",
|
|
"description": "Output device selector. DeckLink currently uses the first compatible/default output device. NDI uses this as the advertised sender name; 'default' becomes 'Render Cadence'."
|
|
},
|
|
"resolution": {
|
|
"$ref": "#/$defs/resolution",
|
|
"default": "1080p",
|
|
"description": "Output render and video mode resolution."
|
|
},
|
|
"frameRate": {
|
|
"$ref": "#/$defs/frameRate",
|
|
"default": "59.94",
|
|
"description": "Output render cadence and video mode frame rate."
|
|
},
|
|
"keying": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"description": "DeckLink keying options.",
|
|
"properties": {
|
|
"external": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Requests DeckLink external keying when the selected output device supports it."
|
|
},
|
|
"alphaRequired": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"description": "Requires alpha-capable output format support during DeckLink output setup."
|
|
}
|
|
},
|
|
"required": [
|
|
"external",
|
|
"alphaRequired"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"backend",
|
|
"device",
|
|
"resolution",
|
|
"frameRate"
|
|
]
|
|
}
|
|
}
|
|
}
|