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
impl Clone for ObsOutputRef
Source§fn clone(&self) -> ObsOutputRef
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)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ObsOutputRef
impl Debug for ObsOutputRef
Source§impl ObsObjectTrait for ObsOutputRef
impl ObsObjectTrait for ObsOutputRef
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 create_updater<'a, T: ObsObjectUpdater<'a, ToUpdate = Self> + Send + Sync>(
&'a mut self,
) -> Result<T, ObsError>
fn create_updater<'a, T: ObsObjectUpdater<'a, 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 ObsOutputRef
impl ObsOutputTrait for ObsOutputRef
fn signals(&self) -> &Arc<ObsOutputSignals> ⓘ
Source§fn attached_video_encoder(
&self,
) -> Result<Option<Arc<ObsVideoEncoder>>, ObsError>
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>
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>
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>
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>
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>
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>
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>
fn get_current_service(&self) -> Result<Option<Arc<ObsServiceRef>>, ObsError>
👎Deprecated:
Use attached_service
Source§fn current_composition(&self) -> Result<ObsOutputComposition, ObsError>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Source§impl ObsPropertyObject for ObsOutputRef
impl ObsPropertyObject for ObsOutputRef
Source§fn get_properties(&self) -> Result<HashMap<String, ObsProperty>, ObsError>
fn get_properties(&self) -> Result<HashMap<String, ObsProperty>, ObsError>
Returns the properties of the object
fn get_properties_by_source_id<T: Into<ObsString> + Sync + Send>( id: T, runtime: &ObsRuntime, ) -> Result<HashMap<String, ObsProperty>, ObsError>
Auto Trait Implementations§
impl !RefUnwindSafe for ObsOutputRef
impl !UnwindSafe for ObsOutputRef
impl Freeze for ObsOutputRef
impl Send for ObsOutputRef
impl Sync for ObsOutputRef
impl Unpin for ObsOutputRef
impl UnsafeUnpin for ObsOutputRef
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