Skip to main content

ObsReplayBufferOutputRef

Struct ObsReplayBufferOutputRef 

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

A reference to an OBS output.

This struct is used specifically for the replay buffer to manage saving the buffer to a file and configuring special settings, which are specific to the replay buffer

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

Implementations§

Source§

impl ObsReplayBufferOutputRef

Source§

impl ObsReplayBufferOutputRef

Source

pub fn replay_signals(&self) -> &Arc<ObsReplayOutputSignals> ⓘ

Source

pub fn save_buffer(&self) -> Result<Box<Path>, ObsError>

Saves the current replay buffer content to disk.

§Implementation Details

This method:

  1. Accesses the OBS procedure handler for the output
  2. Calls the “save” procedure to trigger saving the replay
  3. Calls the “get_last_replay” procedure to retrieve the saved file path
  4. Extracts the path string from the calldata and returns it
§Returns
  • Ok(Box<Path>) - The path to the saved replay file
  • Err(ObsError) - Various errors that might occur during the saving process:
    • Failure to get procedure handler
    • Failure to call “save” procedure
    • Failure to call “get_last_replay” procedure
    • Failure to extract the path from calldata

Trait Implementations§

Source§

impl Clone for ObsReplayBufferOutputRef

Source§

fn clone(&self) -> ObsReplayBufferOutputRef

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 ObsReplayBufferOutputRef

Source§

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

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

impl ObsObjectTrait for ObsReplayBufferOutputRef

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 ObsReplayBufferOutputRef

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.

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.