mirror of
https://github.com/servo/servo.git
synced 2025-10-01 17:19:16 +01:00
Auto merge of #23483 - ceyusa:player-context, r=jdm
Media player rendering with GL textures These patches pass the application's OpenGL raw context and the its native display address to the media player, in order to create an internal wrapped context, thus it will generate video frames as textures. For now only EGL from glutin-based app and android are in place, though tested only in Linux glutin app. This PR also renders the generated frame textures by Servo/Media and renders them by using a thread that connects Webrenderer's ExternalImageHandler and each instantiated player. **By now, these patches, disable the WebGL rendering**. We need to provide a ExternalImageHandler demuxer. This PR depends on https://github.com/servo/media/pull/270 - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - This PR fixes #22300 and fixes #22920 In order to test it you must launch servo as `./mach run -- --pref media.glvideo.enabled [...]` <!-- 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/23483) <!-- Reviewable:end -->
This commit is contained in:
commit
0dc17af7f0
38 changed files with 1282 additions and 128 deletions
55
Cargo.lock
generated
55
Cargo.lock
generated
|
@ -410,6 +410,7 @@ dependencies = [
|
|||
"servo_config 0.0.1",
|
||||
"webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
"webrender_traits 0.0.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -610,6 +611,7 @@ dependencies = [
|
|||
"pixels 0.0.1",
|
||||
"profile_traits 0.0.1",
|
||||
"script_traits 0.0.1",
|
||||
"servo-media 0.1.0 (git+https://github.com/servo/media)",
|
||||
"servo_geometry 0.0.1",
|
||||
"servo_url 0.0.1",
|
||||
"style_traits 0.0.1",
|
||||
|
@ -646,6 +648,7 @@ dependencies = [
|
|||
"keyboard-types 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"layout_traits 0.0.1",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"media 0.0.1",
|
||||
"metrics 0.0.1",
|
||||
"msg 0.0.1",
|
||||
"net 0.0.1",
|
||||
|
@ -2545,6 +2548,7 @@ dependencies = [
|
|||
"layout_thread_2013 0.0.1",
|
||||
"layout_thread_2020 0.0.1",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"media 0.0.1",
|
||||
"mozangle 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"msg 0.0.1",
|
||||
"net 0.0.1",
|
||||
|
@ -2565,6 +2569,7 @@ dependencies = [
|
|||
"webdriver_server 0.0.1",
|
||||
"webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
"webrender_traits 0.0.1",
|
||||
"webvr 0.0.1",
|
||||
"webvr_traits 0.0.1",
|
||||
"webxr-api 0.0.1 (git+https://github.com/servo/webxr)",
|
||||
|
@ -2737,6 +2742,23 @@ name = "matches"
|
|||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
|
||||
[[package]]
|
||||
name = "media"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-media 0.1.0 (git+https://github.com/servo/media)",
|
||||
"servo_config 0.0.1",
|
||||
"webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
"webrender_traits 0.0.1",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "memchr"
|
||||
version = "2.2.0"
|
||||
|
@ -3831,6 +3853,7 @@ dependencies = [
|
|||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"malloc_size_of 0.0.1",
|
||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"media 0.0.1",
|
||||
"metrics 0.0.1",
|
||||
"mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -3956,6 +3979,7 @@ dependencies = [
|
|||
"libc 0.2.53 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"malloc_size_of 0.0.1",
|
||||
"malloc_size_of_derive 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"media 0.0.1",
|
||||
"msg 0.0.1",
|
||||
"net_traits 0.0.1",
|
||||
"pixels 0.0.1",
|
||||
|
@ -4062,6 +4086,7 @@ dependencies = [
|
|||
"osmesa-src 0.1.0 (git+https://github.com/servo/osmesa-src)",
|
||||
"osmesa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"rust-webvr 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-media 0.1.0 (git+https://github.com/servo/media)",
|
||||
"sig 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"tinyfiledialogs 3.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"webxr 0.0.1 (git+https://github.com/servo/webxr)",
|
||||
|
@ -4109,7 +4134,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
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)",
|
||||
|
@ -4120,7 +4145,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-audio"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
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)",
|
||||
|
@ -4136,7 +4161,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-dummy"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
dependencies = [
|
||||
"boxfnonce 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -4150,7 +4175,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-gstreamer"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
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)",
|
||||
|
@ -4184,7 +4209,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-gstreamer-render"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
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)",
|
||||
|
@ -4194,7 +4219,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-gstreamer-render-unix"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
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)",
|
||||
|
@ -4207,7 +4232,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-player"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
dependencies = [
|
||||
"ipc-channel 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -4218,7 +4243,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-streams"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
dependencies = [
|
||||
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -4227,7 +4252,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo-media-webrtc"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
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)",
|
||||
|
@ -4326,7 +4351,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "servo_media_derive"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/servo/media#2dabf1ab7e3b6d3b6764eebdf8855431367752c4"
|
||||
source = "git+https://github.com/servo/media#c145e2097b027ca82ac767f4820693868a408bb5"
|
||||
dependencies = [
|
||||
"proc-macro2 0.4.26 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
|
@ -4430,6 +4455,7 @@ dependencies = [
|
|||
"libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"libservo 0.0.1",
|
||||
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"servo-media 0.1.0 (git+https://github.com/servo/media)",
|
||||
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
|
@ -5405,6 +5431,15 @@ dependencies = [
|
|||
"sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webrender_traits"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"euclid 0.19.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"webrender 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
"webrender_api 0.60.0 (git+https://github.com/jdm/webrender?branch=servo-hl)",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "webvr"
|
||||
version = "0.0.1"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue