Accurate Player - Release Notes

Here you can find release notes regarding the Accurate Player. Each release note will tell you highlights in each version, what's new and what's been fixed.

8.0.1

Released 2023-01-23
Highlights
  • Fixed bug in Probe-package
Release notes

Fixes

  • Probe: Fixed issue in getMediaInfo for crash when reading 64-bit mdat box size.

8.0.0

Released 2023-01-17
Highlights
  • Breaking change that only affects the CutlistPlayer
Release notes

Features

  • SccSubtitlePlugin: Added an optional option to the SccSubtitlePluginSettings where you can state to which parent element you want to append the cue style tags.

Fixes

  • Play/Pause state of the player no longer mismatch when the play() request fails
  • ChannelControlPlugin: fixed getMonoMixFloatFrequencyData to work in Chrome and Safari. The issue was that Chrome and Safari only returned data from what seems to be one channel (Chrome returned data from channel 0 and Safari channel 1) instead of all channels.
    • A workaround was added that combines data extracted from the individual channels instead.
  • SubtitlePlugin: Subtitles were duplicated on firefox
  • VttSubtitlePlugin/ImscSubtitlePlugin/SccSubtitlePlugin: improved subtitle source detection to not mistakenly assume the "src" property is a SubtitleSource.
  • getMediaInfo: Decreased memory consumption when reading audio tracks

Breaking

  • Moved Cut, CutlistPlayerEventName, CutChangedEvent, PreviewChangedEvent from @accurate-player/accurate-player-cutlist to @accurate-player/accurate-player-core

7.3.3

Released 2023-01-23
Highlights
  • Minor bugfixes related to Probe and DiscreteAudioPlugin
Release notes

Fixes

  • DiscreteAudioPlugin: Allow updating src on audio tracks.
  • Probe: Fixed issue in getMediaInfo for crash when reading 64-bit mdat box size.
  • Probe: Decreased memory consumption when reading audio tracks.

7.3.0

Released 2022-11-08
Highlights
  • Added support for playing SCC subtitles.
  • Subtitles can now be extracted from MP4 files just like audio.
Release notes

Features

  • DiscreteAudioPlugin: Added api isMaxLimitReached and isEnablePossible(id: string)
  • mse:
    • Added track title block list option to filter out bad names
    • TrackExtractor.getTracks now returns VttSubtitle- (VttSubtitlePlugin), TTMLFileReference- (ImscSubtitlePlugin) and SccSubtitle (SccSubtitlePlugin) objects that can be loaded directly in the respective plugins.
  • probe: Extend getMediaInfo with subtitleTrackCount, indicating the number of muxed subtitle tracks in the file
  • Subtitle plugins: Added support to load subtitles asynchronous by supplying a SubtitleSource object as "src"
  • SccSubtitlePlugin: Added new plugin that can be used to load SCC subtitles

Fixes

  • AP Controls: Controls now shows controls for all subtitles, even when imsc subtitles are loaded
  • ImscSubtitlePlugin: Improved error handling for parse errors
  • ProgressivePlayer: Fixed bug in getCurrentTime resulted in frameOffset not being applied.
  • TrackExtractor
    • Fixed issue that caused track to get stuck in loading state when seeking near the end
    • Fixed bug in Safari that caused audio to disappear when seeking in the video
  • SubtitlePlugin: The plugin now uses <track> elements instead of .addTextTrack to avoid a Chrome bug that caused subtitles to show even though they were disabled
  • VttSubtitlePlugin: Fixed issue where vtt subtitle plugin interfered with track elements not created by the plugin itself

7.2.0

Released 2022-09-13
Highlights
  • Added support for playing multiple muxed audio tracks within a MP4 file.
Release notes

Features

  • DiscreteAudioPlugin: Added track configuration option enabledCountExempt. When activated the track is not omitted by the maxEnabledTracks setting.
  • DiscreteAudioPlugin: Add setting for controlling preload attribute for created audio elements.
  • Probe: getMediaInfo now also extracts audioTrackCount from the video container.
  • TrackExtractor: New tool that can be used to play multi-track mp4.
  • VttSubtitlePlugin: VTT subtitles now support id, used to identify subtitles when toggling.

Fixes

  • SegmentPlayer: Seeking to last frame now works
  • Controls: Make sure player is set before allowing controls to toggle play

7.1.3

Released 2022-06-28
Highlights
  • IMSC bug fix
Release notes

Fixes

  • ImscSubtitlePlugin: IMSC no longer crashes when the TT node exists in a custom namespace.

7.1.2

Released 2022-06-23
Highlights
  • Fixed build issues
Release notes

Fixes

  • Controls: polymer version locked to 3.4.x to avoid issues with builds on vue2 and angular

7.1.1

Released 2022-05-25
Highlights
  • Abr installation bugfix
Release notes

Fixes

  • Bug where AbrPlayer failed to install on certain projects.

7.1.0

Released 2022-05-24
Highlights
  • ChannelControlPlugin API updates
Release notes

Features

  • ChannelControlPlugin: Added getChannelMaxRMSdB and getTrackMaxRMSdB api methods to replace getMaxRMSdB (deprecated) and getGlobalMaxRMSdB (deprecated).

    The main difference being that the new methods returns the waveform data in addition to the dBFS values:
    const { dBFS, floatTimeDomainData } = await getChannelMaxRMSdB(idOrSrc, duration);
    // The floatTimeDomainData is an array of the waveform data used to calculate the dBFS values.


    Another difference is that getGlobalMaxRMSdB returns the total dBFS for all audio tracks, but the method replacing it: getTrackMaxRMSdB, returns the dBFS for each track instead.

    If you want the total dBFS value for all tracks (like getGlobalMaxRMSdB) you are advised to use the utility function combineDecibelLevels instead:

    const { dBFS } = await getTrackMaxRMSdB(duration);
    const totalDBFS = combineDecibelLevels(dBFS):

  • All players: Added player setting playbackRates that can be used to specify a list of available playback rates.
  • SmoothTimeUpdatePlugin: Added setting to force the use of requestAnimationFrame instead of requestVideoFrameCallback. This is of use if you play an audio-only file for example, as requestVideoFrameCallback wont fire if no video is rendered.
  • ChannelControlPlugin: Exposed the sample rate of the audio context in getAudioContextSampleRate

