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 · 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<*mut obs_output> 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 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 ObsReplayBufferOutputRef

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.

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.