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.

If encoders are attached to this struct, they are stored internally, so they will not get removed As of right now, there is no way to remove the encoders again, rather you’ll need to replace them with another encoder or drop this struct and recreate a output.

Trait Implementations§

Source§

impl Clone for ObsOutputRef

Source§

fn clone(&self) -> ObsOutputRef

Returns a duplicate of the value. Read more
1.0.0 · 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<*mut obs_output> 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 as_ptr(&self) -> SmartPointerSendable<*mut obs_output>

Creates a new reference to the drop guard. This is useful if you are using the underlying raw pointer, make sure to store it along the drop guard
Source§

fn create_updater<'a, T: ObsObjectUpdater<'a, K, 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§

impl ObsOutputTrait for ObsOutputRef

Source§

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

Source§

fn video_encoder(&self) -> &Arc<RwLock<Option<Arc<ObsVideoEncoder>>>>

Source§

fn audio_encoders(&self) -> &Arc<RwLock<HashMap<usize, Arc<ObsAudioEncoder>>>>

Source§

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

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

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

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

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

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

fn create_and_set_audio_encoder( &mut 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( &mut 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(&mut 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

Source§

impl ObsPropertyObjectPrivate 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, K> ObsObjectClone<K> for T
where K: Clone, T: ObsObjectTrait<K> + Clone + 'static,

Source§

fn clone_box(&self) -> Box<dyn ObsObjectTrait<K>>

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.