diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 1d7dfebd832..690692a2481 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -207,12 +207,12 @@ impl FrameRenderer for MediaFrameRenderer {
*width = frame.get_width();
*height = frame.get_height();
- let image_data = if let Some(player_id) = self.player_id {
+ let image_data = if frame.is_gl_texture() && self.player_id.is_some() {
self.current_frame_holder
.get_or_insert_with(|| FrameHolder::new(frame.clone()))
.set(frame);
ImageData::External(ExternalImageData {
- id: ExternalImageId(player_id),
+ id: ExternalImageId(self.player_id.unwrap()),
channel_index: 0,
image_type: ExternalImageType::TextureHandle(TextureTarget::Default),
})
@@ -225,10 +225,10 @@ impl FrameRenderer for MediaFrameRenderer {
let image_key = self.api.generate_image_key();
self.current_frame = Some((image_key, frame.get_width(), frame.get_height()));
- let image_data = if let Some(player_id) = self.player_id {
+ let image_data = if frame.is_gl_texture() && self.player_id.is_some() {
self.current_frame_holder = Some(FrameHolder::new(frame));
ImageData::External(ExternalImageData {
- id: ExternalImageId(player_id),
+ id: ExternalImageId(self.player_id.unwrap()),
channel_index: 0,
image_type: ExternalImageType::TextureHandle(TextureTarget::Default),
})