Skip to main content

ObsError

Enum ObsError 

Source
pub enum ObsError {
Show 51 variants Failure, InvalidDll, MutexFailure, ThreadFailure, ResetAudioFailure, ResetVideoFailure(ObsResetVideoStatus), ResetVideoFailureGraphicsModule, ResetVideoFailureOutputActive, NullPointer(Option<String>), OutputAlreadyActive, OutputStartFailure(Option<String>), OutputStopFailure(Option<String>), OutputPauseFailure(Option<String>), OutputNotFound, SourceNotFound, SourceNotAvailable(String), InvalidOperation(String), StringConversionError, DisplayCreationError(String), OutputSaveBufferFailure(String), InvocationError(String), JsonParseError, NoSenderError, NoAvailableEncoders, LockError(String), Unexpected(String), EncoderActive, PlatformInitError(String), IoError(String), SignalDataError(String), EnumConversionError(String), PropertyTypeMismatch { expected: String, }, PropertyNotFound { name: String, }, PropertyValueTypeMismatch { name: String, expected: String, actual: String, }, PropertyValueOutOfRange { name: String, value: String, min: String, max: String, }, PropertyValueNotAllowed { name: String, value: String, }, PropertyValueUnsupported { name: String, property_type: String, }, RuntimeChannelError(String), RuntimeQueueFull { capacity: usize, }, RuntimePanicked, RuntimeMismatch, CapabilityKindMismatch { id: String, expected: String, actual: String, }, OutputPipelineMissingComponent { output_id: String, component: String, }, OutputPipelineUnexpectedComponent { output_id: String, component: String, }, OutputPipelineUnsupportedCodec { output_id: String, media: String, codec: String, }, OutputPipelineUnsupportedProtocol { output_id: String, protocol: String, }, NoCompatibleOutputGraph { summary: String, }, AudioMixerIndexOutOfBounds { index: usize, max: usize, }, RuntimeReentrantBlocking, RuntimeOutsideThread, FilterAlreadyApplied,
}
Expand description

Error type for OBS function calls.

Variants§

§

Failure

The obs_startup function failed on libobs.

§

InvalidDll

This error is emitted if a dummy DLL was loaded instead of the real libobs DLL. Make sure you bootstrap properly with libobs-bootstrapper

§

MutexFailure

Failed to lock mutex describing whether there is a thread using libobs or not. Report to crate maintainer.

§

ThreadFailure

Some or no thread is already using libobs. This is a bug!

§

ResetAudioFailure

Unable to initialize/reset the OBS audio subsystem.

§

ResetVideoFailure(ObsResetVideoStatus)

Unable to reset video.

§

ResetVideoFailureGraphicsModule

Unable to reset video because the program attempted to change the graphics module. This is a bug!

§

ResetVideoFailureOutputActive

Unable to reset video because some outputs were still active.

§

NullPointer(Option<String>)

The function returned a null pointer, often indicating an error with creating the object of the requested pointer.

§

OutputAlreadyActive

§

OutputStartFailure(Option<String>)

§

OutputStopFailure(Option<String>)

§

OutputPauseFailure(Option<String>)

§

OutputNotFound

§

SourceNotFound

§

SourceNotAvailable(String)

§

InvalidOperation(String)

§

StringConversionError

Error converting a string between Rust and OBS

§

DisplayCreationError(String)

Native error from the Windows API when creating a display

§

OutputSaveBufferFailure(String)

§

InvocationError(String)

The obs thread couldn’t be called

§

JsonParseError

§

NoSenderError

Couldn’t get the sender of the signal

§

NoAvailableEncoders

§

LockError(String)

Error locking a mutex or RwLock. You should probably restart the application to avoid memory leaks.

§

Unexpected(String)

§

EncoderActive

Encoder is still active, stop the attached output before proceeding

§

PlatformInitError(String)

Error during platform-specific initialization

§

IoError(String)

Error reading/writing to a file

§

SignalDataError(String)

Failed to get data from signal calldata

§

EnumConversionError(String)

Failed to convert an enum from a code

§

PropertyTypeMismatch

The caller requested metadata using the wrong OBS property category.

Fields

§expected: String
§

PropertyNotFound

A runtime-discovered settings schema does not contain the requested property.

Fields

§name: String
§

PropertyValueTypeMismatch

A generic property value has the wrong scalar category for the discovered property.

Fields

§name: String
§expected: String
§actual: String
§

PropertyValueOutOfRange

A numeric generic property value is outside the range reported by libobs.

Fields

§name: String
§value: String
§

PropertyValueNotAllowed

A generic value is correctly typed but not accepted by the discovered property metadata.

Fields

§name: String
§value: String
§

PropertyValueUnsupported

The discovered property category is structural/action-oriented and cannot be represented by a scalar setting value.

Fields

§name: String
§property_type: String
§

RuntimeChannelError(String)

Failed to send/receive on a runtime channel

§

RuntimeQueueFull

The bounded OBS actor queue is full.

Fields

§capacity: usize
§

RuntimePanicked

The OBS actor panicked while executing a command or cleanup task.

§

RuntimeMismatch

An object from a different OBS runtime/context was passed to this operation.

§

CapabilityKindMismatch

A discovered OBS type was used with an incompatible typed creation operation.

Fields

§expected: String
§actual: String
§

OutputPipelineMissingComponent

A required encoder/service was omitted from a high-level output pipeline.

Fields

§output_id: String
§component: String
§

OutputPipelineUnexpectedComponent

A component was supplied to an output that does not accept that component category.

Fields

§output_id: String
§component: String
§

OutputPipelineUnsupportedCodec

An encoder codec is incompatible with the selected output type.

Fields

§output_id: String
§media: String
§codec: String
§

OutputPipelineUnsupportedProtocol

A service protocol is incompatible with the selected output type.

Fields

§output_id: String
§protocol: String
§

NoCompatibleOutputGraph

No runtime-discovered output/encoder combination satisfies a high-level request.

Fields

§summary: String
§

AudioMixerIndexOutOfBounds

An audio encoder mixer index exceeded libobs’s supported mixer range.

Fields

§index: usize
§max: usize
§

RuntimeReentrantBlocking

A blocking operation was requested recursively from the OBS actor thread.

§

RuntimeOutsideThread

Attempted to call a OBS runtime function from outside the OBS thread. This error should NEVER occur. If you are not using the runtime manually or have the “enable_runtime” feature enabled then please report this to the crate maintainer as this indicates a bug in the crate.

§

FilterAlreadyApplied

A filter was already applied to a source

Trait Implementations§

Source§

impl Clone for ObsError

Source§

fn clone(&self) -> ObsError

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ObsError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ObsError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for ObsError

Source§

impl Error for ObsError

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl PartialEq for ObsError

Source§

fn eq(&self, other: &ObsError) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ObsError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.