API level 1 of the OSC API Specification focuses on image type, and video support is added in API level 2. Camera manufacturers are encouraged to define custom commands and/or extend the parameter set of standard commands if needed. These are known as Vendor Commands and Vendor Parameters.
The name of the Vendor-specific commands and parameters must be alphanumeric and prefixed with an underscore ( _ ).
Vendor-specific functionality can happen in four places as follows:
OSC API Specification, command parameters; for example, parameters for the setOptions and getOptions commands.
Example
Request (API 1)
POST/osc/commands/executeHTTP/1.1Host:[camera ip address]:[httpPort]Content-Type:application/json;charset=utf-8Accept:application/jsonContent-Length:{CONTENT_LENGTH}X-XSRF-Protected:1{"name":"camera.setOptions","parameters":{"sessionId":"12ABC3","iso":200,"exposureCompensation":-2,"captureMode":"_video"}}
POST/osc/commands/executeHTTP/1.1Host:[camera ip address]:[httpPort]Content-Type:application/json;charset=utf-8Accept:application/jsonContent-Length:{CONTENT_LENGTH}X-XSRF-Protected:1{"name":"camera._startRecording","parameters":{"sessionId":"12ABC3",...}}
[null,null,["Last updated 2024-10-09 UTC."],[[["The Open Spherical Camera (OSC) API Specification starts with image support in API level 1 and adds video support in API level 2."],["Camera manufacturers can define custom commands and parameters, called Vendor Commands and Vendor Parameters, by prefixing them with an underscore (_)."],["Vendor-specific functionality can be implemented within the output of /osc/info and /osc/state APIs, as well as within OSC API commands and parameters."],["Vendor Commands and Parameters must have alphanumeric names."]]],["OSC API level 1 supports images, while level 2 adds video. Manufacturers can define custom commands and parameters (Vendor Commands/Parameters), which must be alphanumeric and prefixed with an underscore. Vendor-specific functionality can be found in the output of /osc/info and /osc/state APIs, in the commands for /osc/commands/execute, and in command parameters. Examples demonstrate `setOptions` with vendor-specific parameter `_video`, and a vendor-specific command, `_startRecording`.\n"]]