New Features:
- Added `CreateRecordChapter` request for the new native MP4 muxer
[tt2468]
- Added `SplitRecordFile` request to create a file split [tt2468]
- Added `RecordFileChanged` request for when the current recording is
split [tt2468]
- Added obs-websocket-api as a Cmake target, allowing plugins to build
against it without directly including the header file in their source
tree. [tytan652]
- Added the ability to subscribe to obs-websocket events via the
obs-websocket-api header file. [tt2468]
Enhancements:
- Added `cropToBounds` boolean value to Get/SetSceneItemTransform
[exeldro]
Bug Fixes:
- Fixed screenshot behavior of sources with a crop filter not
respecting the cropped size (#1132) [tt2468]
- Fixed an issue with `TriggerHotkeyByName` not releasing keys
correctly when multiple keys are specified. [exeldro]
Other Notes:
- Fixed a few enums showing as deprecated in the documentation
- The location of the obs-websocket global settings data has changed!
Settings located in `global.ini` have moved to the
`plugin_config/obs-websocket` directory. This includes the `global`
realm for the `*PersistentData` requests. Upon loading with an
un-migrated configuration, obs-websocket will perform a migration and
delete the old configurations.
As such, **migration is not reversible**
This applies the same fix found in obsproject/obs-studio#10077 to get
the target source's real width and height, not the width and height
values from the pre-filter stage.
Closes#1213
The commit to migrate data from global.ini to the plugin_config folder
accidentally broke plugin startup for fresh configurations. Instead of
returning early if no configuration is found, simply generate a new one
from defaults.
Closes#1225
This commit moves the Config value storage from `global.ini` to a new
`config.json` file in the `plugin_config/obs-websocket` directory. This
comes after some internal discussion about plugins not using the
`plugin_config` directory, and that obs-websocket was offending.
Settings are currently stored as a JSON object, and field names have
been changed from using PascalCase to snake_case, to better align
with how JSON is stored elsewhere in OBS.
Updates:
obs_sceneitem_get_info to obs_sceneitem_get_info2
obs_sceneitem_set_info to obs_sceneitem_set_info2
Ensures that we're using the latest versions of these functions in order
to prevent future deprecation
New Features:
- Added `GetSourceFilterKindList` request
- Added `GetSceneItemSource` request
- Added `InputSettingsChanged` event
- Added `SourceFilterSettingsChanged` event
- Added UUID support to Sources (Inputs/Scenes), Inputs, Scenes,
Transitions
- The `Source` requests/events use `sourceUuid`
- The `Input` requests/events use `inputUuid`
- The `Scene` requests/events use `sceneUuid`
- The `Transition` requests/events use `transitionUuid`
- Filters do not have support for UUIDs at this time.
Enhancements:
- Added `contextName` field to `TriggerHotkeyByName` (exeldro)
Bug Fixes:
- Fixed a crash on shutdown with notifications enabled (r1ch)
- Added safety check to prevent `null` `outputCongestion` values in
`GetStreamStatus`
- Fixed a memory leak when switching service kinds via
`SetStreamServiceSettings`
Other Notes:
- Documented missing `outputActive` `ToggleRecord` response field
- Added a few new client softwares to the README list
- Removed a mis-documented `imageData` field
- Added a note to the hotkey requests that they are as-is and we
will not provide support for them
Transition UUID support is partial due to the current state of the OBS
frontend API.
Most requests which accepted things like `sourceName` now allow
`sourceUuid` (or equivalent) to be specified instead. While both fields
on the various requests may be marked as optional, at least one field
will still be required.