diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-05-02 17:07:45 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-02 17:07:45 -0400 |
commit | 9f6005be163520f9a06d5a51a0f81bc43f9ea5a3 (patch) | |
tree | 86a2e6db345d79b965996757a3106fa06d3db442 /components/script/dom | |
parent | 834d3193a2ed016093b6b997d29df5a607715956 (diff) | |
parent | f9bee36b71651069bcbda02d563d9b9ec488db21 (diff) | |
download | servo-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')
-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); |