pub struct RtcTrack {
pub peer_connection: Option<Arc<PeerConnection>>,
/* private fields */
}Fields§
§peer_connection: Option<Arc<PeerConnection>>Implementations§
Source§impl RtcTrack
impl RtcTrack
pub fn new( cancel_token: CancellationToken, id: TrackId, track_config: TrackConfig, rtc_config: RtcTrackConfig, ) -> Self
pub fn with_ssrc(self, ssrc: u32) -> Self
pub fn create_audio_track( _codec: CodecType, _stream_id: Option<String>, ) -> (Arc<SampleStreamSource>, Arc<SampleStreamTrack>)
pub async fn local_description(&self) -> Result<String>
pub async fn create(&mut self) -> Result<()>
pub fn parse_sdp_payload_types( &mut self, sdp_type: SdpType, sdp_str: &str, ) -> Result<()>
Trait Implementations§
Source§impl Track for RtcTrack
impl Track for RtcTrack
fn ssrc(&self) -> u32
fn id(&self) -> &TrackId
fn config(&self) -> &TrackConfig
fn processor_chain(&mut self) -> &mut ProcessorChain
fn handshake<'life0, 'async_trait>(
&'life0 mut self,
offer: String,
__arg2: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_remote_description<'life0, 'life1, 'async_trait>(
&'life0 mut self,
answer: &'life1 String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_remote_description_force<'life0, 'life1, 'async_trait>(
&'life0 mut self,
answer: &'life1 String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn update_remote_description_provisional<'life0, 'life1, 'async_trait>(
&'life0 mut self,
answer: &'life1 String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_remote_description_provisional<'life0, 'life1, 'async_trait>(
&'life0 mut self,
answer: &'life1 String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Apply a provisional remote description (SIP 183 early media). Unlike
update_remote_description, this must not finalize SDP negotiation —
the real answer (200 OK) is still to come. Default: same as a regular
update, for track types that don’t have a signaling state machine.fn start<'life0, 'async_trait>(
&'life0 mut self,
event_sender: EventSender,
packet_sender: TrackPacketSender,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stop<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_packet<'life0, 'life1, 'async_trait>(
&'life0 mut self,
packet: &'life1 AudioFrame,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn add_ice_candidate(
&self,
candidate: &str,
_sdp_mid: Option<&str>,
_sdp_mline_index: Option<u32>,
) -> Result<()>
fn add_ice_candidate( &self, candidate: &str, _sdp_mid: Option<&str>, _sdp_mline_index: Option<u32>, ) -> Result<()>
Feed a remotely-gathered ICE candidate into this track’s PeerConnection.
Default no-op for track types that aren’t backed by ICE (file/tts/websocket tracks).
fn set_paused(&self, _paused: bool) -> bool
fn is_paused(&self) -> bool
fn insert_processor(&mut self, processor: Box<dyn Processor>)
fn append_processor(&mut self, processor: Box<dyn Processor>)
Source§fn set_raw_tap(&mut self, tap: Option<UnboundedSender<AudioFrame>>)
fn set_raw_tap(&mut self, tap: Option<UnboundedSender<AudioFrame>>)
Attach a raw-tap receiver that mirrors inbound frames at their native
(pre-resample) sample rate, used by the native-samplerate recorder.
Setting
None detaches an existing tap.fn stop_graceful<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for RtcTrack
impl !UnwindSafe for RtcTrack
impl Freeze for RtcTrack
impl Send for RtcTrack
impl Sync for RtcTrack
impl Unpin for RtcTrack
impl UnsafeUnpin for RtcTrack
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more