Move media backend initialization to process startup.

This commit is contained in:
Josh Matthews 2019-03-29 15:31:01 -04:00
parent 17204544d9
commit eebd831ea5
8 changed files with 12 additions and 11 deletions

3
Cargo.lock generated
View file

@ -2398,6 +2398,8 @@ dependencies = [
"script 0.0.1",
"script_layout_interface 0.0.1",
"script_traits 0.0.1",
"servo-media 0.1.0 (git+https://github.com/servo/media)",
"servo-media-auto 0.1.0 (git+https://github.com/servo/media)",
"servo_config 0.0.1",
"servo_geometry 0.0.1",
"servo_url 0.0.1",
@ -3531,7 +3533,6 @@ dependencies = [
"serde_bytes 0.10.4 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_json 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-media 0.1.0 (git+https://github.com/servo/media)",
"servo-media-auto 0.1.0 (git+https://github.com/servo/media)",
"servo_allocator 0.0.1",
"servo_arc 0.1.1",
"servo_atoms 0.0.1",

View file

@ -97,7 +97,6 @@ servo_atoms = {path = "../atoms"}
servo_config = {path = "../config"}
servo_geometry = {path = "../geometry" }
servo-media = {git = "https://github.com/servo/media"}
servo-media-auto = {git = "https://github.com/servo/media"}
servo_rand = {path = "../rand"}
servo_url = {path = "../url"}
smallvec = { version = "0.6", features = ["std", "union"] }

View file

@ -51,7 +51,6 @@ use servo_media::audio::context::{OfflineAudioContextOptions, RealTimeAudioConte
use servo_media::audio::decoder::AudioDecoderCallbacks;
use servo_media::audio::graph::NodeId;
use servo_media::ServoMedia;
use servo_media_auto::Backend;
use std::cell::Cell;
use std::collections::{HashMap, VecDeque};
use std::mem;
@ -109,8 +108,6 @@ impl BaseAudioContext {
},
};
ServoMedia::init::<Backend>();
let context = BaseAudioContext {
eventtarget: EventTarget::new_inherited(),
audio_context_impl: ServoMedia::get()

View file

@ -72,7 +72,6 @@ use servo_config::pref;
use servo_media::player::frame::{Frame, FrameRenderer};
use servo_media::player::{PlaybackState, Player, PlayerError, PlayerEvent, StreamType};
use servo_media::ServoMedia;
use servo_media_auto::Backend;
use servo_url::ServoUrl;
use std::cell::Cell;
use std::collections::VecDeque;
@ -276,7 +275,6 @@ pub enum ReadyState {
impl HTMLMediaElement {
pub fn new_inherited(tag_name: LocalName, prefix: Option<Prefix>, document: &Document) -> Self {
ServoMedia::init::<Backend>();
Self {
htmlelement: HTMLElement::new_inherited(tag_name, prefix, document),
network_state: Cell::new(NetworkState::Empty),

View file

@ -17,7 +17,6 @@ use crate::dom::promise::Promise;
use dom_struct::dom_struct;
use servo_media::streams::capture::{Constrain, ConstrainRange, MediaTrackConstraintSet};
use servo_media::ServoMedia;
use servo_media_auto::Backend;
use std::rc::Rc;
#[dom_struct]
@ -27,7 +26,6 @@ pub struct MediaDevices {
impl MediaDevices {
pub fn new_inherited() -> MediaDevices {
ServoMedia::init::<Backend>();
MediaDevices {
eventtarget: EventTarget::new_inherited(),
}

View file

@ -41,7 +41,6 @@ use servo_media::webrtc::{
SignalingState, WebRtcController, WebRtcSignaller,
};
use servo_media::ServoMedia;
use servo_media_auto::Backend;
use std::cell::Cell;
use std::rc::Rc;
@ -159,7 +158,6 @@ impl RTCPeerConnection {
RTCPeerConnectionBinding::Wrap,
);
let signaller = this.make_signaller();
ServoMedia::init::<Backend>();
*this.controller.borrow_mut() = Some(ServoMedia::get().unwrap().create_webrtc(signaller));
if let Some(ref servers) = config.iceServers {
if let Some(ref server) = servers.get(0) {

View file

@ -65,6 +65,8 @@ script_layout_interface = {path = "../script_layout_interface"}
script_traits = {path = "../script_traits"}
servo_config = {path = "../config"}
servo_geometry = {path = "../geometry"}
servo-media = {git = "https://github.com/servo/media"}
servo-media-auto = {git = "https://github.com/servo/media"}
servo_url = {path = "../url"}
style = {path = "../style", features = ["servo"]}
style_traits = {path = "../style_traits", features = ["servo"]}

View file

@ -103,6 +103,8 @@ use profile_traits::time;
use script_traits::{ConstellationMsg, SWManagerSenders, ScriptToConstellationChan};
use servo_config::opts;
use servo_config::{pref, prefs};
use servo_media::ServoMedia;
use servo_media_auto::Backend;
use std::borrow::Cow;
use std::cmp::max;
use std::path::PathBuf;
@ -182,6 +184,10 @@ where
// Global configuration options, parsed from the command line.
let opts = opts::get();
if !opts.multiprocess {
ServoMedia::init::<Backend>();
}
// Make sure the gl context is made current.
window.prepare_for_composite();
@ -751,6 +757,8 @@ pub fn run_content_process(token: String) {
script::init();
script::init_service_workers(sw_senders);
ServoMedia::init::<Backend>();
unprivileged_content.start_all::<script_layout_interface::message::Msg,
layout_thread::LayoutThread,
script::script_thread::ScriptThread>(