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
impl ObsReplayBufferOutputRef
pub fn inner_output(&self) -> &ObsOutputRef
pub fn inner_output_mut(&mut self) -> &mut ObsOutputRef
pub fn into_inner_output(self) -> ObsOutputRef
Source§impl ObsReplayBufferOutputRef
impl ObsReplayBufferOutputRef
pub fn replay_signals(&self) -> &Arc<ObsReplayOutputSignals>
Sourcepub fn save_buffer(&self) -> Result<Box<Path>, ObsError>
pub fn save_buffer(&self) -> Result<Box<Path>, ObsError>
Saves the current replay buffer content to disk.
§Implementation Details
This method:
- Accesses the OBS procedure handler for the output
- Calls the “save” procedure to trigger saving the replay
- Calls the “get_last_replay” procedure to retrieve the saved file path
- Extracts the path string from the calldata and returns it
§Returns
Ok(Box<Path>)- The path to the saved replay fileErr(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
impl Clone for ObsReplayBufferOutputRef
Source§fn clone(&self) -> ObsReplayBufferOutputRef
fn clone(&self) -> ObsReplayBufferOutputRef
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ObsReplayBufferOutputRef
impl Debug for ObsReplayBufferOutputRef
Source§impl ObsObjectTrait<*mut obs_output> for ObsReplayBufferOutputRef
impl ObsObjectTrait<*mut obs_output> for ObsReplayBufferOutputRef
fn name(&self) -> ObsString
fn id(&self) -> ObsString
fn runtime(&self) -> &ObsRuntime
fn settings(&self) -> Result<ImmutableObsData, ObsError>
fn hotkey_data(&self) -> Result<ImmutableObsData, ObsError>
Source§fn update_settings(&self, settings: ObsData) -> Result<(), ObsError>
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>
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>
fn create_updater<'a, T: ObsObjectUpdater<'a, K, ToUpdate = Self> + Send + Sync>( &'a mut self, ) -> Result<T, ObsError>
Updates the object with the current settings.
For examples please take a look at the Github repository.
Source§impl ObsOutputTrait for ObsReplayBufferOutputRef
impl ObsOutputTrait for ObsReplayBufferOutputRef
fn signals(&self) -> &Arc<ObsOutputSignals>
fn video_encoder(&self) -> &Arc<RwLock<Option<Arc<ObsVideoEncoder>>>>
fn audio_encoders(&self) -> &Arc<RwLock<HashMap<usize, Arc<ObsAudioEncoder>>>>
Source§fn get_current_video_encoder(
&self,
) -> Result<Option<Arc<ObsVideoEncoder>>, ObsError>
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>
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>
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>
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>
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>
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.
fn set_paused(&self, should_pause: bool) -> Result<(), ObsError>
Source§fn pause(&self) -> Result<(), ObsError>
fn pause(&self) -> Result<(), ObsError>
Pauses or resumes the output and waits for the pause/unpause signal.
fn unpause(&self) -> Result<(), ObsError>
Auto Trait Implementations§
impl Freeze for ObsReplayBufferOutputRef
impl !RefUnwindSafe for ObsReplayBufferOutputRef
impl Send for ObsReplayBufferOutputRef
impl Sync for ObsReplayBufferOutputRef
impl Unpin for ObsReplayBufferOutputRef
impl !UnwindSafe for ObsReplayBufferOutputRef
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more