* Implement filter requests
* Fix CreateSourceFilter
* Implement most Filter events
* build against 27.1.3
* Update main.yml
* SourceFilterNameChanged rename
* revert main.yml changes
* rename SourceFilterCreated and revert CI changes
* cleanup
* Base: Various cleanups + fix -Werror
* Base: A few nitpicks/fixes
* requesthandler: Fix CreateSourceFilter
* utils: Fix CreateSourceFilter
Use obs_source_t* instead of OBSSourceAutoRelease to prevent double
release
* requesthandler: Remove filterIndex from CreateSourceFilter
The purpose of sceneItemEnabled in CreateSceneItem is to hide the
scene item while we still hold the scene mutex (guaranteeing the input
will never be shown). Since we don't hold a mutex when creating
filters, there's no reason to do any extra steps.
* requesthandler: Validate input/filter kinds in *DefaultSettings
Co-authored-by: tt2468 <tt2468@gmail.com>
This is probably one of the most requested features for obs-websocket.
This currently works by firing an event to all explicit subscribers
with an array of all active audio sources every **60 milliseconds.**
The `inputLevelsMul` field follows this data format:
Base: [Channel, Channel]
Channel: [magnitude (mul), peak (mul), input_peak (mul)]
*Not Muted* *Muted*
Example: [[0.3, 0.5, 0.9], [0.0, 0.0, 0.0]]
(input_peak is the actual peak value, before volume adjustment.)
You may notice that the values are only in mul. This is because we are
trying to cut down on bandwidth. dB values can be calculated using this
formula:
`dB = 20.0 * log10(mul)`