Enum ObsHighVolume
- Namespace
- OBSStudioClient.Model
- Assembly
- OBSClient.dll
What OBS Studio sends very often, and that an ObsModel follows only when it is asked to (see HighVolume).
[Flags]
public enum ObsHighVolume
Fields
None = 0None of them: the default.
Transforms = 1The transform of every scene item (Transform): where it is, how large, how it is cropped. OBS Studio sends an event for every step of a drag, and also when the size of a source changes. OBS Studio 33.0.0 announces a crop and the size of a source only for a scene that it renders (the program scene, the preview scene of studio mode, a scene that a projector shows): for another scene it announces them when the scene is rendered, so the transform that the model shows of an item in such a scene can be behind until then.
Activity = 2Whether each input is on the air and whether it is shown (IsActive and IsShowing): OBS Studio sends an event for the inputs of a scene each time that the program scene, the preview scene, a transition, or a scene item that shows them changes. The model reads the state of every input once (
GetSourceActive), and follows the events. OBS Studio says nothing of a scene, and nothing of an input that it destroys.AudioLevels = 4The levels of the audio of the inputs that are on the air (Levels and AudioLevels): OBS Studio sends a message every 50 milliseconds, also when nothing is playing, and has every input that is on the air report its levels for as long as a client is subscribed. The model keeps the newest levels, and tells the application of them without ever holding up OBS Studio, or the rest of the model: a handler that is slower than OBS Studio gets the newest levels and not all of them.
All = Transforms | Activity | AudioLevelsAll of them.
Remarks
OBS Studio sends these events to every client that is subscribed to them, and what a client that is not interested does with them is still work for OBS Studio and for the
connection: dragging a scene item in the preview is sixty events a second, the levels of the audio are twenty messages a second for as long as the connection lasts, and every program that listens
adds its own copy. So the model subscribes to them only for what you ask for, and what it keeps of them (Transform, IsActive,
IsShowing and Levels) is null as long as you did not.
What you can ask OBS Studio for by a call does not need any of this: GetTransformAsync(CancellationToken) and GetActivityAsync(CancellationToken) are always there.