diff options
author | trav90 <travawine@palemoon.org> | 2018-10-17 05:54:22 -0500 |
---|---|---|
committer | trav90 <travawine@palemoon.org> | 2018-10-17 05:54:22 -0500 |
commit | 0cc51bc106250988cc3b89cb5d743a5af52cd35a (patch) | |
tree | 68a1e4544f48012be2cebdc36e888cdbfd0fddec /dom/media/platforms/agnostic | |
parent | 1036d1fa0b1fe0f1a7136ffe111f577aa35de21e (diff) | |
download | UXP-0cc51bc106250988cc3b89cb5d743a5af52cd35a.tar UXP-0cc51bc106250988cc3b89cb5d743a5af52cd35a.tar.gz UXP-0cc51bc106250988cc3b89cb5d743a5af52cd35a.tar.lz UXP-0cc51bc106250988cc3b89cb5d743a5af52cd35a.tar.xz UXP-0cc51bc106250988cc3b89cb5d743a5af52cd35a.zip |
Add av1 to MediaSource.isTypeSupported
When av1 video playback is enabled, declare it as supported in the webm container in MediaSource.IsTypeSupported.
Also support special mime types of the form video/webm; codecs=vp9.experimental.<git-commit-id> so test sites can verify playback support of particular encodings while the av1 bitstream is under development.
Diffstat (limited to 'dom/media/platforms/agnostic')
-rw-r--r-- | dom/media/platforms/agnostic/AOMDecoder.cpp | 13 | ||||
-rw-r--r-- | dom/media/platforms/agnostic/AOMDecoder.h | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/dom/media/platforms/agnostic/AOMDecoder.cpp b/dom/media/platforms/agnostic/AOMDecoder.cpp index 3ab5004e3..d1b45cf7f 100644 --- a/dom/media/platforms/agnostic/AOMDecoder.cpp +++ b/dom/media/platforms/agnostic/AOMDecoder.cpp @@ -212,6 +212,19 @@ AOMDecoder::IsAV1(const nsACString& aMimeType) /* static */ bool +AOMDecoder::IsSupportedCodec(const nsAString& aCodecType) +{ + // While AV1 is under development, we describe support + // for a specific aom commit hash so sites can check + // compatibility. + auto version = NS_ConvertASCIItoUTF16("av1.experimental."); + version.AppendLiteral("4d668d7feb1f8abd809d1bca0418570a7f142a36"); + return aCodecType.EqualsLiteral("av1") || + aCodecType.Equals(version); +} + +/* static */ +bool AOMDecoder::IsKeyframe(Span<const uint8_t> aBuffer) { aom_codec_stream_info_t info; PodZero(&info); diff --git a/dom/media/platforms/agnostic/AOMDecoder.h b/dom/media/platforms/agnostic/AOMDecoder.h index ec6b1f95a..1e2b76c2c 100644 --- a/dom/media/platforms/agnostic/AOMDecoder.h +++ b/dom/media/platforms/agnostic/AOMDecoder.h @@ -34,6 +34,9 @@ public: // by our demuxers to identify AV1 streams. static bool IsAV1(const nsACString& aMimeType); + // Return true if aCodecType is a supported codec description. + static bool IsSupportedCodec(const nsAString& aCodecType); + // Return true if a sample is a keyframe. static bool IsKeyframe(Span<const uint8_t> aBuffer); |