Fixes

  • Controls: Manually changing drop frame now reflects in current time display
  • AudioScrubPlugin: Fixed issue which caused AudioScrubPlugin to not cleanup audio elements when loading new files.

7.0.1

Released 2022-04-27
Highlights
  • Subtitle plugin fix
Release notes

Fixes

  • Bug where incorrect subtitle track could be selected using SubtitlePlugin

7.0.0

Released 2022-03-29
Highlights
  • Major version due to minor API change
Release notes

Breaking

  • Changed method signature for updateSrc(videoFile: VideoFile) to updateSrc(src: string, fileId: string) for the updateSrc property in VideoFile and DiscreteAudioTrack objects.

Features

  • Added support for SubtitlePlugin in the overlay controls, <apc-controls>
  • Added channelInterpretation property to VideoFile and DiscreteAudioTrack. It describes how input channels are mapped to output channels when the number of inputs/outputs is different. Read more here.
  • Added new player event UserSeek that is triggered just before a seek starts
  • Added support for parsing display aspect ratio from video files in getMediaInfo()

6.2.0

Released 2022-01-25
Highlights
  • Minor improvements
Release notes

Packages

@accurate-player/accurate-player-abr

@accurate-player/accurate-player-controls

@accurate-player/accurate-player-core

@accurate-player/accurate-player-cutlist

@accurate-player/accurate-player-hls

@accurate-player/accurate-player-plugins

@accurate-player/accurate-player-progressive

@accurate-player/probe

Features

  • Added aspect ratio utilities to core, along with aspect ratio data in the VideoFile object
  • defaultChannelRouter method is now exported from the core library. This method returns the default route map of the used by the ChannelControlPlugin.
  • Plugin settings are now exposed as readonly to make it easier to read default settings
  • ChannelControlPlugin: Added methods setGain and getGain to get or set a specific gain of a channel.
  • DiscreteAudioPlugin: Added function isAudioTrackActive.

Fixes

  • DiscreteAudioPlugin
    • trackCount is now correctly calculated from the count of active audio tracks.
    • Enable/Disable track does no longer emit events if enabling/disabling already enabled/disabled tracks.
    • Fixed cleanup of native elements.
  • getMediaInfo: fixed videoStartOffset error caused by double edit list entries in mp4.
  • SmoothTimeUpdatePlugin now works when CutlistPlayer switch video elements.

6.1.0

Released 2021-11-23
Highlights
  • Improved audio analysis tools
Release notes

Packages

@accurate-player/accurate-player-abr

@accurate-player/accurate-player-controls

@accurate-player/accurate-player-core

@accurate-player/accurate-player-cutlist

@accurate-player/accurate-player-hls

@accurate-player/accurate-player-plugins

@accurate-player/accurate-player-progressive

@accurate-player/probe

Features

  • ChannelControlPlugin: Added "mono mix" support. This adds the possibility to get waveform data per track and and a global dB value for all tracks combined. Previously waveform data was only available per channel on each track.
  • ChannelControlPlugin:
    • Added api method resetChannelRouting which resets channel routing for all tracks.
    • Added api method routingHasChanged for checking if the routing is changed from the default one.
  • CutlistPlayer:
    • Improved error handling to allow updating the currently loaded url . This is useful for refreshing an expired presigned url.
    • Added support for videoStartOffset for the loaded videofile.
  • getMediaInfo: Added support for fragmented mp4

Fixes

  • SmoothTimeUpdatePlugin: Fixed bug causing the TimeUpdate event to be triggered on seek for all frames between the current frame and the seek target.

6.0.1

Released 2021-10-19
Highlights
  • ProgressivePlayer: Fixed bug which caused the player to unload proxies when switching proxy
Release notes

Packages

@accurate-player/accurate-player-abr

@accurate-player/accurate-player-controls

@accurate-player/accurate-player-core

@accurate-player/accurate-player-cutlist

@accurate-player/accurate-player-hls

@accurate-player/accurate-player-plugins

@accurate-player/accurate-player-progressive

@accurate-player/probe

Fixes

  • ProgressivePlayer: Fixed bug which caused the player to unload proxies when switching proxy

6.0.0

Released 2021-09-28
Highlights
  • Breaking: Minor API change in HlsPlayer due to updated dependencies
Release notes

Packages

@accurate-player/accurate-player-abr

@accurate-player/accurate-player-controls

@accurate-player/accurate-player-core

@accurate-player/accurate-player-cutlist

@accurate-player/accurate-player-hls

@accurate-player/accurate-player-plugins

@accurate-player/accurate-player-progressive

@accurate-player/probe

Features

  • HlsPlayer: Exposed hls.js config object in player settings to let the user fine tune hls.js parameters.
  • HlsPlayer: Updated hls.js dependency to 1.0.9 (previously 0.14.17)

Fixes

  • CutlistPlayer: Increased allowed duration of black cuts to 1 hour.
  • CutlistPlayer and ProgressivePlayer: The player would sometimes stop working in Firefox because the network requests for the video would be blocked. This is now fixed by properly releasing network resources when the player is destroyed.
  • SmoothTimeUpdatePlugin: Now emits an event correctly for each frame.

Breaking

  • HlsPlayer: Removed loadUrl API, use loadVideoFile instead.