pub trait ObsOutputTrait: ObsOutputTraitSealed + ObsObjectTrait<Native = *mut obs_output_t> {
Show 25 methods
// Required method
fn signals(&self) -> &Arc<ObsOutputSignals> โ;
// Provided methods
fn attached_video_encoder(
&self,
) -> Result<Option<Arc<ObsVideoEncoder>>, ObsError> { ... }
fn attached_audio_encoder(
&self,
mixer_idx: usize,
) -> Result<Option<Arc<ObsAudioEncoder>>, ObsError> { ... }
fn attached_audio_encoders(
&self,
) -> Result<HashMap<usize, Arc<ObsAudioEncoder>>, ObsError> { ... }
fn attached_service(&self) -> Result<Option<Arc<ObsServiceRef>>, ObsError> { ... }
fn get_current_video_encoder(
&self,
) -> Result<Option<Arc<ObsVideoEncoder>>, ObsError> { ... }
fn get_current_audio_encoder(
&self,
mixer_idx: usize,
) -> Result<Option<Arc<ObsAudioEncoder>>, ObsError> { ... }
fn get_current_audio_encoders(
&self,
) -> Result<HashMap<usize, Arc<ObsAudioEncoder>>, ObsError> { ... }
fn get_current_service(
&self,
) -> Result<Option<Arc<ObsServiceRef>>, ObsError> { ... }
fn current_composition(&self) -> Result<ObsOutputComposition, ObsError> { ... }
fn set_service(&self, service: Arc<ObsServiceRef>) -> Result<(), ObsError> { ... }
fn apply_composition(
&self,
composition: ObsOutputComposition,
) -> Result<(), ObsError> { ... }
fn clear_video_encoder(&self) -> Result<(), ObsError> { ... }
fn clear_audio_encoder(&self, mixer_idx: usize) -> Result<(), ObsError> { ... }
fn clear_service(&self) -> Result<(), ObsError> { ... }
fn create_and_set_video_encoder(
&self,
info: VideoEncoderInfo,
) -> Result<Arc<ObsVideoEncoder>, ObsError> { ... }
fn set_video_encoder(
&self,
encoder: Arc<ObsVideoEncoder>,
) -> Result<(), ObsError> { ... }
fn create_and_set_audio_encoder(
&self,
info: AudioEncoderInfo,
mixer_idx: usize,
) -> Result<Arc<ObsAudioEncoder>, ObsError> { ... }
fn set_audio_encoder(
&self,
encoder: Arc<ObsAudioEncoder>,
mixer_idx: usize,
) -> Result<(), ObsError> { ... }
fn start(&self) -> Result<(), ObsError> { ... }
fn set_paused(&self, should_pause: bool) -> Result<(), ObsError> { ... }
fn pause(&self) -> Result<(), ObsError> { ... }
fn unpause(&self) -> Result<(), ObsError> { ... }
fn stop(&self) -> Result<(), ObsError> { ... }
fn is_active(&self) -> Result<bool, ObsError> { ... }
}Required Methodsยง
fn signals(&self) -> &Arc<ObsOutputSignals> โ
Provided Methodsยง
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
fn get_current_video_encoder( &self, ) -> Result<Option<Arc<ObsVideoEncoder>>, ObsError>
Use attached_video_encoder
fn get_current_audio_encoder( &self, mixer_idx: usize, ) -> Result<Option<Arc<ObsAudioEncoder>>, ObsError>
Use attached_audio_encoder
fn get_current_audio_encoders( &self, ) -> Result<HashMap<usize, Arc<ObsAudioEncoder>>, ObsError>
Use attached_audio_encoders
fn get_current_service(&self) -> Result<Option<Arc<ObsServiceRef>>, ObsError>
Use attached_service
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
This is the preferred API when constructing an output from discovered capabilities: it validates all runtime affinities before touching libobs, detaches omitted components, and updates the Rust-side ownership graph only after the native calls complete.
Sourcefn clear_video_encoder(&self) -> Result<(), ObsError>
fn clear_video_encoder(&self) -> Result<(), ObsError>
Detaches the current video encoder while the output is inactive.
Sourcefn 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.
Sourcefn clear_service(&self) -> Result<(), ObsError>
fn clear_service(&self) -> Result<(), ObsError>
Detaches the current streaming service while the output is inactive.
Sourcefn 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.
Fails if the output is active.
Sourcefn 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.
Fails if the output is active.
Sourcefn 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.
Sourcefn 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.
Fails if the output is active.
Sourcefn 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>
Sourcefn 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>
Dyn Compatibilityยง
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".