Class: shaka.polyfill.MediaSource

A polyfill to patch MSE bugs.

Methods

(private, static) blacklist_()

Blacklist the current browser by removing media source. A side-effect of this will be to make |shaka.util.Platform.supportsMediaSource| return |false|.
Source:

(static) install()

Install the polyfill if needed.
Source:

(private, static) patchCastIsTypeSupported_()

Patch isTypeSupported() to parse for HDR-related clues and chain to a private API on the Chromecast which can query for support.
Source:

(private, static) patchRemovalRange_()

Patch remove(). On Safari 11, if you call remove() to remove the content up to a keyframe, Safari will also remove the keyframe and all of the data up to the next one. For example, if the keyframes are at 0s, 5s, and 10s, and you tried to remove 0s-5s, it would instead remove 0s-10s. Offsetting the end of the range seems to be a usable workaround.
Source:

(private, static) rejectCodec_(codec)

Patch |MediaSource.isTypeSupported| to always reject |codec|. This is used when we know that we are on a platform that does not work well with a given codec.
Parameters:
Name Type Description
codec string
Source:

(private, static) rejectTsContent_()

Patch isTypeSupported() to reject TS content. Used to avoid TS-related MSE bugs on Safari.
Source:

(private, static) stubAbort_()

Stub out abort(). On some buggy MSE implementations, calling abort() causes various problems.
Source: