aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlmediaelement.rs
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2019-04-30 17:47:20 +0200
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2019-05-02 17:27:12 +0200
commitf9bee36b71651069bcbda02d563d9b9ec488db21 (patch)
tree86a2e6db345d79b965996757a3106fa06d3db442 /components/script/dom/htmlmediaelement.rs
parent834d3193a2ed016093b6b997d29df5a607715956 (diff)
downloadservo-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/htmlmediaelement.rs')
-rw-r--r--components/script/dom/htmlmediaelement.rs15
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);