Skip to content

Latest commit

 

History

History
3749 lines (3228 loc) · 151 KB

File metadata and controls

3749 lines (3228 loc) · 151 KB

3.0.6 (2020-11-12)

Bugfixes:

  • Fix handling of metadata tracks for src= playback
  • Fix handling of role-less audio tracks
  • Fix support for multi-period encrypted live
  • Export UI externs
  • Fix duplicate init segment requests on manifest updates
  • Fix hard-coded TTML namespaces
  • Fix test failure on IE11
  • Filter out "chapters" tracks during src= playback
  • Fix compatibility for plugin factories
  • Be more permissive in vtt files
  • Fix renaming of UI base class protected members
  • Make submenu CSS apply to all submenus
  • Export FakeEvent for use by UI plugins
  • Recognize mp4a and mp4v extensions in HLS
  • Support multiple CHARACTERISTICS values in HLS
  • Don't auto-play after seeking while paused in the UI

Ad changes (BETA):

  • Allow apps to supply adsResponse property for IMA

Docs:

  • Add link to complete list of build categories
  • Correct receiver IDs in the UI tutorial
  • Update required Node version

Demo App:

  • Add test streams for CEA-608
  • Add new low latency DASH manifest
  • Remove redundant switch for manifest.dash.ignoreDrmInfo

Misc:

  • Add mkdir to make all build commands self-contained
  • Generate TypeScript defs with Clutz

2.5.18 (2020-11-12)

Bugfixes:

  • Fix handling of role-less audio tracks
  • Export UI externs
  • Fix hard-coded TTML namespaces
  • Filter out "chapters" tracks during src= playback
  • Fix renaming of UI base class protected members
  • Export FakeEvent for use by UI plugins
  • Recognize mp4a and mp4v extensions in HLS
  • Support multiple CHARACTERISTICS values in HLS
  • Don't auto-play after seeking while paused in the UI

Docs:

  • Add link to complete list of build categories
  • Update required Node version
  • Correct receiver app IDs in the UI tutorial

Demo App:

  • Remove redundant switch for manifest.dash.ignoreDrmInfo

Misc:

  • Add mkdir to make all build commands self-contained

3.0.5 (2020-10-07)

Bugfixes:

  • Fix hiding controls on mobile after touch
  • Ignore seek touch events on hidden controls
  • Fix interpretation of DEFAULT and AUTOSELECT in HLS
  • Avoid a race when clearing buffered content
  • Allow playback of video-only HLS via configuration
  • Make UITextDisplayer CSS-independent
  • Remove hard-coded tts:extent namespace in TTML parser
  • Don't apply seek range while content is still loading
  • Fix Shaka+Cast apps using IndexedDB
  • Permit applications to monkey-patch Date.now
  • Fix detection of Edge Chromium as Edge
  • Fix loading with global "define" set to null
  • Fix missing cues in UITextDisplayer
  • Fix storing modified init data for offline sessions
  • Fix duplicate text streams in multi-period DASH
  • Fix rapid seeking leading to infinite buffering
  • Fix non-deterministic exception in StreamingEngine
  • Fix bug where cue comparison throws
  • Fix exception on multi-period DASH
  • Fix embedded captions vanishing
  • Fix application of DRM server certificate
  • Fix multi-period DASH with period-specific codecs

Demo App:

  • Change the menu icon to a settings icon
  • Suppress bogus errors displayed during download

Docs:

  • Fix references to built-in CEA 608 support, not available in this branch
  • Add links to the roadmap

2.5.17 (2020-10-06)

Bugfixes:

  • Fix hiding controls on mobile after touch
  • Ignore seek touch events on hidden controls
  • Fix interpretation of DEFAULT and AUTOSELECT in HLS
  • Avoid a race when clearing buffered content
  • Allow playback of video-only HLS via configuration
  • Make UITextDisplayer CSS-independent
  • Remove hard-coded tts:extent namespace in TTML parser
  • Don't apply seek range while content is still loading
  • Fix Shaka+Cast apps using IndexedDB
  • Permit applications to monkey-patch Date.now
  • Fix detection of Edge Chromium as Edge
  • Fix loading with global "define" set to null
  • Fix missing cues in UITextDisplayer
  • Fix storing modified init data for offline sessions

Demo App:

  • Change the menu icon to a settings icon

Docs:

  • Fix references to built-in CEA 608 support, not available in this branch

3.0.4 (2020-08-25)

Bugfixes:

  • Fix case sensitivity in KEYID format check in HLS
  • Do not assume HDR for HEVC1.2 on Chromecast
  • Recognize "wvtt" codec in HLS WebVTT tracks
  • Fix case sensitivity for DRM content types
  • PlayReady only has little-endian key IDs on Edge & IE
  • Fix UI translation of "live" in Chinese

Docs:

2.5.16 (2020-08-25)

Bugfixes:

  • Fix case sensitivity in KEYID format check in HLS
  • Do not assume HDR for HEVC1.2 on Chromecast
  • Recognize "wvtt" codec in HLS WebVTT tracks
  • Fix case sensitivity for DRM content types
  • PlayReady only has little-endian key IDs on Edge & IE
  • Fix UI translation of "live" in Chinese

Docs:

3.0.3 (2020-08-12)

Bugfixes:

  • Fix timing of VTT in HLS without map header
  • Fix TTML style inheritance
  • Fix ordering of cues on IE and Edge
  • Fix VTTCue polyfill in uncompiled mode on Edge
  • Ensure the number of variants stays stable when new periods are added
  • Fix src= playback on WebOS
  • Filter timeline regions by seek range
  • Don't send duplicate license requests
  • Don't limit segment count for VOD
  • Fix data URI parsing when charset present
  • Fix rendering of TTML nested cues and spacers

Ad changes (BETA):

  • Add an extra log when replacing ad tag params for tracking adoption
  • Properly set tracking info for SS IMA streams

