diff options
author | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2019-04-30 17:47:20 +0200 |
---|---|---|
committer | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2019-05-02 17:27:12 +0200 |
commit | f9bee36b71651069bcbda02d563d9b9ec488db21 (patch) | |
tree | 86a2e6db345d79b965996757a3106fa06d3db442 /components/script/dom | |
parent | 834d3193a2ed016093b6b997d29df5a607715956 (diff) | |
download | servo-f9bee36b71651069bcbda02d563d9b9ec488db21.tar.gz servo-f9bee36b71651069bcbda02d563d9b9ec488db21.zip |
Update Player instantiator API
Now servo/media player requires a new parameter for its creator, which
is a trait object that provides the GL parameters needed for setup the
generation of frames as GL textures.
This patch provides a dummy GL context trait object where the code
path will go to the default of raw frames.
Webaudio test expectation also were changed, adding two new failing
tests.
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/htmlmediaelement.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs index c6b9c8a7939..8d41a685b7b 100644 --- a/components/script/dom/htmlmediaelement.rs +++ b/components/script/dom/htmlmediaelement.rs @@ -70,6 +70,7 @@ use net_traits::{CoreResourceMsg, FetchChannels, FetchMetadata, FetchResponseLis use net_traits::{NetworkError, ResourceFetchTiming, ResourceTimingType}; use script_layout_interface::HTMLMediaData; use servo_config::pref; +use servo_media::player::context::{GlContext, NativeDisplay, PlayerGLContext}; use servo_media::player::frame::{Frame, FrameRenderer}; use servo_media::player::{PlaybackState, Player, PlayerError, PlayerEvent, StreamType}; use servo_media::ServoMedia; @@ -160,6 +161,16 @@ impl FrameRenderer for MediaFrameRenderer { } } +struct PlayerContextDummy(); +impl PlayerGLContext for PlayerContextDummy { + fn get_gl_context(&self) -> GlContext { + return GlContext::Unknown; + } + fn get_native_display(&self) -> NativeDisplay { + return NativeDisplay::Unknown; + } +} + #[must_root] #[derive(JSTraceable, MallocSizeOf)] enum SrcObject { @@ -1201,7 +1212,9 @@ impl HTMLMediaElement { _ => StreamType::Seekable, }; - let player = ServoMedia::get().unwrap().create_player(stream_type); + let player = ServoMedia::get() + .unwrap() + .create_player(stream_type, Box::new(PlayerContextDummy())); let (action_sender, action_receiver) = ipc::channel().unwrap(); player.register_event_handler(action_sender); |