aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/htmlmediaelement.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-05-02 17:07:45 -0400
committerGitHub <noreply@github.com>2019-05-02 17:07:45 -0400
commit9f6005be163520f9a06d5a51a0f81bc43f9ea5a3 (patch)
tree86a2e6db345d79b965996757a3106fa06d3db442 /components/script/dom/htmlmediaelement.rs
parent834d3193a2ed016093b6b997d29df5a607715956 (diff)
parentf9bee36b71651069bcbda02d563d9b9ec488db21 (diff)
downloadservo-9f6005be163520f9a06d5a51a0f81bc43f9ea5a3.tar.gz
servo-9f6005be163520f9a06d5a51a0f81bc43f9ea5a3.zip
Auto merge of #23294 - ceyusa:playerglcontext, r=ferjm,jdm
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. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [ ] These changes fix #___ (GitHub issue number if applicable) <!-- Either: --> - [ ] There are tests for these changes OR - [X] These changes do not require tests because there are no functional changes, only comply with the new API. <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- 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/23294) <!-- Reviewable:end -->
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);