Demo App:

  • License header field for custom assets

Docs:

  • Correct very outdated docs on test.py

2.5.15 (2020-08-12)

Bugfixes:

  • Fix TTML style inheritance
  • Fix ordering of cues on IE and Edge
  • Fix src= playback on WebOS
  • Filter timeline regions by seek range
  • Don't send duplicate license requests
  • Fix data URI parsing when charset present
  • Fix rendering of TTML nested cues and spacers

Docs:

  • Correct very outdated docs on test.py

3.0.2 (2020-07-28)

Bugfixes:

  • Fix missing build/types/core in npm packages
  • Work around stalling playback on Tizen 3
  • Fix hang while shutting down Widevine DRM sessions
  • Fix initial bandwidth estimate on Tizen
  • Fix src= playback on Tizen 3
  • Work around less 3.12.0 bug
  • Improve logging of buffered ranges on WebOS
  • Fix use of --test-custom-license-server in test.py
  • Fix HLS discontinuity bug, broken playback with ads
  • Fix disappearing captions with certain input patterns
  • Fix missing captions when switching streams
  • Append license for language-mapping-list to output

Ad changes (BETA):

  • Proxy all client-side IMA events through the ad manager
  • Fire a shaka.Player.Metadata event on detecting ID3 metadata

Docs:

  • Update tutorial for seek bar color changes
  • Add FAQ entry for native HLS playback in Safari
  • Update tutorials and docs to async/await syntax
  • Update tutorials and docs to use modern variable syntax (const/let)

Demo App:

  • Fix demo behavior when UI fails to load (due to ad blocker)

3.0.1 (2020-06-18)

Bugfixes:

  • Fix failure with identical text streams
  • Fix offline progress callbacks in release mode
  • Fix bad segment URLs in DASH SegmentTimeline
  • Correct license headers in compiled output
  • Set an explicit font size for icons in UI
  • Apply upstream styles for icons font in UI
  • Export shaka.util.FairPlayUtils and shaka.util.BufferUtils

Ad changes (BETA):

  • Correct IMA SDK URLs in service worker and docs
  • Fix UI not showing up for server side ad streams
  • Expose more client side IMA info to apps

Demo App:

  • Fix centering of MDL icons
  • Fix error text overflow
  • Fix missing icon for demo app menu

Docs:

  • Update Manifest Parser tutorial

2.5.13 (2020-06-11)

Bugfixes:

  • Fix background color of nested cues
  • Fix seeking from Google Home app while casting
  • Fix cancelation of pending network requests on load() and destroy()
  • Fix pixelAspectRatio extraction from DASH
  • Fix nested TTML captions with time offset
  • Set explicit default font size for UI icons
  • Correct license headers in compiled output and generated externs

3.0.0 (2020-06-09)

Ad Features (BETA):

  • Integration with Google IMA Ads SDK
  • Ad-related UI elements

Offline Features:

  • Allow offline downloads to be aborted
  • Store creation time with offline assets
  • Allow multiple concurrent storage operations on one Storage instance
  • Make trackSelectionCallback async
  • Allow storage of manifests that are missing inline init data

HLS Features:

  • Add support for HLS Discontinuity
  • Add support for multiple EXT-X-MAP tags
  • Improve HLS startup latency
  • Add variable substitution support to HLS parser
  • Add a presentationDelay config for HLS live

UI Features:

  • Expand translations: now available in 45 languages (18 built-in by default)
  • Support setting source through HTML src attribute or source tag
  • Large play button is configurable, and only shows on mobile UI by default
  • Add playback speed selection to UI
  • Add loop control element to UI
  • Improve buffering spinner visibility

Subtitle/Caption Features:

  • Add support for ebutts:linePadding in TTML
  • Add support for cell resolution units and font percentage in TTML
  • Add support for tts:border, tts:letterSpacing and tts:opacity in TTML

Other Features:

  • Add API to set Cast content metadata in CastReceiver
  • Add liveLatency to stats
  • Allow configuration of presumed manifest accuracy, reduces extra fetches
  • Take into account the playbackRate in bandwidth calculations
  • Add check for E-AC3 JOC in DASH
  • Improve startup performance by lazily creating segment indexes
  • Support pre-standard DASH MIME type
  • Allow running tests without Babel

Bugfixes:

  • Fix background color of nested cues
  • Fix seeking from Google Home app while casting
  • Fix cancelation of pending network requests on load() and destroy()

Broken compatibility:

  • Remove support for custom DASH ContentProtection schemas
  • Signature for config callback "drm.initDataTransform" changed

Deprecated (with backward compatibility until v4.0):

  • Uint8ArrayUtils.equal() moved to BufferUtils
  • Factory methods are no longer called with "new"
  • Config "manifest.dash.defaultPresentationDelay" moved to "manifest.defaultPresentationDelay"
  • Storage.getStoreInProgress() deprecated (not needed with concurrent storage operations)

Removed after deprecation in v2.5:

  • Player.selectEmbeddedTextTrack
  • Player.usingEmbeddedTextTrack
  • Player.getManifestUri (renamed to getAssetUri)
  • load() factory parameter (replaced with MIME type parameter)
  • Storage configuration fields (moved into Player config under "offline")
  • UI getPlayer() moved to getControls().getPlayer()

Demo App Features:

  • Added trick play controls option
  • Add 'audio only' to the search terms

2.5.12 (2020-05-29)

Bugfixes:

  • Don't preload data on iOS
  • Make the controls background gradient proportional
  • Work around IE 11 bug in text region positioning
  • Fix PlayReady key ID endianness for TiVo
  • Fix shaka.log in debug builds
  • Add support for null TS packets in HLS
  • Fix live seek bar on touch screens
  • Fix text track change after enabling text display
  • Fix SegmentTimeline with t attribute missing.
  • Fix various text positioning bugs
  • Allow OPUS on Tizen 5 or higher
  • Fix CEA caption extraction for b-frame content
  • Fix module wrapper to prevent conflicting exports

