Auto merge of #23342 - Manishearth:webrtc-streams, r=ferjm

Receive streams in WebRTC (and MediaStreamTrack support)

This adds the `ontrack` event handler to webrtc, and all the `MediaStreamTrack` stuff necessary to make it work.

WebRTC has the ability to group media tracks into streams using MSIDs, but I haven't yet figured out how to do this. For now, `ontrack` should work.

This _should_ be complete, but it hasn't yet been tested (hence the WIP)

r? @ferjm or @jdm

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23342)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2019-05-09 00:26:02 -04:00 committed by GitHub
commit 17590fd48f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 390 additions and 47 deletions

20
Cargo.lock generated
View file

@ -3861,7 +3861,7 @@ dependencies = [
[[package]]
name = "servo-media"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"servo-media-audio 0.1.0 (git+https://github.com/servo/media)",
"servo-media-player 0.1.0 (git+https://github.com/servo/media)",
@ -3872,7 +3872,7 @@ dependencies = [
[[package]]
name = "servo-media-audio"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byte-slice-cast 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3888,7 +3888,7 @@ dependencies = [
[[package]]
name = "servo-media-dummy"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3902,7 +3902,7 @@ dependencies = [
[[package]]
name = "servo-media-gstreamer"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"byte-slice-cast 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3936,7 +3936,7 @@ dependencies = [
[[package]]
name = "servo-media-gstreamer-render"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gstreamer-video 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3946,7 +3946,7 @@ dependencies = [
[[package]]
name = "servo-media-gstreamer-render-unix"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"glib 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gstreamer 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3959,7 +3959,7 @@ dependencies = [
[[package]]
name = "servo-media-player"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"ipc-channel 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3970,7 +3970,7 @@ dependencies = [
[[package]]
name = "servo-media-streams"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
@ -3979,7 +3979,7 @@ dependencies = [
[[package]]
name = "servo-media-webrtc"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
@ -4078,7 +4078,7 @@ dependencies = [
[[package]]
name = "servo_media_derive"
version = "0.1.0"
source = "git+https://github.com/servo/media#01cd9be1b8e92e036b4ddff0294893f7e53ef373"
source = "git+https://github.com/servo/media#8691ca03a37c45bf7efa9430e434dd5fbf0abfa3"
dependencies = [
"proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",