# Upgrade guide

SDK documentation available [here](https://psemphtml5player.northeurope.cloudapp.azure.com/app/reference/docs/index.html)

The following files should be replaced:
 - emp-player.min.js
 - css folder content
 - swf folder content
 - emp-player.swf
 - plugins folder content
 - video.js css file and fonts

# Release notes

## 1.73.1

### New features and Enhancements

### Bug fixes
**EMP-10787**  HTML Player: VIDEOJS: TypeError: Cannot read property 'unload' of undefined

## 1.73.0

### New features and Enhancements
**EMP-10713**  HTML Player: By adding this class: *vjs-show-big-play-button-on-pause* to the video element, the big-play-button displays on pause.
                            Without this class big-play-button will never show.
                            Pressing big-play-button or the video will toggle pause/play.
                            Pressing big-play-button or the video after stop or ended, will restart current video.

### Bug fixes
**EMP-10713**  HTML Player - play button does not work after pressing stop

## 1.72.0

### New features and Enhancements
**EMP-10652** Player&Chromecast:  Update shaka to v2.2.6, NPM 2.2.6-2
https://github.com/google/shaka-player/releases

### Bug fixes
**EMP-10654** Shaka 2.2.6 Error if starttime is bigger then duration
**EMP-10710** CC doesn't set a bookmark after 10sec for catch-up content - the aborted event sends offset 0

## 1.71.1

### New features and Enhancements
**EMP-10615** Player: The player needs to use liveTime instead of LastViewedTime for live bookmarking

### Bug fixes
**EMP-10586** Player: Do not send buffering events before playback starts

## 1.71.0

### Bug fixes
**EMP-10607** Player: Current Audio language is not playing on CC when start casting or stop casting

## 1.70.0

### New features and Enhancements
**EMP-10540** Player: Don't disconnect Chromecast when dispose the EMP-Player
**EMP-10566** Player: New method on EMP-Player to disconnect Chromecast
**EMP-10531** Player: Start play from last view point for live streams
**EMP-10536** ChromeCast: Make shutdownWhenLastSenderDisconnect Configurable

### Bug fixes
**EMP-10565** Player: Exception is thrown when call stop() on Chromecast tech
**EMP-10573** Player: Bookmarks for live are ignored for Flash

## 1.69.0

### Bug fixes
**EMP-10431** HTML5 - Send the error to analytics instead of Message: Unknown Error.

## 1.68.4

### Bug fixes
**EMP-10428** Autoplay is not always responsive with Firefox.
**EMP-10420** preventing to send analytics events in cached entitlements
**EMP-10403** selectTextTrack don't work for hls and flash tech.
**EMP-10382** HTML5 player using NativeHLS doesn't send bitrates.
(Limitation: If video tracks have the same RESOLUTION, analytics report the highest bitrate)


### New features and Enhancements
**EMP-10406** Add method selectAudioTrack() to player.
Select bitrate manually for HLS unencrypted and with no subs or no multi audio tracks.
Audio and text tracks behavior are consistent between techs.

## 1.68.3

### New features and Enhancements
Adding video.js css file and fonts to the npm package


## 1.68.0

### Bug fixes
Added missing airplay files to npm package.
**EMP-10314** Player: Error in Offset for HLS/FAIRPLAY

### New features and Enhancements
**EMP-10251** Player: Airplay support in the HTML5 player when using Safari

## 1.67.0

### Bug fixes
**EMP-10220** Player: unnmute is now working for shaka tech
**EMP-10290** Player: StartCasting event is only sent if there is a session id.
**EMP-10221** Reference Player: proper error handling (showing error message).
**EMP-10221** Player: stoping the chromecast playback now stops in the second sender.
**EMP-10294** Player: audio tracks are now being shown on all chromecast senders.
**EMP-10313** Player: Some live streams takes long time to start.
**EMP-10312** Player: HP2 stream stops at rundom, seems like retry is too short in Shaka.

### New features and Enhancements
**EMP-10313** Player: Default liveDelay (20sec) in player has been removed, use suggestedPresentationDelay in mpd config instead.

## 1.66.0
**Note** Not compatible with shaka-player-emp: "2.0.2", It need 2.2.0-4 or later.

### Bug fixes
**EMP-10238** Player: startTimeLive is now a UNIX time and not ISO date string
**EMP-10207** Player: HTML Player does not recover gracefully from network_http_error.
**EMP-10229** Player: HTML Player - Safari: possible cache issue on load asset, wrong value used.

### New features and Enhancements
**EMP-8686** Player: Update Shaka player from v2.0.2 to v2.2.0 https://github.com/google/shaka-player/releases



## 1.65.0
**Note** Only compatible with shaka-player-emp: "2.0.2-28-g1ddf8e3" 
         Cannot be used with later versions of npm-package of shaka-player-emp

### Bug fixes
**EMP-10022** Player: HTML Player fetches all the segments in between (to se if they are available) on scrubbing.


## 1.64.6

### Bug fixes
**EMP-10058** Player: fixed bug with inaccurate setAbsoluteTime
**EMP-10060** Player: fixed bug with from and to parameters not being right when fetching current program -> especially when loading a live stream a second/third... time on the same player object.


## 1.64.1

### Bug fixes
**EMP-10038** Player: 'canPlayEncrypted' bug on Linux was fixed

### New features and Enhancements
**EMP-10034** Reference: adding support for multi-factor authentication
**EMP-9420** Reference: adding support to anonymous login

## 1.64.0

### Bug fixes
**EMP-9898** Reference: log out now send Playback.Aborted to analytics if there is ongoing playback.
**EMP-9886** Player: player does not get stuck anymore if user seeks when it is on a buffering state.
**EMP-9927** Player: fixing DRM error playing Shaka tech in Firefox
**EMP-9913** Player: options now are shared between techs when loading multiple assets
**EMP-9928** Player: taking back chromecast session with flash tech loaded does not crash anymore.
**EMP-9934** Player: fixed contract restrictions bug with chromecast sender

## 1.63.3

### Bug fixes
**EMP-9934** Player: chromecast tech does not need to check for contract restrictions. Restrictions are enforced by the receiver.

## 1.63.2

### New features and Enhancements

### Bug fixes
**EMP-9886** Player: HTML5 player gets unresponsive when stuck in a buffering state (when a segment is not available for instance).
					 For VOD/Catchup, EMP-Player prefetch the segement at the seek point, if the segment is not there, seek is cancel.
                     SEGMENT_MISSING event is raised, that can be used to inform the user that the streams is not ready for seeking yet.

## 1.63.1

### New features and Enhancements
**EMP-5998** Player: adding support to multi-device session shifting - added boolean flag 'useLastViewedOffset' which flags the player if it should play from lastViewedOffset or from the beginning of the stream.
**EMP-9719** Player: api now exposes 'startTimeLive' method that returns start time of the live stream (milliseconds since 1970/01/01)
**EMP-9815** Player: sending live stream ReferenceTime to analytics (time of the beginning of the stream)
**EMP-9868** Player: api now exposes 'getAbsoluteTime' method that returns the currenttime for a live stream as a datetime
**EMP-9876** Player&Chromecast: Start play live stream from absolute datetime (milliseconds since 1970/01/01)
	Dash stream used by Chromecast and HLS live stream used by mobile clients have different startTime and currentTime.
	We have introduced absoluteStartTime options for timeshifted live streams, which is a universal way to set start time in order to enable casting a live stream at a specific start time (timeshifted).  
	IOS and Android Chromecast senders should use this options for timeshifted live streams when casting, othervise the playback will start from the live point and not from the timeshifted position.
	If the startTime is after the live edge, casting will start from live edge and if before the DASH stream startTime (which is dashed on demand), the casting will start from beginning of the stream.
	When taking back session, iOS and Android Chromecast senders can calculate the absoluteStartTime and start playback locally from that point.

### Bug fixes
**EMP-9835** Player: errors coming from chromecast were not being shown on the html5 sender
**EMP-9811** Player: initial subs are now being shown when starting playback on Edge/IE
**EMP-9489** Player: not sending pause event to analytics if the player is not playing
**EMP-9634** Player: if fastforward seek point is bigger than duration, then the hls tech plays the last 5 seconds
**EMP-9867** Player: jump to live if sender tech is not Shaka and jump to live if sender tech is not Shaka when take back the session
**EMP-9738** Player: entitlement restriction is not in sync with restriction in flash object
**EMP-9877** Player: joining session after logout and login is now possible
**EMP-9881** Player: player now enters in an error state if it receives an error message from chromecast
**EMP-9913** Player: changed the logic of how options are handled internally (allowing consistent options when different techs are loaded in the lifetime of a player object)

## 1.63.0

### New features and Enhancements
**EMP-5998** Player: adding support to multi-device session shifting

## 1.62.1

### Bug fixes
**EMP-9819** Chromecast: chromecast reference app now shows the media metadata when in seeking/waiting state
**EMP-9823** Player: switching audio tracks is now working on chromecast

## 1.62.0

### New features and Enhancements
**EMP-9773** Chromecast: setAbsoluteTime method was added
**EMP-9633** Player: passing analyticsConfig properties to analytics if they are returned in the entitlement

### Bug fixes
**EMP-9766** Player: passing startTime properly to chromecast for live streams
**EMP-9747** Player: options.maxBitrate is now working

## 1.61.0

### New features and Enhancements
**EMP-9639** Multiviewer: Add maxBitrate to channel settings
**EMP-9533** Player: Avoid Empty DRM Robustness

### Bug fixes
**EMP-9631** Player: when shaka tech fails to load and flash fallback is triggered, flash analytics are no longer sent in previous shaka session.

## 1.60.1

### Bug fixes
**EMP-9616** Player: changed retryParameters for segments (shaka tech)

## 1.60.0

### New features and Enhancements
**EMP-9557**  Chromecast: statusText is now a chromecast initialization option (e.g. options.statusText = 'My Chromecast App')
**EMP-9537**  Chromecast: emp-player options can be set in emp-receiver-app.js

### Bug fixes
**EMP-9565** Player: HLS tech is now displaying subtitles set in options.
**EMP-8931** Player: casting and clicking on cast icon before the casting starts no longer will interrupt casting.
**EMP-9518** Chromecast: buffering spinner is now being shown when seeking or buffering.
**EMP-9226** Analytics: if connection is lost after 1 minute, analytics are not sent after that.
**EMP-9405** Player: stopping previous playback if an error occurs while loading new media.
**EMP-9484** Analytics: stopping session no longer sends double playback.aborted analytics.
**EMP-9487** Player: if the last connected sender logs out, the playback stops on the receiver.
**EMP-9491** Player: fallback is now working with auto tech on safari.
**EMP-9344** Player: subs/audio controls properly refreshed after new asset load.
**EMP-9541** Player: player disconnects from ongoing chromecast session if player logs out (call dispose() method).

### Notes
Widevine DRM is no longer supported in Chrome v58+ in HTTP (only HTTPS)

## 1.59.0

### New features and Enhancements
**EMP-9360**  Chromecast: EMP Chromecast Receiver is now separated into a library and a reference app. The API and related documentation are available in NPM (package [emp-chromecast-receiver](https://www.npmjs.com/package/emp-chromecast-receiver)). The reference chromecast demo app is available [here](https://github.com/EricssonBroadcastServices/chromecast-demo-receiver). Despite this, EMP ensures backwards compatibility for customers that use the previous chromecast setup. If that is the case for your project, you can build the chromecast demo receiver app and use the javascript artifact (emp-receiver-app.min.js) directly or ask our team to build it for you.
**EMP-9368** Chromecast: custom UI videojs controls can now be passed to empReceiver via options.controls.
**EMP-9468** Player: medialocator rewritten to use URL agnostic scheme.

### Bug fixes
**EMP-9432** Chromecast: empPlayer errors are now being propagated to the senders.
**EMP-9488** Player: removing [object Object] from analytics api call when an error occurs.

## 1.58.2

### Bug fixes
**EMP-9427** Player: ProgramChanged should not be triggered for catchup

## 1.58.1

### Bug fixes
**EMP-9399** Player: HTML Player doesn't work on Samsung Stock Browser

## 1.58.0

### New features and Enhancements
**EMP-9214**  Chromecast: showing resolution of the media being played
**EMP-8895**  Player & Analytics: adding custom analytics option that are sent on Playback.Started event
**EMP-9314**  Chromecast: Stop casting if last sender disconnect
**EMP-9278**  Chromecast: Senders are notified on program changed

### Bug fixes
**EMP-9401** Player: canPlayEncrypted() returns false on Safari / OS X
**EMP-9406** Chromecast: iOS error when casting catchup
**EMP-9225** Chromecast: error not shown when you play an asset several times in a row
**EMP-9229** Chromecast: fixed bug causing subitles not to be shown sometimes
**EMP-9309** Player: shaka tech triggers bitratechanged event when dash adaptation changes
**EMP-9275** SDK: Don't call stop before load an asset (stop is resource and time consuming task), Chromecast: Faster to cast an asset
**EMP-9328** Player: cleaned error message on the console: 'this.el_.duration'
**EMP-9346** Player: race condition fixed in canPlayEncrypted method

## 1.57.0

### New features and Enhancements
**EMP-7438** Player: playback DRM support in browsers
**EMP-9096** Player: timeshift functionality for HLS tech
Limitation for timeshift with HLS
You can perform a 30 second rewind, but there is no way to navigate to the beginning of the media, the 'seekable' window is 30 second.
Set video.currentime always jump within the 'seekable' window (30 sec).
Pause working, continue at pause position.
Jump to live point working.


### Bug fixes
**EMP-8909** Player: saving assetId from last media sent to chromecast

## 1.56.0

### New features and Enhancements
**EMP-8877** Player: enforce timeshift restrictions set by the backend
**EMP-6303** Player: pause button is replaced by stop button if timeshift is disabled
**EMP-8887** Player: if timeshift is disabled by the backend, the user is cannot enable it

### Bug fixes
**EMP-9035** Player: FF, RW and SEEK functionalities on dynamic live
**EMP-9041** Player: fixed flash fallback in Safari
**EMP-8858** Player: fixed some controls that were not working when startTime > 0
**EMP-8859** Player: fixed flash tech bug regarding startTime and bookmarks
**EMP-9048** Player: removed NPObject video.js error
**EMP-9043** Player: trackDuration is not a function console error removed
**EMP-9082** Player: removed console error in safari shaka (evaluating program.programId when loading live)

## 1.55.0

### New features and Enhancements
**EMP-8698** Player: Refactoring session management for chromecast session with multi-senders

### Bug fixes
**EMP-7550** Player: if an exception occurs when loading tech, check next tech instead of giving up
**EMP-8204** Player: ProgramService is properly cleaned up after media playback
**EMP-8925** Player: The playback does not stop if the program is "black out:ed" in Flash
**EMP-8819** Chromecast: onStop event in the receiver now completely stops playback session

## 1.54.0

### New features and Enhancements
**EMP-8618** Player: chromecast sender now sends image, title and subtitle
**EMP-6024** Player: sending startTime as flashvar
**EMP-8626** Player: disconnect from the receiver app and stop it from running if idle for 5 minutes
**EMP-7327** Player: startTime option should be handled by the techs
**EMP-6024** Player: implement a startPlayer(int position) API in flash-player
**EMP-8618** Player: html5 sender: send metadata when casting asset: title, subtitle and image
**EMP-8630** Player: If timeShift is disabled, the user should not be able to pause the live stream
**EMP-8751** CC: Support for multi audio and subs with multi period streams (Ads) with Chromecast

### Bug fixes
**EMP-8625** CC: Sender should not send pause and play after video has ended.
**EMP-8689** Player: instead of picture freeze, now playback stops when license expires
**EMP-8624** Player: fixed endless loop of tracksupdated notifications
**EMP-8689** Player: The playback does not stopp for black-out program - error message is shown but the playback continues
**EMP-8624** CC: Chromecast go into a endless loop of tracksupdated.
**EMP-8699** CC: Look over message names for Chromecast
**EMP-8752** CC: Remove too many duration-changed message broadcast from CC receiver


## 1.53.0

### New features and Enhancements
**EMP-8557** Player: Handle MovieMediaMetadata on chromecast receiver that enables custom thumbnail for media
**EMP-8126** Player: Play VoD with multi audio using HLS/Fairplay media in the HTML5 player

### Bug fixes
**EMP-8445** Player: Fairplay error - invalid media rights after the playback has finished
**EMP-8438** Analytics: Safari - Double analytics pb.PlayerReady/Started
**EMP-8568** Player: High prio clips bugfix after upgrading Shaka
**EMP-7460** Player: Shaka tech canplay event triggered twice
**EMP-8591** Player: Chromecast sender does not switch from live to vod timeline

## 1.52.0

### Bug fixes
**EMP-7899** Casting takes long time to start and it plays on sender before casting
**EMP-7987** setAbsoluteTime(Date) method added to the HTML5 player
**EMP-8330** Recoverable error when playing several assets on chromecast
**EMP-8271** Cannot read property 'vdata1482315557759' of null
**EMP-8009** When casting, subtitle off always highlighted in sender subs menu
**EMP-8388** Null check missing for start time - causing problems for playback
**EMP-8389** Start over button missing in the ref player in Shaka
**EMP-8254** IE/EDGE Loading spinner (shaka tech) stays after scrubbing

### New features and Enhancements
**EMP-8389** MDN integration
**EMP-7873** HTML5 HLS Fairplay playback for VOD

### Limitations
- MDN integration is not supported for Flash playing media with subs

## 1.50.0

### Bug fixes
- **EMP-7916** Better support for text tracks on shaka and chromecast techs
- **EMP-7691** Big 'play' button in the center of the player is now disabled before the asset is loaded
- **EMP-7980** Default timeshifDisabled value is now 'true'
- **EMP-8008** Heartbeats are no longer being sent to analytics after stopCasting
- **EMP-8034** Some analytics' issues on IE11 solved

## 1.49.1

### Bug fixes
- **EMP-7975** Triggering SEEKED event in some cases that it is not coming from the flash player

### Limitations
- Contract restrictions do not apply to HLS Unencrypted media because the native player does not enforce the restrictions

## 1.49.0

### New features and Enhancements
- **EMP-7713** Analytics plugin removed and replaced by standalone EMPAnalytics component
- **EMP-6643** Analytics are being sent on browser close (if ongoing playback)
- **EMP-7311** Send tech version (Flash, Shaka, Chromecast) in Playback.PlayReady analytics
- **EMP-7784** Removed query string from analytics media locator
- **EMP-7746** Contract restrictions: disable fast forward
- **EMP-7805** Playback.StartCasting event was added
- **EMP-7748** Contract restrictions: enforce playback minimum bitrate
- **EMP-7747** Contract restrictions: fast rewind and fast forward
- **EMP-7745** Contract restrictions: enforce maximum resolution (height)
- **EMP-7744** Contract restrictions: enforce maximum bitrate
- **EMP-5884** Playback.BufferingEnded analytics event added

### Bug fixes
- **EMP-7780** Removed multiple analytics events when scrubbing
- **EMP-7781** Autoplay is now set correctly in Playback.Created event
- **EMP-7786** Heartbeat analytics event is now Playback.Heartbeat
- **EMP-7787** Pending analytics events are not being kept more than 3 seconds anymore
- **EMP-7806** Playback.HandshakeStarted event now includes assetId and programId
- **EMP-7809** Playback.Completed event now always present when the stream ends
- **EMP-7810** Multiple asset loads do not send redundant analytics events anymore
- **EMP-7807** Unix time offset replaced by relative offset on analytics' live streams
- **EMP-7782** Playback.BitrateChanged now sends correct bitrate

## 1.48.0

### Bug fixes

- **EMP-7545** Update volume when joining chromecast session
- **EMP-7595** Fix audio tracks switching on chromecast player taking 30 sec
- **EMP-7721** Showing an error message on the player when an exception is raised on asset load

### Documentation
- Adding tutorial on ad-markers styling in the timeline

## 1.47.0
- **EMP-7462** Player: adding 'auto' to techOrder modes that explicitly loads all available techs (e.g. options.techOrder = 'auto')
- **EMP-7448** Player: disable fast forward/rewind during ad playback
- **EMP-7445** Reference: loading html5 player even if preference api call fails
- **EMP-7469** Reference: updating env login combo box with cookie environment variable
- **EMP-7276** Reference: persistent log in session in reference player
- **EMP-7335** Player: chromecast session autio join with updated audio and subtitle tracks
- **EMP-7317** Player: move chromecast playback logic out of the chromecast ui button -> it can be easily customized now
- **EMP-5538** Player: receiving VOLUME_CHANGE event from the receiver
- **EMP-6470** Player: play ads when scrubbing forward
- **EMP-6468** Player: display a timeline with the duration of the main asset
- **EMP-6469** Player: option to display ad markers in the timeline
- **EMP-7105** Player: adding swf with vast proxy callback

## 1.46.0
- **EMP-7130** Player: fix "program method not defined" for EmpShaka playback technology
- **EMP-7254** Player: remove DASH.js from HTML5 player
- **EMP-7159** Player: restart button not working when chromecast displaying
- **EMP-6889** Flash: disable debug logging option

## 1.45.0
- **EMP-7162** Shaka: Installed missing polyfill causing error on Safari
- **EMP-7157** Flash: Fixed an issue where the user wasn't notified if an error occured during flash playback
- **EMP-7160** Reference: Analytics improvements for reference player
- **EMP-6585** Reference: Removed dash references from reference player
- **EMP-7131** Reference: Improved bitrate reporting
- **EMP-6997** Analytics: Fixed an issue causing reports from a single session to be divided under many
- **EMP-7114** Chromecast: No longer cast new media
- **EMP-5800** Player: Added simple startTime support

## 1.44.1
- **EMP-6781** Player: add a PROGRAM_CHANGED event
- **EMP-5136** Player: add a getProgram() method that returns the current program playing in a live stream

## 1.44.0
- **EMP-7005** Flash: Fixed an issue when re-loading an asset the play button woudn't re-appear
- **EMP-6999** Reference: Fixed an issue with certain options not responding to updates
- **EMP-7000** Shaka: Fixed an issue causing subtitle duplication on replay
- **EMP-6913** Shaka: Fixed an issue that could cause 404s after playing a livestream for a long time
- **EMP-6920** Shaka: Updated to 2.0.0
- **EMP-6842** Shaka: Fixed a playback issue with Edge and IE on DRM protected content. Re-enabled them.
- **EMP-6893** Shaka: Clock sync URI is now set in shaka preventing live stream issues
- **EMP-6648** Chromecast: Fixed live state and timeshifting when casting to chromecast
- **EMP-6832** Shaka: Fixed an issue causing an exception when replaying a video
- **EMP-6971** Player: timesShiftEnabled is now readable from the player
- **EMP-6508** Reference: Player is now loaded immediatly after login
- **EMP-6887** Reference: SW_SECURE_CRYPTO robustness level is now exposed
- **EMP-6892** Reference: Users are now logged out when the session expires. Instead of polling for expiration.

## 1.43.0

### New features and Enhancements
 - **EMP-6778** Flash: Flash library was upgraded to 2.10
 - **EMP-6780** Flash: Allow changing Flash subtitles font type and background opacity
 - **EMP-6661** Fallback to flash when shaka receives an error with category 3
 - **EMP-5536** Chromecast: Chromecast: Set and change volume of receiver according to guidelines
 - **EMP-6831** Force Flash playback on IE11 / Edge (temporary)

### Bug fixes
 - **EMP-6636** IE11 / Windows7 fallback to Flash
 - **EMP-6583** Chromecast: do not autoplay if option is not checked
 - **EMP-6466** Chromecast: Fix subtitles font size
 - **EMP-5727** Chromecast: Prevent too many concurrent switch stream calls coming into the Receiver's onload method
 - **EMP-6640** Load triggers playback in Safari even though the Autoplay is not chosen
 - **EMP-6743** Analytics: Flash sending incorrect bitrate value
 - **EMP-6824** Shaka is showing a default text track when no tracks are available

## 1.42.3

### Bug fixes
 - **EMP-6505** Fixed an issue that caused entitlement expiration check to check on the old program

## 1.42.2

### Bug fixes
 - Fixed an issue where index.html was looking for the uncompressed javascript source

## 1.42.1

### New features and Enhancements
 - **EMP-6671** Updated Shaka player library

### Bug fixes
 - **EMP-6505** Fixed an issue when the entitlement expiration date was invalid

## 1.42.0

### New features and Enhancements
 - **EMP-5541** Chromecast: Support for remote control, (pause/play etc.)
 - **EMP-5535** Chromecast: Support for scrubbing VOD
 - **EMP-5544** Chromecast: Implemented analytics
 - **EMP-5545** Chromecast: The app is closed after a certain time when idle to prevent screenburn
 - **EMP-6504** EntitlementEngine base class is now exposed
 - **EMP-6621** Dash live returns a UTC time
 - **EMP-6505** Implemented license expiration for live streams

### Bug fixes
 - **EMP-6292** Chromecast: Controls for CC are not available when casting
 - **EMP-6293** Chromecast: Different audio track is used when casting
 - **EMP-6583** Chromecast: Shouldn't autoplay
 - **EMP-6584** Chromecast: Timeline is not displayed when loading a new VOD asset
 - **EMP-6590** Chromecast: Button throws Cannot read property 'length' of undefined
 - **EMP-6617** Chromecast: Duration not displayed when loading a new VOD asset
 - **EMP-6380** Analytics: SessionId seems to mix up
 - **EMP-6591** Analytics: Error event not sending attributes
 - **EMP-6654** Analytics: HandshakeStarted is missing AssetId & ProgramId
 - **EMP-6555** Seekbar is now hidden when video ends
 - **EMP-6487** Can not play an asset in Safari on Auto
 - **EMP-6242** Error related to touch in windows and windows phone
 - **EMP-5138** Remove _ from player internal event names to keep it consistent
 - **EMP-6338** The reference player does not display the correct technology used
 - **EMP-6574** Wrong exposure URL in reference app when logging out and in
 - **EMP-6479** Wrong player error displayed

## 1.41.1

### New features and Enhancements
 - **EMP-6598** Security: fix a possible XSS attack in swf player
 - **EMP-6072** Add an option to display current time instead of a countdown
 - **EMP-6570** Use wallclock time to seek into a live stream when using Dash

### Bug fixes
 - **EMP-6509** Chromecast: live playback is not working
 - **EMP-6427** Replay button was missing when playing Dash
 - **EMP-6290** Chromecast: playback was starting from the begining of the asset instead of keeping current position
 - **EMP-6382** Fullscreen issue with Firefox
 - **EMP-6441** Chromecast: loader icon remains on screen
 - **EMP-6383** Subtitle menu multiplies at replay
 - **EMP-6501** Chromecast: playback does not end and stays in buffering

## 1.41.0

### New features and Enhancements
 - **EMP-6160** Shaka player improvements
 - **EMP-6209** Analytics: Playback.Created add player version
 - **EMP-6210** Analytics: No need to send Playback.PlayerReady directly after ScrubbedTo
 - **EMP-6211** Analytics: Stop heartbeats after completed event

### Bug fixes
 - **EMP-6337** Spinner icon remains on video when clicking "LIVE" button twice
 - **EMP-5070** DASH playback does not shut down after video is finished
 - **EMP-6387** Fallback to Flash doesn't seen to work in Firefox

# Limitations
 - Autoplay is disabled on mobile web: iOS (for all devices, including iPad) and android has disabled autoplay in versions 4.1+
