feat: video publishing (#42)

- Prepare webrtc abstraction ( for future wasm support )
- Added track publish support for videos
  - Added LogoTrack example to simple_room demo
- Lot of cleanup
- There are compiler warnings I'll solve on our v1 release
This commit is contained in:
Théo Monnom
2023-03-18 03:25:16 +01:00
committed by GitHub
parent 4443eae434
commit cad6d36201
123 changed files with 8534 additions and 4601 deletions
+49
View File
@@ -0,0 +1,49 @@
use crate::track;
include!(concat!(env!("OUT_DIR"), "/livekit.rs"));
// Conversions
impl TryFrom<TrackType> for track::TrackKind {
type Error = &'static str;
fn try_from(r#type: TrackType) -> Result<Self, Self::Error> {
match r#type {
TrackType::Audio => Ok(Self::Audio),
TrackType::Video => Ok(Self::Video),
TrackType::Data => Err("data tracks are not implemented yet"),
}
}
}
impl From<track::TrackKind> for TrackType {
fn from(kind: track::TrackKind) -> Self {
match kind {
track::TrackKind::Audio => Self::Audio,
track::TrackKind::Video => Self::Video,
}
}
}
impl From<TrackSource> for track::TrackSource {
fn from(source: TrackSource) -> Self {
match source {
TrackSource::Camera => Self::Camera,
TrackSource::Microphone => Self::Microphone,
TrackSource::ScreenShare => Self::Screenshare,
TrackSource::ScreenShareAudio => Self::ScreenshareAudio,
TrackSource::Unknown => Self::Unknown,
}
}
}
impl From<track::TrackSource> for TrackSource {
fn from(source: track::TrackSource) -> Self {
match source {
track::TrackSource::Camera => Self::Camera,
track::TrackSource::Microphone => Self::Microphone,
track::TrackSource::Screenshare => Self::ScreenShare,
track::TrackSource::ScreenshareAudio => Self::ScreenShareAudio,
track::TrackSource::Unknown => Self::Unknown,
}
}
}