Skip to content

Desuq Cafe

Documentation menu

Filters

Filters in OBS attach to any source (scenes or inputs) to alter how that source looks or sounds, such as color correction, chroma key, and noise suppression. The plugin exposes the full OBS filter API: listing available filter types, reading and writing per-source filter chains, and reacting to filter changes via events.

Functions

FunctionDescription
GetSourceFilterKindList()Refresh list of available filter types
GetCachedFilterKinds()Get locally cached filter type list
GetSourceFilterList(SourceName)Fetch all filters on a source
GetCachedFiltersForSource(SourceName)Get locally cached filters for a source
HasCachedFiltersForSource(SourceName)Check if filter data is cached for a source
CreateSourceFilter(Source, Name, Kind, Settings)Add a new filter to a source
RemoveSourceFilter(Source, FilterName)Remove a filter from a source
SetSourceFilterEnabled(Source, Filter, Enabled)Enable or disable a filter
SetSourceFilterName(Source, OldName, NewName)Rename a filter
SetSourceFilterIndex(Source, Filter, Index)Change filter position in chain (0 = top)
SetSourceFilterSettings(Source, Filter, Settings, Overlay)Update filter configuration
GetSourceFilter(Source, Filter)Fetch specific filter details
GetSourceFilterDefaultSettings(Kind)Get default settings for a filter type

Note: Filters are identified by a SourceName + FilterName pair (no UUIDs). Filter index 0 is the topmost filter in the processing chain.

Events

Subscribe to these events to react to filter changes:

  • OnSourceFilterCreated(SourceName, FilterName, FilterKind, FilterIndex, bEnabled): Filter added to a source
  • OnSourceFilterRemoved(SourceName, FilterName): Filter removed from a source
  • OnSourceFilterNameChanged(SourceName, OldName, NewName): Filter was renamed
  • OnSourceFilterSettingsChanged(SourceName, FilterName): Filter settings were modified
  • OnSourceFilterEnableStateChanged(SourceName, FilterName, bEnabled): Filter enabled/disabled
  • OnSourceFilterListReindexed(SourceName): Filter order changed on a source

Example

// Add a color correction filter to a source, then disable it.
Subsystem->CreateSourceFilter(
    TEXT("Webcam"),
    TEXT("Warmth"),
    TEXT("color_filter_v2"),
    Settings);

Subsystem->SetSourceFilterEnabled(TEXT("Webcam"), TEXT("Warmth"), false);

// Move a filter to the top of the chain.
Subsystem->SetSourceFilterIndex(TEXT("Webcam"), TEXT("Warmth"), 0);

See also