diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 1d27c75fd09..b75433bb213 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -127,8 +127,54 @@ pub use servo_url as url; target_arch = "x86_64" ))] mod media_platform { - pub use self::servo_media_gstreamer::GStreamerBackend as MediaBackend; - use servo_media_gstreamer; + use super::ServoMedia; + use servo_media_gstreamer::GStreamerBackend; + + #[cfg(windows)] + pub fn init() { + let mut plugin_dir = std::env::current_exe().unwrap(); + plugin_dir.pop(); + + let plugins = &[ + "gstapp.dll", + "gstaudioconvert.dll", + "gstaudiofx.dll", + "gstaudioparsers.dll", + "gstaudioresample.dll", + "gstautodetect.dll", + "gstcoreelements.dll", + "gstdeinterlace.dll", + "gstplayback.dll", + "gstinterleave.dll", + "gstisomp4.dll", + "gstlibav.dll", + "gstnice.dll", + "gstogg.dll", + "gstopengl.dll", + "gstopus.dll", + "gstproxy.dll", + "gstrtp.dll", + "gsttheora.dll", + "gsttypefindfunctions.dll", + "gstvideoconvert.dll", + "gstvideoparsersbad.dll", + "gstvideoscale.dll", + "gstvolume.dll", + "gstvorbis.dll", + "gstvpx.dll", + "gstwasapi.dll", + "gstwebrtc.dll", + ]; + + let backend = GStreamerBackend::init_with_plugins(plugin_dir, plugins) + .expect("Error initializing GStreamer"); + ServoMedia::init_with_backend(backend); + } + + #[cfg(not(windows))] + pub fn init() { + ServoMedia::init::(); + } } #[cfg(not(any( @@ -136,12 +182,12 @@ mod media_platform { target_arch = "x86_64" )))] mod media_platform { - pub use self::servo_media_dummy::DummyBackend as MediaBackend; - use servo_media_dummy; + use super::ServoMedia; + pub fn init() { + ServoMedia::init::(); + } } -type MediaBackend = media_platform::MediaBackend; - /// The in-process interface to Servo. /// /// It does everything necessary to render the web, primarily @@ -209,7 +255,7 @@ where let opts = opts::get(); if !opts.multiprocess { - ServoMedia::init::(); + media_platform::init(); } // Make sure the gl context is made current. @@ -847,7 +893,7 @@ pub fn run_content_process(token: String) { script::init(); script::init_service_workers(sw_senders); - ServoMedia::init::(); + media_platform::init(); unprivileged_content.start_all:: - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true - true - false + false true + true - true - false + false true + true - true - false + false true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true - true - false + false true + true - true - false + false true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true - true - false + false true + true + + + false + true + true - true - false + false true + true true false true + false - true - false + false true + true + + + false + true + true - true - false + false true + true - true - false + false true + true true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false @@ -318,46 +624,166 @@ false true + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + + + true + false + true + true false @@ -368,16 +794,71 @@ false true + + true + false + true + + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + true false @@ -388,6 +869,76 @@ false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false @@ -398,6 +949,11 @@ false true + + true + false + true + true false @@ -413,6 +969,11 @@ false true + + true + false + true + true false @@ -433,4 +994,4 @@ - + \ No newline at end of file diff --git a/support/hololens/ServoApp.vcxproj.filters b/support/hololens/ServoApp.vcxproj.filters index 13b7c033ae1..8740c77f6a2 100644 --- a/support/hololens/ServoApp.vcxproj.filters +++ b/support/hololens/ServoApp.vcxproj.filters @@ -55,9 +55,27 @@ + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug @@ -73,39 +91,144 @@ ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug @@ -115,19 +238,64 @@ ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug - + ServoDLLsDebug - + ServoDLLsDebug @@ -136,85 +304,253 @@ ServoDLLsDebug - + ServoDLLsRelease - + ServoDLLsRelease - + ServoDLLsRelease - + ServoDLLsRelease - + ServoDLLsRelease - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - + ServoDLLsRelease ServoDLLsRelease - + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + ServoDLLsRelease