New Features:

  • Add option to customize the polling of expiration time
  • Add new option manifest.hls.useFullSegmentsForStartTime

2.5.11 (2020-05-05)

New Features:

  • Add role information to text and audio tracks in src= mode
  • Parse HLS CHARACTERISTICS attribute and populate track roles
  • Recognize new CMAF file extensions cmfv, cmfa, cmft in HLS
  • Add configuration to enable/disable fullscreen-on-rotate
  • Add configuration to enable keyboard playback controls
  • Dismiss UI overflow menus on window click
  • Add non-standard DASH PlayReady UUID

Bugfixes:

  • Fix FairPlay event handling
  • Fix load() Promise hang on iOS
  • Fix language normalization with native HLS
  • Fix display of duplicate cues
  • Fix TTML position parsing
  • Fix display of line-positioned subtitles
  • Update to mux.js 5.5.4 to fix closed caption parsing bug
  • Fix language and role preferences in src= mode
  • Fix extra text track in src= mode
  • Fix Safari-prefixed fullscreen APIs
  • Fix display of nested cues with native text display
  • Fix getPlayheadTimeAsDate while loading/buffering
  • Recover from timed-out Cast connection
  • Fix DRM exceptions on WebOS TVs
  • Fix frameRate restrictions
  • Filter out metadata text tracks in Player tracks API
  • Fix PlayRateController leak
  • Fix buffer check in StallDetector
  • Fix offline storage picking high-bandwidth codecs
  • Fix nested TTML cues with non-ASCII characters
  • Fix UI updates when enabling captions
  • Fix ratechange events w/ src= playback
  • Fix serialization of Error objects over Cast
  • Fix missing EME polyfill in Cast receiver
  • Use the module wrapper in debug builds

Docs:

  • Fix broken docs for UI control events
  • Add FAQ entry about minBufferTime

Demo App:

  • Push demo app footer to the bottom of the page

2.5.10 (2020-03-24)

New Features:

  • Added 'doubleClickForFullscreen' config to UI
  • Add 'loaded' event
  • Update prerequisites script w/ new nodejs versions
  • Export default text parser plugins
  • Add config to show/hide unbuffered range at seek bar start
  • Approximate segment size based on bandwidth when deciding to abort a request
  • Always log config errors
  • Make 'offline.trackSelectionCallback' async to allow the app to prompt the user or do other async checks
  • Disable video when the media element is AUDIO

Bugfixes:

  • Fix DRM-related issues on Tizen
  • Fix exceptions with very large manifests on XBox One and possibly other consumer electronics platforms
  • Fix UI exception joining existing Cast session
  • Fix UTCTiming when autoCorrectDrift is off
  • Fix EME polyfill exceptions on Edge
  • Fix offline storage with some Widevine and PlayReady content
  • Don't fire 'adaptation' event when not switching
  • Fix rare exception in isTextTrackVisible()
  • Fix bogus warnings about argument count in configs
  • Fix duplicate DB objects when storing offline content
  • Fix MIME type case sensitivity in HLS parser
  • Fix changing UI Cast app ID to empty string
  • Fix case sensitivity in TTML MIME types
  • Fix exceptions for Video Futur platform
  • Fix captions display alignment
  • Fix Cast errors in compiled mode

Docs:

  • Improve ClearKey examples
  • Fix truncated UI tutorial
  • Update offline.md
  • Add additional links in error code reference

Demo App:

  • Several service worker improvements and fixes
  • Load pwacompat through npm
  • Replace Live search boolean with a drop-down
  • Renamed the "search" tab to "all content"
  • Add search filters to the URL
  • Work around Material Icons font bug
  • Work around MDL button bug in iOS 13

2.5.9 (2020-02-04)

Bugfixes:

  • Fix PiP polyfill for iOS
  • Ban iOS < 12
  • Work around service worker registration hang on iOS
  • Fix display of selected language in UI
  • Fix race condition on HLS parser shutdown
  • Fix StringUtils on Xbox One
  • Fix selecting audio track by role when video tracks contain the same role
  • Fix skipping of raw format streams in HLS
  • Fix iPad 13+ detection
  • Fix exception thrown for Chrome & Firefox on iOS

Docs:

  • Fix typo in fairplay tutorial

2.5.8 (2020-01-16)

Bugfixes:

  • Recognize and reject raw AAC in HLS
  • Fix fullscreen on Android
  • Fix start time support in src= mode
  • Add missing events to CastProxy Player
  • Fix cast receiver UI update

New Features:

  • Add corruptedFrames to stats
  • Add framerate restriction to the config
  • Add option to ignore empty AdaptationSets in DASH
  • Add licenseTime to stats
  • Add pixelAspectRatio property from DASH
  • Add AirPlay support with native HLS and FairPlay
  • Add option to show text/audio roles in UI
  • Add "fadeDelay" option to delay fading UI controls

Demo App:

  • Update asset list and metadata

2.5.7 (2019-12-18)

New Features:

  • Add audioSamplingRate property
  • Ignore DASH image tracks
  • Add AV1 check and more file extensions for src mode
  • Allow removing text from manifests
  • Allow ignoreSuggestedPresentationDelay in DASH
  • Allow removing video from manifests
  • Add a polyfill for EME encryption scheme queries
  • Add support for ttml regions
  • Add a method to select variants by label

Bugfixes:

  • Fix shaka.polyfill missing in externs
  • Fix width of overflow menu with wide content
  • Disable indexedDB support if an error is thrown
  • Fix setting robustness settings in DRM config

2.5.6 (2019-11-06)

