mirror of
https://github.com/servo/servo.git
synced 2025-07-23 15:23:42 +01:00
Finish the implementation of the HTMLMediaElement canPlayType method
This commit is contained in:
parent
834d3193a2
commit
5eb691c4d2
2 changed files with 11 additions and 62 deletions
|
@ -62,7 +62,6 @@ use html5ever::{LocalName, Prefix};
|
|||
use http::header::{self, HeaderMap, HeaderValue};
|
||||
use ipc_channel::ipc;
|
||||
use ipc_channel::router::ROUTER;
|
||||
use mime::{self, Mime};
|
||||
use net_traits::image::base::Image;
|
||||
use net_traits::image_cache::ImageResponse;
|
||||
use net_traits::request::{CredentialsMode, Destination, Referrer, RequestBuilder};
|
||||
|
@ -72,7 +71,7 @@ use script_layout_interface::HTMLMediaData;
|
|||
use servo_config::pref;
|
||||
use servo_media::player::frame::{Frame, FrameRenderer};
|
||||
use servo_media::player::{PlaybackState, Player, PlayerError, PlayerEvent, StreamType};
|
||||
use servo_media::ServoMedia;
|
||||
use servo_media::{ServoMedia, SupportsMediaType};
|
||||
use servo_url::ServoUrl;
|
||||
use std::cell::Cell;
|
||||
use std::collections::VecDeque;
|
||||
|
@ -1661,20 +1660,10 @@ impl HTMLMediaElementMethods for HTMLMediaElement {
|
|||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-navigator-canplaytype
|
||||
fn CanPlayType(&self, type_: DOMString) -> CanPlayTypeResult {
|
||||
match type_.parse::<Mime>() {
|
||||
// XXX GStreamer is currently not very reliable playing OGG and most of
|
||||
// the media related WPTs uses OGG if we report that we are able to
|
||||
// play this type. So we report that we are unable to play it to force
|
||||
// the usage of other types.
|
||||
// https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/520
|
||||
Ok(ref mime)
|
||||
if (mime.type_() == mime::APPLICATION && mime.subtype() == mime::OCTET_STREAM) ||
|
||||
(mime.subtype() == mime::OGG) =>
|
||||
{
|
||||
CanPlayTypeResult::_empty
|
||||
},
|
||||
Err(_) => CanPlayTypeResult::_empty,
|
||||
_ => CanPlayTypeResult::Maybe,
|
||||
match ServoMedia::get().unwrap().can_play_type(&type_) {
|
||||
SupportsMediaType::No => CanPlayTypeResult::_empty,
|
||||
SupportsMediaType::Maybe => CanPlayTypeResult::Maybe,
|
||||
SupportsMediaType::Probably => CanPlayTypeResult::Probably,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
[video/mp4; codecs="mp4v.20.8" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm with bogus codec]
|
||||
expected: FAIL
|
||||
|
||||
[video/3gpp; codecs="samr" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -14,33 +11,18 @@
|
|||
[audio/webm (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[audio/webm with and without codecs]
|
||||
expected: FAIL
|
||||
|
||||
[audio/mp4; codecs="mp4a.40.2" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[audio/mp4 with bogus codec]
|
||||
expected: FAIL
|
||||
|
||||
[audio/webm; codecs="vorbis" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm; codecs="vp9" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/ogg; codecs="theora" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/mp4; codecs="avc1.64001E" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/ogg; codecs="opus" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[fictional formats and codecs not supported]
|
||||
expected: FAIL
|
||||
|
||||
[video/mp4 with bogus codec]
|
||||
expected: FAIL
|
||||
|
||||
[video/mp4 (optional)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -50,10 +32,10 @@
|
|||
[audio/ogg; codecs="opus" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm; codecs="vp8.0" (optional)]
|
||||
[video/webm (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm (optional)]
|
||||
[video/webm with and without codecs]
|
||||
expected: FAIL
|
||||
|
||||
[video/mp4; codecs="avc1.4D401E" (optional)]
|
||||
|
@ -62,9 +44,6 @@
|
|||
[audio/wav; codecs="1" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/3gpp with bogus codec]
|
||||
expected: FAIL
|
||||
|
||||
[audio/wav (optional)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -80,9 +59,6 @@
|
|||
[audio/mp4 (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm; codecs="opus" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/3gpp (optional)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -95,24 +71,8 @@
|
|||
[audio/ogg; codecs="vorbis" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[audio/webm; codecs="opus" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm; codecs="vorbis" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[audio/wav with bogus codec]
|
||||
[video/ogg; codecs="opus" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/3gpp; codecs="mp4v.20.8" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm; codecs="vp9.0" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[video/webm; codecs="vp8" (optional)]
|
||||
expected: FAIL
|
||||
|
||||
[audio/webm with bogus codec]
|
||||
expected: FAIL
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue