Skip to main content

ObsOutputRef

Struct ObsOutputRef 

Source
pub struct ObsOutputRef { /* private fields */ }
Expand description

A reference to an OBS output.

This struct represents an output in OBS, which is responsible for outputting encoded audio and video data to a destination such as:

  • A file (recording)
  • A streaming service (RTMP, etc.)
  • A replay buffer

The output is associated with video and audio encoders that convert raw media to the required format before sending/storing.

Attached encoders and services are retained internally for as long as the output owns them. They can be replaced or detached while the output is inactive, either individually or by applying a complete ObsOutputComposition desired state.

Trait Implementations§

Source§

impl Clone for ObsOutputRef

Source§

fn clone(&self) -> ObsOutputRef

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 ObsOutputRef

Source§

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

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

impl ObsObjectTrait for ObsOutputRef

Source§

fn name(&self) -> ObsString

Source§

fn id(&self) -> ObsString

Source§

fn runtime(&self) -> &ObsRuntime

Source§

fn settings(&self) -> Result<ImmutableObsData, ObsError>

Source§

fn hotkey_data(&self) -> Result<ImmutableObsData, ObsError>

Source§

fn update_settings(&self, settings: ObsData) -> Result<(), ObsError>

Updates the settings of this output. Fails if active.
Source§

fn create_updater<'a, T: ObsObjectUpdater<'a, ToUpdate = Self> + Send + Sync>( &'a mut self, ) -> Result<T, ObsError>
where Self: Sized + Send + Sync,

Updates the object with the current settings. For examples please take a look at the Github repository.
Source§

fn object_id(&self) -> NativeObjectId

Stable opaque identity for this native object. It is scoped to the owning runtime.
Source§

impl ObsOutputTrait for ObsOutputRef

Source§

fn signals(&self) -> &Arc<ObsOutputSignals> ⓘ

Source§

fn attached_video_encoder( &self, ) -> Result<Option<Arc<ObsVideoEncoder>>, ObsError>

Returns the video encoder currently attached to this output, if any.
Source§

fn attached_audio_encoder( &self, mixer_idx: usize, ) -> Result<Option<Arc<ObsAudioEncoder>>, ObsError>

Returns the audio encoder attached at the requested mixer index, if any.
Source§

fn attached_audio_encoders( &self, ) -> Result<HashMap<usize, Arc<ObsAudioEncoder>>, ObsError>

Returns a snapshot of all managed audio encoder attachments keyed by mixer index.
Source§

fn attached_service(&self) -> Result<Option<Arc<ObsServiceRef>>, ObsError>

Returns the streaming service attached to this output, if any.
Source§

fn get_current_video_encoder( &self, ) -> Result<Option<Arc<ObsVideoEncoder>>, ObsError>

👎Deprecated:

Use attached_video_encoder

Source§

fn get_current_audio_encoder( &self, mixer_idx: usize, ) -> Result<Option<Arc<ObsAudioEncoder>>, ObsError>

👎Deprecated:

Use attached_audio_encoder

Source§

fn get_current_audio_encoders( &self, ) -> Result<HashMap<usize, Arc<ObsAudioEncoder>>, ObsError>

👎Deprecated:

Use attached_audio_encoders

Source§

fn get_current_service(&self) -> Result<Option<Arc<ObsServiceRef>>, ObsError>

👎Deprecated:

Use attached_service

Source§

fn current_composition(&self) -> Result<ObsOutputComposition, ObsError>

Returns an owned, coherent snapshot of the currently managed encoder/service wiring.
Source§

fn set_service(&self, service: Arc<ObsServiceRef>) -> Result<(), ObsError>

Attaches a streaming service to this output. Fails while the output is active.
Source§

fn apply_composition( &self, composition: ObsOutputComposition, ) -> Result<(), ObsError>

Replaces the complete managed output wiring in one actor command. Read more
Source§

fn clear_video_encoder(&self) -> Result<(), ObsError>

Detaches the current video encoder while the output is inactive.
Source§

fn clear_audio_encoder(&self, mixer_idx: usize) -> Result<(), ObsError>

Detaches the audio encoder at mixer_idx while the output is inactive.
Source§

fn clear_service(&self) -> Result<(), ObsError>

Detaches the current streaming service while the output is inactive.
Source§

fn create_and_set_video_encoder( &self, info: VideoEncoderInfo, ) -> Result<Arc<ObsVideoEncoder>, ObsError>

Creates and attaches a new video encoder to this output. Read more
Source§

fn set_video_encoder( &self, encoder: Arc<ObsVideoEncoder>, ) -> Result<(), ObsError>

Attaches an existing video encoder to this output. Read more
Source§

fn create_and_set_audio_encoder( &self, info: AudioEncoderInfo, mixer_idx: usize, ) -> Result<Arc<ObsAudioEncoder>, ObsError>

Creates and attaches a new audio encoder for the given mixer index. Fails if output active.
Source§

fn set_audio_encoder( &self, encoder: Arc<ObsAudioEncoder>, mixer_idx: usize, ) -> Result<(), ObsError>

Attaches an existing audio encoder to this output at the mixer index. Read more
Source§

fn start(&self) -> Result<(), ObsError>

Starts the output, wiring encoders to global contexts and invoking obs_output_start. Returns an error with last OBS message when start fails.
Source§

fn set_paused(&self, should_pause: bool) -> Result<(), ObsError>

Source§

fn pause(&self) -> Result<(), ObsError>

Pauses or resumes the output and waits for the pause/unpause signal.
Source§

fn unpause(&self) -> Result<(), ObsError>

Source§

fn stop(&self) -> Result<(), ObsError>

Stops the output and waits for stop and deactivate signals.
Source§

fn is_active(&self) -> Result<bool, ObsError>

Returns whether the output is currently active.
Source§

impl ObsPropertyObject for ObsOutputRef

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, 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.