Bugfixes:

  • Fix storing content with delayLicenseRequestUntilPlayed
  • Fix check for captions in appendBuffer
  • Allow 'rebufferingGoal' to change after startup
  • Fix default encoding when reading files
  • Throw for invalid TTML
  • Fix FairPlay default initDataTransform
  • Fix live seekbar on Android
  • Fix undefined value in HLS request filters
  • Fix Period transitions with embedded captions
  • Throw error for clear-key content with src=
  • Fix support for empty TTML data
  • Fix multi-Period handling of key statuses
  • Fix stall at end with src=
  • Fix ttml background image support

New Features:

  • Add config to use MSE playback on Safari
  • Support storing protected content without init data in manifest
  • Allow disable audio/video in manifest parsers
  • Enhance ttml rendering
  • Include event ID in DASH Event checks
  • Add support for Label element in DASH
  • Treat URL schemes as case-insensitive
  • Forward change event from src= playback
  • Export getMaxSegmentDuration() on presentationTimeline
  • Ignore MIME parameters in Content-Type check
  • Make seek & volume bar colors configurable

Demo App:

  • Improve mobile Safari PWA support in demo
  • Added tooltips to the search filters on the demo
  • Added "report bug" button to demo

2.5.5 (2019-08-23)

New Features:

  • Conditionally remove FairPlay formatting
  • Add sessionId field to network request
  • Make it easier to add custom overflow menu items
  • Add clearBufferOnQualityChange field to UI config
  • Allow filtering out failed HLS text tracks
  • Parse Accessibility tag into text "kind"
  • Re-add MediaSession API
  • Skip WebM streams in HLS instead of throwing
  • Convert <mspr:pro> elements to pssh init data

Bugfixes:

  • Fix duplicate resolution entries in UI menu
  • Fix missing tracks, race on time during startup
  • Fix spinner position on IE11
  • Fix seek bar coloring when nothing buffered
  • Fix scroll behavior on page load
  • Don't create a UI if the app already has one
  • Fix text display styling when fullscreen
  • Don't enter fullscreen on double click on bottom bar
  • Avoid errors when video ends
  • Fix fullscreen behavior on double click and rotate
  • Fix bug when clicking PIP button while casting
  • Fix CEA captions with multi-Period content

Demo App:

  • Added more HLS demo assets
  • Exit PIP on unload in the demo
  • Re-added hidden 'noinput' param to demo

2.5.4 (2019-07-19)

Bugfixes:

  • Default to transparent SMPTE-TT subtitle background
  • Fix seek bar on iOS
  • Allow whitespace in TTML subtitles
  • Fix play button positioning on IE 11
  • Match UI style with Chrome's native controls
  • Stop constant spurious time updates in UI
  • Fix volume slider jumping around while casting
  • Fix missing seek bar in short VOD clips
  • Fix demo app in Firefox private mode
  • Ignore case in MIME type checks
  • Fix problems with casting

New Features:

  • Add command-line arg to change the test timeout.

2.5.3 (2019-07-03)

Bugfixes:

  • Fix DASH bug when ignoring minBufferTime
  • Avoid changing variant when switching text lang
  • Work around platform bug when seeking to end
  • Allow apps to extend shaka.ui.Element
  • Fix bug when adding text streams while not streaming text
  • Fix edge case when switching text in multi-Period content
  • Fix playback rate bug on IE11
  • Make fast forwarding work when video is paused
  • Fix stack overflow in StringUtils on some platforms
  • Fix reading customData from standard Cast LOAD message

Docs:

  • Fix constant name in UI tutorials
  • Update build output name in docs

New Features:

  • Use trick play for fast forward when browser doesn't support high playbackRate

2.5.2 (2019-06-10)

Bugfixes:

  • Avoid event listener leaks in the UI
  • Fix style errors in TextDisplayer
  • Show spinner when buffering even if other controls are hidden
  • Don't recreate controls object on configure() calls
  • Fix UI compilation on Windows

New Features:

  • Add originalUri as a property on shaka.extern.Response

Demo App:

  • Fix close button styling in compiled mode
  • Fix config settings applied before playback begins
  • Change the style of the download/delete button
  • Fix demo error display for large errors
  • Improve cvox error check
  • Switch to using tippy.js for tooltips

Docs:

2.5.1 (2019-05-20)

New Features:

  • Inline external CSS for quicker load
    • You no longer need to include Material Design Icons font in your app
  • Use clean-css plugin in less.js to minify CSS

Bugfixes:

  • Deprecate ui.getPlayer for controls.getPlayer
  • Fix switching text displayer mid-playback
  • Improve french translations
  • Improve logic for aborting network requests
  • Fix initial bandwidth estimate on Chrome
  • Upgrade mux.js and use minified version
  • Fix exception on network retry
  • Fix API-based UI setup with default config
  • Allow two-argument configure() calls for UI and offline
  • Add missing export on ui.Overlay.getConfiguration
  • Various improvements in test reliability
  • Various fixes for compatibility with newer compiler versions

Demo App:

  • Fix asset card highlight on reload
  • Fix reconnection to cast sessions on reload
  • Fix handling of error events
  • Fix centering of asset card titles
  • Move download button to the corner of asset cards
  • Add WebP variants for asset icons to reduce size by 88%
  • Optimize app load time by pre-connecting to external origins
  • Defer creating tab contents until shown
  • Make name field in custom assets more permissive
  • Add link to support page in footer
  • Allow demo to load custom assets from hash
  • Do not disable controls on startup
  • Added missing config values
  • Catch certificate errors in demo
  • Let demo load even if storage fails to load
  • Re-load current asset if page reloads
  • Fix unsupported button tooltips

2.5.0 (2019-05-08)

The UI is now out of beta! Use shaka-player.ui.js and see the UI tutorials.

Core Bugfixes:

  • Fix missing variants in HLS
  • Ignore manifest-provided license servers if application-provided servers are configured
  • Fix range header regression that broke IIS compatibility
  • Fix initial display of captions based on language preferences
  • Ignore duplicate codecs in HLS
  • Reject AES-128 HLS content with meaningful error
  • Fix React Native createObjectURL polyfill incompatibility
  • Dolby Vision fixes for Chromecast
  • Fix redundant initialization of MediaSource
  • Fix stalls on WebOS
  • Fix missing require for SimpleTextDisplayer
  • Fix broken version definition in compiled build
  • Fix video reloading on audio language change

UI Bugfixes:

  • Fix missing resolution menu in UI after playing audio-only content
  • Fix pointer cursor on UI spacer
  • Do not show PIP button if not allowed
  • Fix hiding captions in UI text displayer
  • Fix UI text displayer positioning on IE
  • Make live stream timecode accessible to screen readers in the UI
  • Fix ARIA pressed state for button in text selection menu
  • Show picture-in-picture btn only when the content has video
  • Fix multiline captions in UI text displayer
  • Fix display of cast button in UI
  • Fix conflict between PiP and fullscreen
  • Fix cast receiver styling

New Core Features:

  • Abort requests when network downgrading
  • Add FairPlay support
  • Add native HLS support on iOS and Safari
  • Support src= for single-file playback
  • Add 'manifestparsed' event for early access to manifest contents
  • Add 'abrstatuschanged' event to help manage UI state
  • Make manifest redirections sticky for updates
  • Track time in "pause" state in stats
  • Make Stall Detector Configurable

New UI Features:

  • Add support for UI reconfiguration and layout changes
  • Add support for custom UI buttons
  • Add partial support for SMPTE-TT subtitles in UI text displayer
  • Add PiP support in Safari

Demo App:

  • Complete redesign of the demo app!
  • Load non-built-in localizations from the server at runtime
  • Ignore spurious errors from ChromeVox
  • Don't handle non-app resources in service worker

Docs:

  • Document UI events
  • Update Manifest Parser documentation
  • Clarify track selection callback in offline tutorial
  • Fix jsdoc and markdown formatting of links
  • Add link for Shaka Player Embedded

2.5.0-beta3 (2019-02-20)

New Features:

  • Introduction of Shaka Player UI library! (beta)
    • Load dist/shaka-player.ui.js
    • See tutorial in docs/tutorials/ui.md
  • Add option to disable drift-tolerance feature for certain live streams
  • Upgrade mux.js to the latest (5.1.0)
  • Support HLS playlists without URI in EXT-X-MEDIA
  • Add safeSeekOffset to StreamingConfiguration
  • Add PlayReady license URL parsing (ms:laurl)
  • Add support for HLS tags with both value and attributes

Bugfixes:

  • Fixed various typos in comments and docs
  • Fix CEA timestamps with presentationTimeOffset
  • Fix config-based clock sync for IPR content
  • Fix cast serialization of Uint8Array types
  • Fix event dispatch when text tracks change
  • Don't include video roles in audio-language-role pairs
  • Fix MediaSource failures with certain language settings
  • Fix build paths on Windows

Docs:

  • Update docs to mention ignoreMinBufferTime
  • Document restrictions on large timescales
  • Various small docs improvements

2.4.7 (2019-02-19)

Bugfixes:

  • Reject opus content on Tizen
  • Fix seekable range on HLS content with non-zero start time

2.4.6 (2019-01-22)

Bugfixes:

  • Fix HLS without URI attribute
  • Handle prereleases of npm and node in build scripts
  • Fix windows path handling in build scripts
  • Fix cast receiver errors in getStats
  • Fix spurious teardown exception on smart TVs
  • Loosen gap thresholds on Chromecast
  • Fix support for Safari 12
  • Fix support for relative Location URLs in DASH
  • Fix compliance issues in IE11 EME polyfill
  • Fix PlayReady playback on Tizen
  • Fix chopped playback in MS Edge
  • Fix assertions when EME sessions expire
  • Fix relative URIs in HLS
  • Fix compilation error

New Features:

  • Add extended error code for failed license request

Demo App:

  • Disable offline storage on some assets
  • Update DASH-IF livesim URLs

2.5.0-beta2 (2018-11-09)

Contains everything in v2.4.5, plus...

Bugfixes:

  • Fix Chromecast receiver id in the demo, broken since v2.5.0-beta
  • Fix multi-period playback issues introduced in v2.5.0-beta
  • Fix seekable range with non-zero start
  • Misc Storage and demo fixes
  • Fix support for restriction changes after playback
  • Fix TextEngine buffered range calculations

New Features:

  • Add support for CEA captions in DASH
  • Set server certificate before Store and Delete
  • Allow deferring deleting offline sessions.
  • Added progress events for Fetch plugin.
  • Add config field to ignore manifest minBufferTime #1547
  • Add support for 'individualization-request' messages in EME

Docs:

  • Update Language Normalization Documentation

2.4.5 (2018-11-09)

Bugfixes:

  • Fix erasure of the database with storage.deleteAll()
  • Fix MediaSource tear down race
  • Fix exception when destroying MediaSourceEngine twice
  • Fix gap jumping test failures on IE/Edge/Tizen
  • Fix stalls on Tizen TV
  • Fix display of external subtitles
  • Fix test failures on Safari
  • Fix filtering of HLS audio-only content
  • Preserve bandwidth estimate between loads
  • Retry streaming when we get back online
  • Fix Storage test contamination
  • Fix advanced DRM settings pollution across key systems
  • Fix TextEngine buffered range calculations

New Features:

  • Optimize processXlinks
  • Add support for Python3 in build scripts
  • Allow new Periods to add EME init data
  • Add namespace-aware parsing to TTML parser
  • An external Promise polyfill is no longer required!

Demo App:

  • Show logs prominently in noinput mode
  • Disable uncompiled mode on browsers without async
  • Restore using Enter key to load asset

Docs:

  • Fix tracks sorting in Offline tutorial sample code
  • Add a note about blank receiver IDs
  • Rename 'video' to 'mediaElem' to make it clear that audio elements work, too

Un-Features:

  • Un-ship VTTRegion support, which is currently broken in Chrome and does more harm than good

2.5.0-beta (2018-08-24)

New Features:

Deprecated:

  • Passing a ManifestParser factory to Player.load is deprecated and support will be removed in v3.0. Instead, please register any custom parsers with a MIME type, and pass a MIME type instead. MIME types can also be used to force the selection of any built-in manifest parsers.
  • The |manifestUri| method on Player was changed to |assetUri|. The old method is deprecated and will be removed in v3.0.

2.4.4 (2018-08-23)

Bugfixes:

Docs:

2.4.3 (2018-08-06)

New Features:

Bugfixes:

Demo app:

  • Clarify persistent license error messages

Docs:

  • Update docs for RESTRICTIONS_CANNOT_BE_MET

2.3.10 and 2.4.2 (2018-06-29)

Bugfixes:

Demo App:

  • Fix custom encrypted assets in the demo app

Docs:

2.3.9 and 2.4.1 (2018-06-13)

Bugfixes:

Demo app:

  • Support clearkey license-servers in the demo UI

Misc:

2.4.0 (2018-05-24)

New features:

Broken compatibility:

  • A third-party Promise polyfill is now required for IE 11 support
  • Text parser plugins now take a nullable segmentStart in TextContext. All application-specific text-parsing plugins MUST be updated.
  • Text-parsing plugins that produce region information must do so with the new CueRegion class. Any application-specific text-parsing plugins that produce region information MUST be updated.
  • TextDisplayer plugins that handle region information must do so with the new CueRegion interface. Any application-specific TextDisplayer plugins that handle region information MUST be updated.
  • The API for PresentationTimeline has changed. Manifest parser plugins that use certain PresentationTimeline methods MUST be updated:
    • setAvailabilityStart() was renamed to setUserSeekStart().
    • notifySegments() now takes a reference array and a boolean called isFirstPeriod, instead of a period start time and a reference array.

Deprecated:

  • NetworkingEngine.request() now returns an instance of IAbortableOperation instead of Promise. Applications which make application-level requests SHOULD update to use the new interface.
    • The old interface will be removed in v2.5.
  • Network scheme plugins now return an instance of IAbortableOperation instead of Promise. Application-specific network scheme plugins SHOULD update to the new interface.
    • The old interface will be removed in v2.5.

Demo app:

  • Improve support for custom assets and license servers in demo app URI

Misc:

2.3.8 (2018-05-23)

Bugfixes:

Demo app:

  • Update DASH-IF Big Buck Bunny asset

Docs:

2.3.7 (2018-04-24)

Bugfixes:

Demo app:

2.3.6 (2018-04-11)

Bugfixes:

Demo app:

2.3.5 (2018-03-29)

New features:

Bugfixes:

Demo app:

  • Fixed CSS for display on Chromecast and other TV devices
  • Added "startTime" URL parameter for debugging purposes

2.3.4 (2018-03-22)

New features:

Bugfixes:

Demo app:

Docs:

2.3.3 (2018-03-01)

New features:

Bugfixes:

Docs:

2.3.2 (2018-02-01)

New features:

Bugfixes:

Docs:

2.3.1 (2018-01-22)

New features:

Bugfixes:

Docs:

  • All fixes released in 2.2.10, plus...
  • Fix upgrade guide links

2.2.10 (2018-01-22)

New features:

Bugfixes:

Docs:

2.3.0 (2017-12-22)

New features:

Demo app:

Bugfixes:

Docs:

Broken compatibility:

Deprecated:

  • The AbrManager configuration interfaces and plugin APIs which were deprecated in v2.2 have now been removed. Applications with custom AbrManager implementations MUST be upgraded to the v2.2 API now.
  • The plugin interface for text parsers which was deprecated in v2.1 has now been removed.
  • The remove() method on shaka.offline.Storage now takes a URI instead of a StoredContent instance. Applications which use offline storage SHOULD update to the new API. Support for the old argument will be removed in v2.4.
  • The streaming.infiniteRetriesForLiveStreams config was removed. Applications using this feature MUST use the streaming.failureCallback config and the method player.retryStreaming() instead.

2.2.9 (2017-12-22)

Bugfixes:

2.2.8 (2017-12-06)

Bugfixes:

Demo app:

2.2.7 (2017-11-28)

Bugfixes:

Demo app:

Docs:

2.2.6 (2017-11-14)

Bugfixes:

Demo app:

2.2.5 (2017-11-02)

New features:

Bugfixes:

2.1.9 (2017-11-02)

Bugfixes:

2.2.4 (2017-10-23)

Bugfixes:

Docs:

2.2.3 (2017-10-17)

New features:

Bugfixes:

Demo app:

Docs:

2.2.2 (2017-09-27)

New features:

Bugfixes:

Demo app:

Docs:

2.2.1 (2017-09-01)

New features:

Bugfixes:

Demo app:

Docs:

2.2.0 (2017-08-23)

New features:

Bugfixes:

Demo app:

Docs:

Broken compatibility:

Deprecated:

  • The configuration for a custom ABR manager has changed. Applications with custom AbrManager implementations SHOULD now configure abrFactory instead of abr.manager.
  • The config API for AbrManager has changed. setDefaultEstimate() and setRestrictions() have been replaced with configure(). Applications with custom AbrManager implementations SHOULD implement the new configure() method.
  • The choice API for AbrManager has changed. chooseStreams() has been replaced with chooseVariants(), and the switch callback now takes a variant.
  • The getTracks() and selectTrack() methods which were deprecated in v2.1 have now been removed.

2.1.8 (2017-08-23)

Bugfixes:

2.1.7 (2017-08-14)

Bugfixes:

Docs:

2.1.6 (2017-08-09)

New features:

Bugfixes:

Demo app:

2.1.5 (2017-07-17)

New features:

  • Add more information to video errors in Chrome

Bugfixes:

Demo app:

Docs:

2.1.4 (2017-06-16)

New features:

Bugfixes:

Demo app:

Docs:

2.1.3 (2017-06-06)

New features:

Bugfixes:

2.1.2 (2017-05-23)

New features:

Bugfixes:

Docs:

2.0.9 (2017-05-10)

Backported bugfixes from v2.1.x:

2.1.1 (2017-05-10)

New features:

Bugfixes:

2.1.0 (2017-04-25)

New features:

Bugfixes:

Docs:

Broken Compatibility:

  • Track types 'video' and 'audio' have been combined into 'variant'.
    • Any application looking at track.type will need to be updated.
  • Removed useRelativeCueTimestamps option
  • Plugin interface for text parsers has changed
    • Both old & new interfaces still supported
    • Support for old interface will be removed in v2.2
  • Plugin interface for ManifestParser.start has changed
    • Now takes an object with named parameters instead of positional params
    • Both old & new interfaces still supported
    • Support for old interface will be removed in v2.2
  • Retired the INVALID_TTML error code
    • Folded into the INVALID_XML error code

2.0.8 (2017-04-07)

Bugfixes:

2.0.7 (2017-03-29)

New Features:

  • Improved keyboard navigation in demo page for accessibility
  • Play through small gaps at the start of the timeline
  • Add a method for accessing the HTMLMediaElement from the Player
  • Improved error reporting for HTTP errors

Bugfixes:

2.0.6 (2017-02-24)

New Features:

Bugfixes:

2.0.5 (2017-01-30)

Bugfixes:

2.0.4 (2017-01-24)

New features:

Bugfixes:

Docs:

2.0.3 (2017-01-09)

New features:

Bugfixes:

2.0.2 (2016-12-15)

New features:

Bugfixes:

Docs:

  • Link to error docs from the demo app

2.0.1 (2016-10-26)

New features:

Bugfixes:

Demo app improvements:

Docs:

2.0.0 (2016-09-07)

The first full release of v2!

New features:

Bugfixes:

Planned features we cut:

2.0.0-beta3 (2016-07-29)

Restored Features from v1 Missing in v2.0.0-beta2:

New features:

Bugfixes:

Docs:

Broken Compatibility compared to v2.0.0-beta2:

  • The asynchronous Player.support() has been replaced with the synchronous Player.isBrowserSupported() call
  • AbrManager implementations must now handle a partial StreamSet map in chooseStreams()
  • The wrong keys error has been dropped due to false positives

2.0.0-beta2 (2016-05-04)

Restored Features from v1 Missing in v2.0.0-beta:

New features:

Bugfixes:

Docs:

Broken Compatibility compared to v2.0.0-beta:

  • None!

1.6.5 (2016-04-08)

Bugfixes:

2.0.0-beta (2016-04-07)

New Features:

Bugfixes:

Docs:

  • New tutorials!

Missing Features from v1 (to be added later):

Broken Compatibility:

  • Almost everything! (v2 upgrade guide coming soon)

1.6.4 (2016-03-03)

Bugfixes:

1.6.3 (2016-02-08)

Features:

Bugfixes:

  • Several IE11 stability issues and race conditions fixed
    • Fixed incompatibilities when clearing the SourceBuffer
    • Ignore spurious 'updateend' events
    • Added stack-based messages to all assertions
    • Fixed some unit test compatibility issues
    • Fixed race conditions caused by Promise polyfill
    • https://github.com/google/shaka-player/issues/251

Docs:

  • Update browser support docs with regard to IE & Firefox

Test app fixes:

  • Fixed slider controls for IE11
  • Turned off seek bar tooltips for IE11

1.6.2 (2015-12-14)

Features:

Bugfixes:

1.6.1 (2015-12-07)

Bugfixes:

1.6.0 (2015-11-17)

Features:

Bugfixes:

Test app features:

Broken Compatibility:

1.5.2 (2015-11-12)

A roll-up of recent bugfixes.

Bugfixes:

Test app features:

  • Added a Widevine-encrypted version of the Sintel 4k test asset.

1.5.1 (2015-10-07)

A roll-up of recent bugfixes.

Bugfixes:

1.5.0 (2015-09-17)

Features:

Bugfixes:

Broken Compatibility:

Deprecated:

  • The following methods on Player are deprecated in favor of configure()/getConfiguration() and will be removed in v1.6.0:
  • A new two-argument ContentProtectionCallback has been added to DashVideoSource, and the old style is deprecated and will be removed in v1.6.0.

1.4.2 (2015-09-04)

A roll-up of recent bugfixes.

Bugfixes:

Test app features:

  • Added 'offline' URL param.

1.4.1 (2015-08-18)

A roll-up of recent bugfixes and small improvements.

Bugfixes:

Features:

Testing:

  • Reduced test flakiness overall.
  • Certain (unavoidable) decode errors are now suppressed on Chrome Linux.
  • Added waitUntilBuffered() function to help reduce test flakiness.

1.4.0 (2015-07-06)

Code health release. Major refactoring of streaming logic.

Bugfixes:

Features:

Test app features:

Testing:

Documentation:

1.3.2 (2015-07-06)

A roll-up of recent bugfixes.

Bugfixes:

1.3.1 (2015-05-22)

A roll-up of recent bugfixes and small improvements.

Bugfixes:

Features:

1.3.0 (2015-04-16)

Feature release, introducing live streaming and offline playback.

Bugfixes:

  • Fixed playback and buffering of streams whose index is inaccurate.
  • Fixed EME spec compliance.
  • Fixed FakeEventTarget exception handling.
  • Fixed aggressive dead code stripping by the compiler.
  • Fixed a bug in which subtitles were enabled by default without a subtitle language match.

Features:

  • Added offline playback support.
  • Added offline support for encrypted content (on platforms which support persistent licenses).
  • Added live stream support.
  • Added support for header-based clock synchronization.
  • Added support for inheriting Segment{Base,List,Template} across levels in MPDs.
  • Add polyfill support for fullscreen events.
  • Updated EME usage to the March 12 draft.
  • Added Player.getAdaptationEnabled().
  • Added support for bandwidth restrictions and restrictions not based on license responses.
  • Added support for requireJS and improved support for commonJS.
  • Sped up integration tests and improved test robustness.
  • Bandwidth estimates can now be persisted across playbacks.
  • Custom bandwidth estimator objects can now be injected into the Player.
  • Improved EME v0.1b polyfill consistency with native EME in Chrome.
  • Improved buffering and underflow mechanisms.
  • Improved error reporting if DRM info is missing.
  • Improved robustness in the face of HTTP 404 and 410 errors during segment fetch.
  • Improved documentation for Role tags and multilingual assets.

Test app features:

  • Example player controls in the test app.

Deprecated:

  • The following methods on Player are deprecated. They will be removed in v1.4.0:
    • getCurrentResolution() (replace with video.videoWidth & video.videoHeight)
    • getCurrentTime()/seek() (replace with video.currentTime)
    • getDuration() (replace with video.duration)
    • getMuted()/setMuted() (replace with video.muted)
    • getVolume()/setVolume() (replace with video.volume)
    • play() (replace with video.play)
    • pause() (replace with video.pause)
    • requestFullscreen() (replace with video.requestFullscreen())

Broken compatibility:

  • The license postprocessor callback is no longer given a Restrictions argument. See Player.getRestrictions()/setRestrictions().
  • The suppressMultipleEvents flag has been dropped from DrmSchemeInfo, which changes the constructor signature. This flag interfered with key rotation.

1.2.3 (2015-04-07)

A roll-up of recent bugfixes.

Bugfixes:

Features:

Test app features:

  • Added a new 4k test asset.

1.2.2 (2015-03-11)

Bugfixes:

Features:

1.2.1 (2015-03-10)

A roll-up of recent bugfixes, plus a few minor additions to the test app. Branched from v1.2.0.

Bugfixes:

  • Try to recover from a streaming failure.
  • Ignore spurious error events from the video tag.
  • Update docs WRT content restrictions and folder organization.
  • Fix clearkey errors in Chrome 42+.
  • Fix computation of the number of segments in MpdProcessor.
    • Only affects assets which use SegmentTemplate with a duration attribute.

Test app features:

  • Rename a confusing asset.
  • Add a button to cycle video tracks.
  • Support MPD init data overrides for all DRM schemes.

1.2.0 (2015-02-24)

Lots of internal refactoring and bugfixes, and a few new features.

Bugfixes:

Features:

Broken Compatibility:

  • System IDs in PSSH objects are now hex strings instead of raw strings.

1.1 (2015-01-14)

Maintenance release.

Bugfixes:

Features:

  • Tests are now checked for style.
  • Tests have been expanded to increase coverage and exercise more Player features:
    • playback rate
    • stats
    • language preference
    • license restrictions
    • WebM/VP9
    • error events
  • Integration tests now run much faster.
  • MediaKeys polyfills have received minor updates to improve compatibility with Chrome 41.
  • New sample assets and code in app.js to demonstrate how to use a PSSH from an MPD to override what's in the content itself.

Broken Compatibility:

  • None!

1.0 (2014-12-19)

First public release.

Bugfixes:

  • Text tracks are no longer ignored in MPD manifests.
  • Adaptation decisions are now quicker and more reliable.
    • (This bug was more noticeable on faster internet connections.)
  • Playback no longer gets "stuck" on certain content.
  • Playback no longer gets "stuck" after certain seek patterns.
  • Player get/select/enable methods can now be called without a video source.
  • A <video> tag's "videoWidth"/"videoHeight" attributes now update correctly on Chrome >= 40.
  • Manual adaptation while paused no longer unpauses the video.
  • Credentials can now be used on cross-domain license requests.
  • Range headers are no longer sent for all segment requests.
    • (This fixes issues with IIS.)
  • A missing declaration of getVideoPlaybackQuality() has been added.
  • The compiled code no longer pollutes the global namespace.
  • DASH manifests using <SegmentList> are now parsed correctly.
  • Formatting has been fixed in the "Shaka Player Development" tutorial.

Features:

  • The Player is now reusable. You can call load() multiple times without calling destroy().
  • The JS linter is now included in sources, fixing compatibility issues between versions.
  • The test suite now includes playback integration tests.
  • The Player has been updated to support the 01 Dec 2014 draft of the EME specification.
  • The loader in load.js no longer makes assumptions about app.js. You can now use load.js to bootstrap other applications.
  • The test app now uses less screen real estate.
  • All custom events have been documented, and a new tutorial has been added to demonstrate how they can be used.
  • The Player now has a support-check API to determine if the browser has all necessary features for playback.
  • Sample code in the tutorials is now marked up to highlight changes from the previous sample.
  • Code coverage in unit tests has been increased.
  • Flakiness in unit tests has been reduced.
  • DASH manifests using <SegmentTemplate> without a segment index or segment timeline are now supported.
  • The DASH "presentationTimeOffset" attribute is now supported.

Broken Compatibility:

  • ContentProtectionCallback no longer takes a "mimeType" argument.
  • DrmSchemeInfo constructor no longer takes a "mimeType" argument.
  • DrmSchemeInfo constructor's "initData" argument is now an object with fields instead of a Uint8Array.
  • DrmSchemeInfo now takes a "withCredentials" argument.
  • lib.js has been renamed to shaka-player.compiled.js.

0.1b (2014-11-21)

Private beta release.