Google Cast SDK Release Notes

For each new version of Google Cast that is released, the changes are described below and the API references are updated. For changes to the Design Checklist, see its changelog.

August 3, 2020

iOS sender 4.4.8

July 29, 2020

Android Sender 19.0.0 and Android TV Receiver 17.0.0

July 13, 2020

CAF Receiver

  • Improved media category detection for the default UI (video vs audio).
  • Added support for live absolute time from Shaka Player.
  • Fixed an issue with audio glitches on Nest Hub Max devices.
  • Upgraded Shaka Player to 2.5.12.

May 4, 2020

CAF Receiver

  • Timeout values for Google Assistant commands are now configurable.
  • Detailed MPL error codes are now exposed in error events.
  • Supported media commands can now be enforced by using the enforceSupportedCommands flag.
  • Fixed the supported commands reported during a break in playback.
  • Fixed an issue with an Assistant shuffle load request.
  • Fixed a bug in getStats values.

March 12, 2020

CAF Receiver

  • Added new device capability IS_CBCS_SUPPORTED to deviceCapabilities.
  • Upgraded Shaka Player to 2.5.8.

February 27, 2020

iOS Sender v4.4.7

  • Fixed the physical volume buttons for apps that don't use any UI components from the SDK.
  • Fixed an issue with the currentTime label in the expanded controller when pressing the forward or backward buttons repeatedly.
  • Media items in GCKMediaQueue are persisted after the app moves to the background.
  • UI customization updates:
    • The progress bar of the mini controller is now customizable.
    • The background color of the navigation bar and toolbar of the Cast dialog is now customizable.
    • Fixed UI issues specific to iPhone X.
  • Fixed a few issues causing stalls and crashes.

February 24, 2020

Android Sender 18.1.0

January 22, 2020

CAF Receiver

  • Fixed an issue where multiple media statuses are broadcast when changing supported commands.

Receiver v2

  • Improve bitrate selection for VAST Ads.


January 7, 2020

CAF Receiver

  • Added support for ID3 timed metadata in Additionally, EmsgEvent is now dispatched for HLS/CMAF content.
  • Fixed an issue where player data was missing during PLAYER_LOAD_COMPLETE when transitioning to a new media session.
  • Fixed an issue where the media icon was overlapping the break clip number and countdown.
  • Fixed issue where the countdown of the first break clip would always display 0:00.
  • Upgraded Shaka Player to 2.5.6.

Receiver v2

  • Added new device capability IS_DEVICE_REGISTERED to deviceCapabilities. If set, the Cast device is registered in the Cast Developer Console for debugging.
  • Fixed a stalling load issue.
  • Individual media error messages are now sent for every failed item in the queue.


  • Fixed an issue with live streams where audio would continue to play for some time after a stop message was received.
  • Fixed an issue where video compression artifacts would show during quality level changes.
  • Fixed an issue where HLS streams using *.m4s segments were failing.

December 5, 2019

Android Sender 18.0.0

  • Added setMediaSessionEnabled for developers to enable and disable a media session created by Cast SDK.
  • Changed how media notifications show during a Cast session. If media notification is enabled, it will always show during a cast session. Previously, it would only show when the app was in the background.
  • Changed some media-related classes to implement a Parcelable interface.

November 11, 2019

iOS Sender v4.4.6

  • Fixed an issue related to the minimum supported version of iOS 9.

October 7, 2019

CAF Receiver

  • Exposed tracks roles as part of tracks metadata.
  • Upgraded Shaka Player version to 2.5.5.

September 23, 2019

iOS Sender v4.4.5

  • Improved support for Cast device discovery and session management.
  • Added new media commands to GCKMediaStatus.
  • Added whenSkippable property to GCKAdBreakStatus.
  • UI fixes for Ads and iOS 13.

September 11, 2019

Android Sender 17.1.0

September 9, 2019

CAF Receiver

  • TV_SHOW metadata type now has a "Playing Next" preview in the default player if the next item is preloaded.
  • Added the ContentRating class to the cast.framework.messages namespace.
  • Updated the default UI audio title so that metadata.artist takes precedence over metadata.albumArtist.
  • Added support for negative startTime values to indicate start time relative to content end or live edge.
  • Media Browse:
    • Media Browse drawer is now automatically hidden after 30 seconds of user inactivity.
    • Added Play/Pause button and media item thumbnail to the top right corner of the Media Browse overlay.
    • Updated Media Browse list behavior. Now horizonal scroll is reset to the initial left-most position every time Media Browse content is set.
  • Bug Fixes:
    • Delayed resolving BasePlayer end promise to allow media element event to be fired.
    • Handled load error for Ad preloading.
    • Watermark is now displayed with the rest of the metadata.
    • Default audio UI on Chromecast respects .progressBar styles.
    • Eliminated splashing of an IDLE screen before LOADING and between playing of subsequent media items.
    • Fixed seek stall for Dash content.

Receiver v2

  • Added the ContentRating class to the namespace.
  • Fixed a bug where error data propagated incorrectly when there were multiple items in queue.

Media Player Library

  • Added HLS #EXT-X-MEDIA attributes to the API.
  • Bug Fixes:
    • Fixed an issue with failed SourceBuffer remove() operations causing audio track switching to crash playback.
    • Fixed a parsing issue when a packed audio format type was specified (for example, *.ec3) but MPEG-4 based segments are used (for example, *.mp4, *.mp4a, and so on).
    • Fixed an HLS issue where inband CEA608 captions were displayed with noticeable latency.
    • Fixed HLS and Smooth content with no audio failing to load.

August 27, 2019

CAF Web Sender

  • Web Sender now uses the new Custom Elements v1 syntax. This version replaces v0, which has been deprecated.
  • Fixed changed events for breakTime, breakClipTime, and liveSeekableRange, using new the getEstimatedBreakTime, getEstimatedBreakClipTime, and getLiveSeekableRange functions added to Chrome M77.

August 12, 2019

iOS Sender v4.4.4

  • Improved experience on iOS 13.
  • Improved support for Cast device discovery.

July 30, 2019

CAF Receiver

  • Upgraded Shaka Player version to 2.5.1.
  • Fixed issue where metadata overlay disappeared too quickly during content loading.
  • Fixed handling of rejection in load interceptor to clear load state.
  • Updated setBrowseContent to be nullable.
  • Fixed issue where reported current time was incorrect when seeking over Ad breaks.
  • Added support for ignoreTtmlPositionInfo to ignore TTML captions positioning.
  • Improved support for handling of load errors:
    • Avoided firing multiple MediaFinishedEvents.
    • Triggered media manager error callback to clear player on load error.

July 22, 2019

iOS Sender v4.4.3

  • Improved support for handling of load errors by providing an error_reason.
  • Released a version of the SDK without Guest Mode.

June 17, 2019

Android Sender 17.0.0

  • The latest SDK switches from Android Support Libraries to Jetpack (AndroidX) Libraries. Libraries will not work unless you make the following changes in your app:
    • Upgrade to v3.2.1 or later.
    • Upgrade compileSdkVersion to 28 or later.
    • Update your app to use Jetpack (AndroidX). Follow the instructions in Migrating to AndroidX.
  • For more information see the Google APIs for Android Release Notes.

June 10, 2019

CAF Receiver

  • Introduced support for Media Browse, a new feature for discovering content on smart displays.
  • Added localization in the default UI for 9 new locales:
    • Danish
    • English (UK)
    • English (India)
    • English (Singapore)
    • French (Canada)
    • Italian
    • Norwegian
    • Dutch
    • Swedish
  • Removed rounded corners from album art for the remote UI.
  • Bug fixes for Live and other areas.

iOS Sender v4.4.2

  • Guest Mode
    • Added support for the "Enable Guest Mode" option from the Cast Developer Console.
    • Fixed a Guest Mode session management issue.
  • Bug Fixes
    • Fixed a localization issue introduced in v4.4.1.

April 24, 2019

iOS Sender v4.4.1

  • Introduced alpha support for live streams. For details, see the developer guide.
    • Added new data structures and attributes for live stream status.
    • Added new GCKMediaMetadata keys.
    • Added Live stream media commands:
      • [GCKRemoteMediaClient loadMediaWithLoadRequestData:]
      • [GCKRemoteMediaClient seekWithOptions:]
    • Improved expanded controller UI to support live streams:
      • Changed the layout and appearance of the expanded controller.
  • Bug Fixes
    • Fixed GCKUICastContainerViewController's bottom on iPhone X.
    • Fixed reconnection issue when the OS is performing extensive network activities.
    • Fixed crash in accessibility label initialization with GCKUICastButton.

April 23, 2019

CAF Receiver

  • Introduced alpha support for live streams. For details, see the developer guide.
    • Updated UI to support live streams including live indicator.
  • Added mediaCategory field to media status to indicate if a media is a video, audio, or a photo.
  • Bug Fixes
    • Fixed usage of the playbackConfig.segmentHandler return value.

Media Player Library

  • Added HEVC codec support to HLS in MPL.

CAF Web Sender

  • Introduced alpha support for live streams. For details, see the developer guide.
  • Introduced support for ads. For details, see the developer guide.
    • Added RemotePlayerController.skipAd() for skippable ads.

Android Sender 16.2.0

  • Introduced alpha support for live streams. For details, see the developer guide.
    • Added new data structures and attributes for live stream status.
    • Added new MediaMetadata keys.
    • Added Live stream media commands:
      • RemoteMediaClient#load(MediaLoadRequestData)
      • RemoteMediaClient#seek(MediaSeekOptions)
    • Improved expanded controller UI to support live streams:
      • Added live stream support to the expanded controller UI widgets.
      • Changed the layout and appearance of the expanded controller.
      • Introduced the live stream compatible CastSeekBar widget to replace the native SeekBar.
      • Modified the ExpandedControllerActivity to use the CastSeekBar instead of SeekBar for live stream compatibility. The ExpandedControllerActivity#getSeekBar() is now deprecated and will return a dummy instance.
  • Added a new MediaStatus#PLAYER_STATE_LOADING player state:
    • When the receiver begins loading the media, the playerState property in MediaStatus is set to MediaStatus#PLAYER_STATE_LOADING until it begins buffering or playing content.
    • In most cases, the app handles this state the same way it was handling MediaStatus#PLAYER_STATE_BUFFERING.
    • Buffering and loading states are not always interchangeable.
    • While loading, the receiver has not yet resolved all the media information, and so the only media information available is what was present in the sender's load media request.
    • While buffering, the media information may contain additional information resolved by the receiver.
  • Modified MediaMetadata to support audio books:
    • Added new MediaMetadata keys.
    • Added new metadata type for audiobooks.

March 25, 2019

CAF Receiver

  • Replaced usage of document.registerElement() with customElements.define() to make the Cast Receiver SDK compatible with newer versions of the Cast platform.
  • MediaStatus.breakStatus now returns an empty object when ad breaks are present for content but an ad break is not currently playing.
  • Fixed an issue with inline VAST tags parsing.

Media Player Library

  • Fixed the issue of ~20s delay when switching audio tracks.

February 13, 2019

CAF Receiver

  • Fixed the sudden appearance of the Skip Ad button for Touch UI.
  • Fixed displaying breaks information on remote control.

Media Player Library

  • Fixed an issue with handling licenseUrl for preloaded media.

February 5, 2019

iOS Sender v4.3.5

  • Added support for Audiobook metadata, see GCKMediaMetadata.h for more details.
  • Set correct value for static_framework on the podspec.
  • Split styleAttributes for the navigation bar and the toolbar in the connection controller.
  • Bug Fixes
    • Fixed a crash on certain failed database initializations.
    • Fixed an issue with the receiver volume bar during incoming phone calls or alarm rings.
    • Fixed the redundant calling of certain delegate methods during discovery.
    • Fixed an issue where the media queue list wouldn’t clear after the last item in the queue finished playing.
    • Disallowed showing non-reachable nearby devices when the network is not available.
    • Disabled the volume slider on the device view controller for devices in which the volume cannot be controlled.

December 17, 2018

iOS Sender v4.3.4

  • Improved Ads Support
    • Multiple UI and handling improvements for Ads.
    • VMAP support.
  • GCKMediaQueue
    • See GCKMediaQueue.h for more details.
  • API Updates:
    • GCKAdBreakClipInfo
      • A builder object GCKAdBreakClipInfoBuilder has been added for constructing new or derived GCKAdBreakClipInfo instances.
    • GCKAdBreakInfo
      • A builder object GCKAdBreakInfoBuilder has been added for constructing new or derived GCKAdBreakInfo instances.
    • GCKMediaInformation
      • New APIs have been added to represent media streams with either contentURL or entry.
    • GCKMediaQueue
      • A media queue data model that contains the full list of queue items for the CAF receiver.
  • Bug Fixes
    • Fixed a crash when parsing an invalid GCKMediaInformation JSON file.

December 13, 2018

Android Sender 16.1.2

  • Fixed a bug where the Cast SDK may try to resume the session if the session was stopped by another sender.
  • Fixed a notification bug that occurred on devices running Android O or later when the Casting app was in background.
  • Fixed a bug where the Cast media notification might be unresponsive after the Casting app is killed.

December 12, 2018

CAF Receiver

  • Fixes for touch control initialization and image URL escaping.
  • Added Repeat and Shuffle states to audio UI.
  • Polished the CAF Video playback UI.
  • Fixed an issue in playing an Ad after seek.
  • Deprecated PresentationData in PlayerData.

Receiver v2

  • Fixes for touch controls initialization and image URL escaping.
  • Added user customData to store session response.

Media Player Library

  • Fixed a bug in Smooth Live streams with small segments.
  • Fixed a bug in HLS live stream where it failed to correctly recognize manifest changes.

November 28, 2018

CAF Receiver

  • Improved the default UI:
    • Added support for audiobook chapter metadata.
    • Fixed an issue related to skippable Ads.
  • Improved media controls:
    • Added support for group volume control.
    • Improved "Back" button behavior.
    • Added talkback support for the "Stop" button.
  • Fixed an issue when seeking in a live stream.
  • Added an opt-in flag for Smooth Live streaming seek.

Receiver v2

  • Improved the default UI:
    • Added support for audiobook chapter metadata.
    • Fixed an issue related to skippable Ads.
  • Improved media controls:
    • Added support for group volume control.
    • Improved "Back" button behavior.
    • Added talkback support for the "Stop" button.
  • Fixed an issue when seeking in a live stream.

Media Player Library

  • Fixed an issue with HLS/CMAF CEA-608 captions.

October 22, 2018

iOS Sender v4.3.3

  • The minimum version supported by iOS SDK is now iOS 9.
  • Bug Fixes
    • Fixed a build issue when using the Cast SDK with certain other Google-released SDKs.
    • Fixed a crash on certain failed initializations.
    • Fixed a crash when adding a nil channel through addChannel in GCKCastSession.
    • Changed the visibility of certain symbols.

October 18, 2018

Android Sender 16.1.0

  • Improved UI for a better Ads experience:
    • Changed the default color and z-position of ad break markers.
    • Changed the default color of the progress bar.
  • Added support to load ads through VmapAdsRequest in MediaInfo.
  • Added android.permission.FOREGROUND_SERVICE permission to the CAF manifest file so that CAF media notifications show up properly on Android API level 28.
  • Updated documentation for UIMediaController.bindSeekBar(). The bound SeekBar should not be used for livestreams, as it results in undefined behavior.

October 4, 2018

CAF Receiver

  • Improved touch controls: added a "Stop" button and handled missing metadata.
  • Fixed a bug where skipping a paused ad didn't start playing the main content.

Receiver v2

  • Improved touch controls: added a "Stop" button and handled missing metadata.
  • Updated metadata display in touch compatibility mode.

Media Player Library

  • Different encryption methods used in video and audio are now handled from one stream.
  • Fixed issues in Smooth Live stream seek.
  • Fixed issues with the order of stream handling when refreshing the Smooth Live manifest.
  • Added an opt-in flag for Smooth Live manifest refresh.

September 20, 2018

CAF Receiver

  • Added support for explicit filtering for load.
  • Fixed issues in detecting video/mp2t audio stream type.

Media Player Library

  • Added HLS support to audio streams without default=yes.
  • Fixed issues in handling demuxed HLS streams.
  • Fixed issues in CMAF 608/708 captions support.
  • Fixed issues in HLS streams with multiple encryption methods.
  • Fixed issues in handling CMAF live content.
  • Fixed issues in DRM playback of streams with Timescale.
  • Improved Smooth Live stream support.

September 10, 2018

iOS Sender v4.3.2

  • Bug Fixes
    • Fixed an issue with relaunching on certain failed initializations.
    • Improved the SDK initialization time.

September 5, 2018

Android Sender 16.0.2

  • Fixed the IllegalStateException thrown when ReconnectionService is started in background if the app targets to Android O or higher. Apps that enable reconnection service should update to use this version to avoid being affected this bug.

August 13, 2018

CAF Receiver

  • Added presentation data to playerDataBinder to draw UI easily.
  • Added Ad duration indicator and "Skip Ad" button for Media Controls UI.
  • Fixed a bug where CAF would report buffering state even after media is playing.
  • Updated playerDataBinder events timing: If multiple fields of playerData are getting updated in the same time, delay PlayerDataBinder field update events until all fields will have updated values.
  • Added support for rejected promise from a load interceptor.
  • Fixed an issue where player UI enters buffering state after loading.
  • Changed logic so that we trigger media status event only after the media status interceptor promise is resolved.
  • Stopped showing "pause" icon on Media Controls for media with PhotoMediaMetadata.
  • Added image loading animation for audio player on touch screens.
  • Fixed bug of showing progress of previous item during loading.

Media Player Library

  • Fixed a live start time issue with CMAF streams.

August 2, 2018

Android Sender 16.0.1

July 30, 2018

iOS Sender v4.3.1

  • Static build - We’re now releasing both a static build and a dynamic build to help with some build issues regarding duplicate symbols when using our SDK with a few other Google released SDKs. The static build will be distributed through cocoapods and rely on the Protobuf pod while the dynamic build will have the protobuf pod compiled into the SDK and will be available for download via the downloads section.
  • Bug Fixes
    • Fixed an issue where the video progress bar would be disabled after the skip ad button was tapped.
    • Fixed a crash when parsing certain UDP packets.
    • Fixed a crash in the teardown of sessions.

July 27, 2018

Android Sender 16.0.0

  • Introduced CastDevice.getInetAddress(), and deprecated CastDevice.getIpAddress().
    • getInetAddress() is both IPv6 and IPv4 compatible.
    • getInetAddress() and getIpAddress() can be nullable.
  • Notice: The large icon of the media notification may not show up for Android API levels less than 27.
    • Please update to release 16.0.0 or later to fix this issue. No code changes necessary.

June 26, 2018

Cast Button Update Notice

We have updated the Cast sender button to be forward compatible with new Custom Element API. See new usage in our documentation guide.

Media Controls

  • Improved overall accessibility and UI for touch controls.
  • Stopped hiding controls overlay when screen reader is enabled.
  • Decreased overlay timeout to 4.5 seconds for video controls only; audio is still 8 seconds

CAF Receiver

  • Fixed issue where getLiveSeekableRange being called before play start would return null. It now sets start time reference and returns a live range.
  • Added support for intercepting the media user action message in CAF. The same interceptor will handle both CAC and media user action requests.
  • Fixed issue where url parser would break with "/" in parameter values.
  • Updated UI to match whether seek is disabled in supported commands.
  • Fixed issue where the player state would turn into playing while receiver was still buffering.

CAF Web Sender

  • Fixed issue where removing an event listener from within an event handler would occasionally result in event handlers being skipped.
  • Updated Cast sender button to be forward compatible with new Custom Element API.

June 13, 2018

iOS Sender v4.3.0

  • IPv6 support
    • Support for this has been turned on.
    • Note: if a device is on an IPv6 only network, the deprecated IPAddress field on GCKDevice can now be nil (applies to v4.2.0 as well)
  • GCKRemoteMediaClient
    • Supports skipping ads.
  • GCKMediaInformation
    • Initializer now supports Ad break clips and entity, the old initializer has been deprecated.
  • GCKAdBreakClipInfo
    • whenSkippableInMs is renamed to whenSkippable.
      • In seconds instead of milliseconds now.
  • Bug Fixes
    • Fixed a discovery issue with groups.
    • Fixed a discovery issue with certain Vizio TVs.

May 31, 2018

CAF Receiver

Media Player Library

  • Added encrypted CMAF support.
  • Added ability to tell whether a smooth stream is a live stream or event stream.

April 20, 2018

iOS Sender v4.2.0

  • IPv6 support
    • Discovery and casting should work on IPv6 only networks now.
      • Networks that have support for IPv4 should not be affected as the IPv4 network will be preferred.
    • Guest mode connections aren't supported yet for IPv6 only networks.
    • Support for this will be turned on when Cast Receivers support IPv6.
  • Bug fixes

April 17, 2018

Android Sender 15.0.0




CAF Queueing

  • Introduced CAF queue sender APIs. The new APIs are a replacement for the existing media queue mechanism with the following features:
    • The MediaQueue class is a sparse model representing the queue. It keeps track of the list of item IDs in the queue, but only fetches the MediaQueueItem details on demand.
    • Provides MediaQueueRecyclerViewAdapter and MediaQueueArrayAdapter as convenient adapter classes to be used in RecyclerView and ListView.
    • Previously, the media queue comes with the media status, which can be accessed through MediaStatus#getQueueItems(). This will be deprecated in the future and MediaStatus#getQueueItems() will return a maximum of 3 items.

Ads Support Update

  • Cast Sender API now supports loading VAST ads. Content providers provide an AdTagURL that is sent to the server to load an AdsResponse (sample response). The response is an XML document that contains the actual ad information.
  • Skip Ads UI:
    • If an Ad is skippable, a countdown text will appear in the expanded controller mode, counting down to when the ad can be skipped.
    • A functional "Skip Ad" button will also appear in the new SDK when the ad can be skipped.

Other changes:

April 16, 2018

CAF Receiver

  • Improved Ads VAST support and added VMAP support
  • Added getStats to receive playback statistics
  • Improved support for cea608 text tracks
  • Added events for range mode changes in Live streams
  • Added support for unencrypted HLS CMAF streams
  • Added HLS audio-only Streaming MimeTypes
  • Added E_AC3 as a HlsSegmentFormat option

Receiver v2

  • Added better support for queue change messages and broadcasting changes to queue data
  • Added support for CMAF and E_AC3 segment format

Media Player Library

  • Fixed a race condition where the duration would be reported as -1
  • Fixed a failure that occurred during preload
  • Improved live end of stream detection

March 20, 2018

Android Sender for Google Play services APK 12.0.0

  • Ads support
  • Support new CAF Receiver APIs
    • Added credentials and credentialsType to  MediaLoadOptions when loading message from sender to receiver.
    • Added entity to MediaInfo that represents an application-specific deep link for loading the media.
  • Added CastContext.setReceiverApplicationId() to enable mutable application ID support.
  • Bug fixes
    • Previously, when the version of Google Play services installed on the device was older, calling CastContext.getSharedInstance() would cause a crash. Clients should check the Google Play services version and notify the user to update Google Play services or silently fail and disable Cast-related features. Previously, some UI widgets provided by the SDK would call CastContext.getSharedInstance(Context) when inflating the layout, which would crash the app without explicitly calling CastContext.getSharedInstance(Context). Starting with this release, those UI widgets would silently fail to initialize so they won't crash the app.

March 15, 2018

Media Player Library

  • Fixed an HLS manifest parsing issue that could lead to a stream duration of -1 which could then disable sender media controls.
  • Fixed an issue with missing APIs for SMPTE-TT.

March 8, 2018

iOS Sender v4.1.0

  • Ads
    • Vast Ad format support
    • Added new member fields in GCKAdBreakInfo and GCKAdBreakClipInfo
  • Cast Overlay Instructions - updated method to handle a wider variety of cases.
  • DiscoveryManager has a new method for easier tracking of the removed device.
  • CAF Queues - Remote media client now has internal support for Queues!
  • Bug Fixes - Fixed a couple of connectivity issues that prevented reconnection in certain conditions. Also other general bug fixes to improve stability.

March 2, 2018

CAF Receiver

  • Added support for inband CEA608 text streams from HLS data segments.
  • Improved live stream support including live and event stream detection and seek range handling.
  • Updated default UI to display better metadata about playing media.
  • Added support for VAST ads servers.
  • Text track language selection now persists within an app session across media sessions.
  • Playback bitrate now persists within an app session across media sessions.
  • Added a CAF queue parameter to report the number of queue items in media status.
  • Added “skip ad” flag to supported commands in media status.
  • Bug fixes:
    • Fixed a lifecycle state issue where LOADED was treated as BUFFERING.
    • Fixed a mime type handling issue where audio/mp4 was treated as video/mp4.
    • Fixed various minor CAF queue issues.

February 21, 2018

Media Player Library

  • Added support for unencrypted HLS/CMAF.
  • Allow skipping over segments in case of network failure.
  • Added support for Promise return values on the following host processing methods: processManifest(), processSegment(), and processLicense().
  • Added stream indicators isLiveStream() and isEventStream() that describe live streams.
  • Bug fixes:
    • Fixed an SMPTE-TT issue where captions were being shown incorrectly.
    • Fixed an MPEG-DASH parsing issue that caused TTM XML in MP4 tracks to fail.

February 16, 2018

Receiver v2

  • Added LiveSeekableRange object to the media namespace to indicate the live seek range to senders.
  • Added SKIP_AD enum to supported commands in media status.
  • Bug fixes:
    • Fixed an issue where "Stop casting" would disconnect the sender but the receiver would not tear down, causing the media to continue streaming.
    • Fixed StreamType to correctly report as live.

December 18, 2017

Android Sender for Google Play services APK 11.8

  • Made the following improvements to the UIMediaController class:
    • When binding views to UIMediaController, listeners will be registered such that when a user interacts with the views, those listeners will call the appropriate event handling methods to handle the interactions. The following event handling methods have been added to UIMediaController to handle these interactions.
      • onMuteToggleClicked(ImageView)
      • onPlayPauseToggleClicked(ImageView)
      • onSeekBarStopTrackingTouch(SeekBar)
      • onSeekBarStartTrackingTouch(SeekBar)
      • onSeekBarProgressChanged(SeekBar, int, boolean)
      • onCloseCaptionClicked(View)
      • onLaunchExpandedControllerClicked(View)
      • onForwardClicked(View, long)
      • onRewindClicked(View, long)
      • onSkipNextClicked(View)
      • onSkipPrevClicked(View)
    • Clients are able to override the event handling methods to customize the behavior.
    • Improved the documentation of UIMediaController to clarify the implementation.
    • Bug fix - Inverted the mute toggle button display so that it shows a speaker icon when unmuted and a crossed speaker icon when muted.
  • Instant apps - Cast SDK for Android now supports Instant apps.

December 4, 2017

iOS Sender v4.0.2

  • Support iOS 8.0 - A previous release had removed support for iOS 8.0 and earlier.
  • Include high-resolution icons - Include @2x and @3x images as part of the resources.
  • Fixed length of CFBundleShortVersionString in Info.plist

November 17, 2017

CAF Receiver
  • Localization support for English, Spanish, French, Japanese and German.
  • Customizable ad seek behavior. See new class BreakManager.
  • Added event for ID3 in HLS streams. See new Id3Event and EventType ID3.
  • Added event for EMSG in MPEG-DASH streams. See new event EmsgEvent and EventType EMSG.
  • Added the following splash, logo, and watermark customization parameters:
    --splash-background  --logo-repeat          --watermark-background
    --splash-size        --logo-background      --watermark-position
    --splash-color       --logo-size            --watermark-size
                         --logo-color           --watermark-color
  • Added slideshow parameters to cycle through up to 10 images.
  • Added boolean property to enable/disable text tracks. See enableTextTracks.
  • Bug fixes
    • Fixed issue to make the preload behavior of ad breaks and queue items consistent.
    • No longer display scrubber time and duration for invalid duration.
    • Fixed issue where an ad icon was not shown if paused or buffering during an ad break.
    • Fixed an issue where an event listener removing itself caused the next event listener to be ignored.
Receiver v2
  • Improved preloading logic for queues.
  • Added receiver versionCode in CastReceiverManager.Config for you to track your receiver app version.
  • New property to enable/disable text tracks. See enableTextTracks.
  • Bug fixes
    • Fixed issue where receiver would fail on older Chromecast versions that don't support canDisplayType() method.
    • Fixed issue where if the receiver was playing a queue and the item failed to load, the playback would stop even though there were more items in the queue. Now the playback will continue to the next item, if it exists.
Media Player Library
  • Added support for GROUP-ID attribute in HLS Rendition Groups.
  • Added support for HLS streams with raw E-AC3 segments.
  • Trigger event when quality level changes. See onQualityLevelChanged.
  • Added method player.onAudioChange(), which will try to reuse the audio source buffer before resorting to reloading the entire player. Previously player.reload() had to be called for each audio change.
  • Bug fixes
    • Fixed bug where audio-only streams contained in TS segments were not recognized as audio only.

November 14, 2017

iOS Sender v4.0

  • Variable playback rate - Added UI elements to display and change the playback rate for the current media item. Made changes to GCKRemoteMediaClient, GCKUIMediaController, and GCKUIPlaybackRateController. For details, see variable playback rate.
  • Removed all deprecated classes from 2.x versions - The major ones are GCKDeviceManager, GCKDeviceScanner, GCKMediaControlChannel, and all the Game Manager APIs. GCKAnalyticsLoggingEnabled has also been removed.
  • Bug fix - Fixed an issue where some memory would leak when a Cast session ended.

November 6, 2017

Android Sender for Google Play services APK 11.6

Made the following changes to methods in the RemoteMediaClient class.

  • Consolidated load() methods - Added the method load(MediaInfo, MediaLoadOptions) which has the same functionality as the other load() methods in RemoteMediaClient, which are now deprecated:
    load(MediaInfo mediaInfo, boolean autoplay, long playPosition)
    load(MediaInfo mediaInfo, boolean autoplay, long playPosition, long[] activeTrackIds, JSONObject customData)
    load(MediaInfo mediaInfo, boolean autoplay, long playPosition, long[]
    load(MediaInfo mediaInfo)
    load(MediaInfo mediaInfo, boolean autoplay, long playPosition, JSONObject customData)
    load(MediaInfo mediaInfo, boolean autoplay)
  • Variable Playback Rate - Added the methods setPlaybackRate(double) and setPlaybackRate(double, org.json.JSONObject). Call these methods to set the playback rate for the current media item.

Known Issue

  • Issue with notifications for Cast SDK in Google Play services API 11.6 and earlier. Cast media notifications and remote display notifications will not work for apps that target Android O (and O-specific features that require API level 26). This issue will be addressed in Cast SDK Google Play services APK 11.8.

October 12, 2017

iOS Sender v3.5.6

  • GCKCastContext must be initialized from the main thread. This condition is now enforced with an assertion.
  • A new method on GCKCastContext has been added: +[isSharedInstanceInitialized]. It checks if the context has already been initialized.
  • Optimization of download requests. The default internal implementation of GCKUIImageCache is now optimized to perform only a single HTTP download when it receives multiple overlapping fetch requests for the same URL.
  • Bug fixes
    • Fixed an issue where device discovery was nonfunctional when running on a Simulator.
    • Fixed a rare crash that can occur when making HTTP requests.
    • Fixed a rare crash when app remained active in the background and battery state changed.
    • Fixed a rare network socket related crash.

September 28, 2017

CAF Receiver

Cast Application Framework Receiver SDK is a major upgrade from the existing Receiver v2 SDK. Improvements focus on significantly reducing the amount of code it takes to implement a receiver app, while making Cast more reliable and easy to maintain. This was done by implementing all common use cases into the new Cast Application Framework (CAF).

The resulting improvements in reliability and performance benefit both existing receiver apps that you upgrade, as well as new receiver apps. Moving forward, your app will automatically benefit from new features such as Google Assistant.

CAF Receiver SDK also comes with a built-in media player, which provides a seamless and easy playback experience. It also provides the same flexibility as before, allowing your own player UI that can intercept and override messages and methods to execute your custom business logic.

Features Application configuration and options, audio tracks, closed captions, styling the player, custom UI data binding, event handling, message interception, custom messages, ad breaks, device capabilities, check for display type, queueing and DRM.

Developer code samples and documentation

September 22, 2017

Android Sender for Google Play services APK 11.4

  • startSession method - Added the startSession(Intent) method to the SessionManager class. Call this method to join a cast session when the sender app is launched by an implicit intent.
  • Known issue: Remote Display should not be used with this version of Google Play Services APK.

August 14, 2017

Android Sender

Aug 11, 2017

iOS Sender v3.5.3

  • Bug fix: Fixed an issue where receipt of a large message from the receiver can lead to a corrupted message stream.
  • Bug fix: Fixed an issue where receiver device authentication checks can fail in certain time zones and/or when the sender device's 12/24 hour clock time setting is changed.

July 31, 2017


  • Added the canDisplayType method. Its signature is
    canDisplayType(mimeType, codecs, width, height, framerate).

    This method checks for video and audio capabilities of the receiver device and display by validating the media parameters passed in. It returns a boolean. All parameters but the first are optional — the more you include, the more precise the check will be.


    Checks whether the receiver device and display support the video/mp4 mimetype with this particular codec, dimensions, and framerate:
    canDisplayType("video/mp4", "avc1.42e015,mp4a.40.5", 1920, 1080, 30)
    Checks whether the receiver device and display support 4K video format for this codec by specifying the width of 3840 and height of 2160:
    canDisplayType("video/mp4", "hev1.1.2.L150", 3840, 2160)
    Checks whether the receiver device and display support HDR10 for this codec, dimensions, and framerate:
    canDisplayType("video/mp4", "hev1.2.6.L150", 3840, 2160, 30)
    Checks whether the receiver device and display support Dolby Vision (DV) for this codec, dimensions, and framerate:
    canDisplayType("video/mp4", "dvhe.04.06", 1920, 1080, 30)
  • Added two new device capabilities: is_dv_supported, for Dolby Vision, and is_hdr_supported, for High Dynamic Range. These are keys for the object returned by getDeviceCapabilities. See an example that checks for both of these device capabilities.

Media Player Library

  • Increased cached DRM keys from 5 to 8.
  • Ignore streamId as part of start_code checking in ID3 extraction path.

July 27, 2017

iOS Sender v3.5.2

  • Fixed various issues with Guest Mode session creation and resumption
  • Fixed issue with session resumption when WiFi is re-enabled from the Control Center
  • Fixed a rare crash due to a timing issue in networking logic

Note: iOS Sender v3.5.1 was initially an internal release that we have made public by folding into this v3.5.2 release.

June 14, 2017

Media Player Library

  • Segmented TTML: Support MP4 segmented TTML captions in DASH.
  • Encryption/decryption: Allows transition between unencrypted ads and encrypted programs.
  • MediaKeySystemConfiguration is now properly configured with audioCapabilities and videoCapabilities.


  • Switch audio tracks: Support switching audio tracks in MPL based on the current language. See EditAudioTracksData.

Chrome Sender

  • Bug fix: mediaSession items are not synchronized with receiver.
  • Bug fix: Mirroring to Android TV shouldn't show volume control.
  • Bug fix: Second SESSION_START_FAILED event not fired.

May 15, 2017

iOS Sender v3.5

May 8, 2017

Android Sender

April 12, 2017

iOS Sender v3.4

March 24, 2017

iOS Sender

  • Doc update: Updated the Logging doc for how to produce verbose debugging messages and log them to the system console.


  • Doc update: Updated the User Experience page and Cast branding guidelines for "Chromecast built-in" and "Chromecast-enabled" terminology, and new Chromecast badges.

March 14, 2017

Media Player Library

  • HLS with raw MP3 segments: Media Player Library now supports raw MP3 media segments in HTTP Live Streaming (HLS). For more information, see Frequently Asked Questions.
  • Add callback onCue to signal presence of in-band caption streams: A new onCue callback function has been added to the Host class. This callback is triggered right before a caption is added to the screen. This enables apps to respond to the presence of in-band caption streams, such as CEA-608, which are transmitted in the same stream as audio and video content. For more details, see In-Band Caption Streams.
  • Doc update: Supported Media for Google Cast has been updated.
  • Bug fix: Fixed media information events when the media is stopped.
  • Bug fix: Fixed an MPL error when trying to select EC-3 audio tracks.

December 6, 2016

Media Player Library

  • TTML position: Added a property ignoreTtmlPositionInfo which lets the specified TTML position be ignored, causing the captions to be centered.
  • Relative timestamps for WebVTT: Added a property useRelativeCueTimestamps to use relative cue timestamps rather than the default absolute timestamps.

December 5, 2016

iOS Sender v3.3

  • 4K video format: Added a new property GCKMediaStatus.videoInfo to enable your app to know the resolution of the currently playing media. This property gets the current instance of GCKVideoInfo, a new class. This instance contains the type of HDR TV format and the height and width in pixels. Variants of 4K format are indicated in the hdrType property by enum values GCKVideoInfoHDRType. See 4k Video Format.
  • Guest Mode Permissions: Since iOS 10, for Guest Mode to work, permissions are required to access Bluetooth and microphone. You must therefore add entries to the application's Info.plist. See Bluetooth and Microphone Permissions for details.
  • App Store: Added a shell script to the SDK package that strips unused architectures from an app bundle. This enables submitting to the App Store. For example, this script removes simulator slices, which are included in the framework but are not allowed in the App Store.
  • Loading state: Added a new enum value GCKMediaPlayerStateLoading to the GCKMediaPlayerState enum type. When the receiver begins loading the media, the SDK sets the playerState property in MediaStatus to GCKMediaPlayerStateLoading and holds that state until it begins buffering or playing content. In most cases, the app should handle this state the same way it was handling GCKMediaPlayerStateBuffering. However, buffering and loading states are not always interchangeable. While loading, the receiver has not yet resolved all the media information, and so the only media information available is what was present in the sender's load media request. While buffering, the media information may contain additional information resolved by the receiver.
  • Custom styles: A new class GCKUIStyle holds the root of a style attribute tree and can apply styles. New interface GCKUIStyleAttributes defines the style propreties (colors, fonts, icons). This interface has 11 new subclasses which specify the values for different views of UI elements that can be styled. For details, see Apply Custom Styles.
  • Device types: Added new property GCKDevice.type. Its type is a new enum GCKDeviceType, which can indicate the device is a TV, speaker, or another type.
  • Ad breaks: New properties adBreaks and adBreakClips on GCKMediaInformation list the ad breaks and ad break clips, respectively, in the current content. A new class GCKAdBreakClipInfo has been added to represent each ad break clip that plays within an ad break. New property adBreakStatus (on GCKMediaStatus) is of type GCKAdBreakStatus which holds status information about an ad break, such as the ID and playback position of the current ad break and ad break clip.
  • Controlling media playback: A new class GCKRemoteMediaClient (Protected) has methods that can be called only by GCKRemoteMediaClient subclasses.
  • UX bug fix: The expanded controller (in the framework) now displays total duration, instead of remaining playback time, at the right end of the seek bar.
  • Bug fix: GCKFrameworkResources has been removed from the public API.

November 21, 2016

Android Sender

Requires Google Repository revision 39. (For Google Play services APK version 10.0.)

  • 4K video format: New method getVideoInfo() in MediaStatus gets the current instance of VideoInfo, a new class. 4K format is indicated by constants HDR_TYPE_*.
  • States of Cast session: New method CastContext.getCastState() exposes CastState which holds the current session state, such as whether devices are available and a session has been established.
  • New @drawable button attributes: Use these attributes to customize button styles in themes for mini controller and expanded controller.
  • Fix image aspect ratio: ImagePicker now has an onPickImage handler that takes an ImageHints class with the expected aspect ratio that you can use to customize the MediaMetadata images that you provide to the SDK.
  • Route selector: New method CastContext.getMergedSelector() exposes MediaRouteSelector, which describes the routing of media channels and streams, from the current sender device to external screens, speakers, and other destination devices. Sender apps can discover and use these routes. Most developers don't need to use this method since the v3 (framework) SDK does this and will work fine for most use cases.
  • Ad breaks: Two new classes have been added: AdBreakClipInfo contains static information about an ad break clip, such as the clip's ID, content URL, mime type, total duration, and click-through URL. AdBreakStatus holds status information such as the playback position of the current ad break and clip.
  • Remote Control Notifications: When a user is casting, other devices on the same network will get a sticky notification to also control the playback. The user of the primary sender device can turn off these remote notifications globally in the Settings app at Google > Google Cast > Show remote control notifications.
  • CastContext methods: All methods in CastContext that your app calls must be called from the main thread, otherwise an Exception will be thrown.

October 26, 2016

Chrome Sender

  • The Chrome Sender SDK provides a new application framework, available through the Sender Framework API. This framework significantly reduces the amount of code you need to write to integrate Cast into your Chrome app. The framework also provides full state management that helps you implement the right abstraction between your app and Cast. This upgrade also makes Chrome sender apps more reliable and easier to maintain. This new framework is analogous to the frameworks in Android and iOS which were introduced in the v3 release.

For details, see Chrome Sender setup, integration, advanced features, and Chrome Sender API reference.

October 24, 2016

Android Sender

Requires Google Play services SDK revision 37. (For Google Play services APK version 9.8.)

  • When playing ads, the appearance (color and transparency) of the seek bar has been improved, and the background poster images get blurred.
  • Added ability to customize the style of mini controllers: added castBackground for setting its background color, castButtonColor to color all buttons used in the mini controller, and castProgressBarColor to color the progress bar.
  • ImageHints provides hints to an ImagePicker about the type and size of an image to be selected for display in the UI.

October 20, 2016


  • Minor updates to Receiver API
  • Support 4K info in MediaStatus

Media Player Library

  • EMSG box callback support for MPEG-Dash
  • Improved bandwidth calculation logic for initial playback
  • New documentation: Streaming Protocols

September 21, 2016

Android sender iOS Sender v3.2
  • Ads - In iOS, background poster image gets blurred while displaying ads.
  • Supports dynamic frameworks - Consequently, Xcode setup now requires that the GoogleCast framework be embedded.
  • Fixed issue: Guest Mode works with this version of Cast SDK for iOS.
  • API changes:
    • Converted GoogleCast.framework to a dynamic framework
    • New Framework Dependency: CoreGraphics.framework
    • New methods on GCKLoggerFilter: -[addClassNames:minimumLogLevel:], -[addFunctionNames:minimumLogLevel:]
    • New property sharedContainerIdentifier on GCKCastOptions
    • Moved remoteMediaClient property from GCKCastSession to GCKSession
    • Removed properties thumbnailImageView, thumbnailImageHints, nextItemThumbnailImageView, nextItemThumbnailImageHints, nextItemTitleLabel, nextItemSmartSubtitleLabel from GCKUIMediaController

September 12, 2016

Media Player Library

  • Redesigned and Improved Failover Policy for both segments and manifests downloads.
  • Support for W3C Clear Key DRM System and options for preferred content protection system.
  • Use setLiveSeekableRange in MediaSource for live streams.
  • Support for audio playlist in MPEG2 TS.
  • Support for using either sequence number or program date time; the default will remain program date time.

August 1, 2016

July 14, 2016

Media Player Library

  • (Encrypted) Packed Audio Surround Sound Support.
  • Support Dolby Vision codec matching for various formats.

July 13, 2016


The release of Chrome v51 removes the requirement to install the Cast extension. The Chrome Sender app documentation has been updated accordingly.

June 27, 2016

Cast SDK v3

This release of Cast SDK v3 is a major upgrade of the Cast Sender v2 APIs for Android and iOS. Improvements focus on significantly reducing the amount of code it takes for you to integrate Cast into your Android and iOS sender apps, while making Cast more reliable and easier to maintain. This was done by standardizing and moving much of the code into a new sender application framework. In addition, these framework APIs were re-designed to be consistent across Android and iOS. And the framework includes full state management that helps you implement the right abstraction between your app and Cast.

Known issue with iOS: Guest Mode doesn't work with this version of Cast SDK for iOS — use version 3.2 instead.

New documentation:

Note that we use "v2" to refer to an SDK before the framework was added and "v3" to refer to an SDK after the framework was added. As of this date, only the Android Sender SDK and iOS Sender SDK have been upgraded to v3; the Chrome Sender SDK and Receiver SDK have not yet been upgraded.

Cast SDK v3 contains two distinct parts:

  • v2 compatibility - v3 includes sender API v2 so that existing v2 sender apps will continue to run.
  • Framework - v3 adds a new application framework that provides all of the improvements.

In the v3 API reference docs, the parts that make up the new framework are annotated as follows:

  • Android packages that are new in v3 are marked "New in v3". Example: Cast package summary.
  • iOS classes, members, and other program elements that are new in v3 are marked "Since v3". Example: GCKCastContext. Program elements that cannot be mixed with v3 are deprecated and are found in the Deprecated List. Example: GCKDeviceManager.

This release includes reference sample apps that implement a full Cast user experience, compliant with the Google Cast Design Checklist. It also includes Cast codelab tutorials for Android and iOS.

May 16, 2016

Media Player Library

  • Segment download and source buffer integration improvements.
  • Improved fine grain error reporting, bandwidth tracking, and stall prevention logic for video analytics and quality.
  • SMPTE-TT backgroundImage support to captions.
  • Sublevel support for DASH.

April 11, 2016

Remote Display Unity Plugin 1.1

Framework Changes

Unity Plugin 1.1 now requires Remote Display iOS v2.10.4

API Changes

Added SetCastVolume, GetCastVolume, and CastVolumeUpdatedEvent to CastRemoteDisplayManager. These are already used in our default UI. For more details about how they are used, see CastDisconnectDialog.

Bug Fixes

Fixed crash when running iOS 7 applications compiled with the plugin. (Note: Despite this fix, Remote Display is still disabled on iOS 7.)

Fixed "No texture or camera set" error sometimes being thrown before casting begins.

Fixed the status field of idle devices to display nothing rather than the model name.

March 29, 2016

Cast Test Cases

Test cases are now available for developers to test their applications. Please run these test cases to help make the Cast user experience consistent across all platforms.

March 17, 2016

iOS v2.10.4

This release is not aligned with a GMS Core release.

New Framework Dependencies


API Changes


Bug Fixes
  • When iOS is set to non-Engish, Guest Mode UI has some English text after canceling PIN detection
  • iOS GCKDevice setAttribute:forKey: always crashes
  • iOS v2.10.2 google-cast-sdk framework doesn't contain module map
Known Issues

In iOS Cast app, renaming device name during cast session fails to update the device name

Note: iOS v2.10.3 was an internal-only build

March 2, 2016

iOS v2.10.2

Behavioral Changes

Disconnecting from a device is now synchronous in all cases. If there are any messages in the send buffer that have not yet been written to the socket at the time of disconnect, they will be discarded.

Bug Fixes
  • Assertion raised by GCKCastSecureSocket during dealloc
  • Crash after switching networks
  • Logging override doesn't log if app hasn't wired up the GCKLogger delegate
  • Guest Mode UI remains in English despite device language settings.
  • Crash on armv7 introduced by linking with GoogleCastRemoteDisplay
Other Changes
  • Added more diagnostic logging in the SDK.
  • Fixed incorrectly formatted log message timestamps.
  • Include hardware model info in UserAgent string.
Known Issues
  • Changing device's friendly name during Cast session fails to update the friendly name in the UI.

December 4, 2015

iOS v2.10.1

There are no backwards-incompatible API changes in this release.

New framework dependencies

The following framework dependencies affect the v2.10 release as well as this release:

  • Accelerate
  • AudioToolbox
  • AVFoundation
  • MediaPlayer
  • CoreBluetooth
  • libc++.dylib
Behavioral change

If a GCKDeviceManager instance is deallocated while it is still in a connected (or connecting or disconnecting) state, it will now immediately synchronously tear down the connection. This prevents a memory-violation crash caused by an async I/O event being triggered after the dealloc. A delegate callback (e.g., -[deviceManager:didDisconnectWithError:]) will not be invoked in this case.

Other changes
  • Added Bitcode support in Google Cast SDK for iOS
  • Added Bitcode support in Google Cast Remote Display SDK for iOS
Bug fixes
  • Message delivery delayed
  • Downgrading sdk v2.10.0 -> v2.9.0 leads to crash
  • Display and color space corruption after removal of keyframes (remote display)
Known issues
  • Cannot get background color from accessibility system settings
  • Guest Mode UI has some English text after canceling PIN detection

December 3, 2015

Cast Unity Plugin

The initial release:

December 2, 2015

Media Player Library

  • Improved content protection handling when DASH manifest is reloaded
  • Removed requirement to have ending comma on #EXTINF
  • Report MANIFEST_ERROR when MPL cannot parse dash manifest
  • Added ability to skip a segment when a download fails after retries
  • Use PROGRAM-DATE-TIME tag to find segment when playlist switching

October 19, 2015

Cast SDK release 2.10


Framework dependencies
  • Accelerate
  • AudioToolbox
  • AVFoundation
  • MediaPlayer
  • CoreBluetooth
  • libc++.dylib
API updates
  • Remote Display API has a new dependency on MediaToolbox.framework
  • GCKDevice: New property -[isOnLocalNetwork] - returns NO for Guest Mode device, YES for mDNS discovered device
  • GCKError: New error codes GCKErrorCodeMessageTooBig, GCKErrorCodeNoMediaSession
  • GCKGlobalFlags: New header file. Contains a single constant GCKAnalyticsLoggingEnabled which is used to enable or disable collection of diagnostic data to improve the reliability of cast device discovery. The default value is YES (feature enabled); app developers may disable it by setting the value to NO.
  • GCKMediaControlChannel: New methods -[queueInsertAndPlayItem:beforeItemWithID:], -[queueInsertAndPlayItem:beforeItemWithID:playPosition:customData:], -[queueLoadItems:startIndex:playPosition:repeatMode:customData], -[queueJumpToItemWithID:playPosition:customData:]. New property lastError, which is set in response to any synchronous or asynchronous request failure.
  • GCKMediaStatus: New method -[queueIndexForItemID:].
  • GCKMediaCommon: New constant kGCKInvalidTimeInterval (equal to NaN)
  • GCKMediaQueueItem: If kGCKInvalidTimeInterval is passed as the playPosition parameter in methods on GCKMediaControlChannel that accept that parameter, the parameter will be omitted from the corresponding media namespace protocol message
  • GCKRemoteDisplaySession: Breaking change: this is now a @protocol, not an @interface. New targetDelay property which is set to one of the GCKRemoteDisplayTargetDelay enums. Similar to targetDelay property added to GCKRemoteDisplayConfiguration but this property can be changed on the fly during a session. This is intended to temporarily increase the target delay to show non-interactive content such as a video in the middle of a remote display session.
  • GCKRemoteDisplayAudioInput: New class to allow applications to provide arbitrary PCM formatted audio buffers that will be automatically converted into a remote display compatible audio format and sent to the Cast device in a remote display session. This is intended to complement graphics sent via GCKOpenGLESVideoFrameInput and GCKMetalVideoFrameInput.
  • GCKOpenGLESVideoFrameInput and GCKMetalVideoFrameInput: Both have new textureCoordinateMatrix property that can be applied to OpenGLES and Metal frames to perform transformations (e.g. a y-coordinate flip) without needing a separate rendering pass.
  • GCKAVPlayerItemVideoTap and GCKAVPlayerItemAudioTap: New classes to allow applications to redirect the video and audio output of an AVPlayerItem to a remote display session, maintaining audio-video sync. This is intended to support movie / video playback
  • GCKRemoteDisplayConfiguration: New targetDelay property which is set to one of the GCKRemoteDisplayTargetDelay enums. This allows applications to customize the time allotted to encode, transmit, retransmit, decode, render video and audio in a remote display session.
  • GCKStreamDescriptor, GCKAudioStreamDescriptor, GCKVideoStreamDescriptor: bitrate property is deprecated. Remote display will ignore this value and automatically the configure bitrate.
  • Remote Display API will automatically adjust the bitrate based on network congestion.
  • Now includes Guest Mode support - these devices are discovered by the GCKDeviceScanner automatically (if Bluetooth is enabled on the iOS device).
  • Known issue: cannot get background color from accessibility system settings
  • Bug Fixes:
    • [iOS SDK] Support a one-time startTime in the queueing APIs
    • Long queue fails to load with Invalid Request error
    • requestDidCompleteWithID not called when a loadMedia request completes
    • sessionId not covered in IOS sdk documentation
    • GCKDeviceManager fails to launch application more than once
    • iOS metadata is not being sent in Clearcut logs
    • Subtype is not logged in AdaptiveDiscoveryResult event
    • Log model name in adaptive discovery result
    • Filter thread id isn't logged in filter events
    • Missing sender_id in filter, device controller and application events
    • iOS Guest Mode UI remains in English with mobile device set to another language on iOS 9


Fixed: Missing Status update message when an item in the middle of a queue fails to load.

Players and Media Player Library

  • Fixed an issue with CEA-608 processing in transport streams
  • Improved ID3 tag processing for transport streams
  • Fixes for EME handling on Android TV
  • Improved bitrate switching for segments with short duration
  • Deprecated host.useSingleKeySession
  • Adjust the estimated interval time based on the source buffer to avoid buffering if the manifest time is not precise

September 17, 2015

Cast SDK release v2.9

Neither the iOS SDK nor the Chrome SDK are updated with this release.


Ships with the Google Play services 8.1 release.

  • Media Queue API enhancements:
    • RemoteMediaPlayer.queueInsertAndPlayItem variant that doesn’t take in an initial play position
    • Ability to set the playback duration in a MediaQueueItem
  • Remote Display updates:
  • Various bug fixes


  • currentTime property in the queueing APIs
  • currentItemIndex property in MediaManager.QueueInsertRequestData
  • itemId in MediaManager.PreloadRequestData event so the app can decide when to hide the autoplay UI

Media Player Library

  • Added CEA-608 support for MPEG-DASH and Smooth Streaming

July 28, 2015

Cast SDK release v2.8

Neither the iOS SDK nor the Chrome SDK are updated with this release.


  • Enabled Cast Screen Mirroring from QuickSettings for all Android devices running Android version 4.4 (API 19)
  • Fixed crash in CastRemoteDisplayLocalService
  • Fixed memory leak in CastRemoteDisplayLocalService
  • Bug fixes related to Chromecast discovery

Receiver API, Media Player Library, Players

  • Support unprefixed EME API
  • HLS content key protection
  • Update MPL player to comply with recent changes in Chrome media pipeline that require that for live streams, i.e. streams with duration = Infinity, currentTime can only be set if there are buffered ranges in the media element
  • Consider offset of init segment when getting segment offset in SIDX
  • Guess location of init segment when Initialization is not present
  • Process 't' attribute of SegmentTimelne element
  • Support formatting in Number tag in URL
  • Support self initializing streams
  • Support SchemeIdUri of "urn:mpeg:dash:mp4protection:2011"
  • Support host.onAutoPause for easier buffering detection
  • Use PSSH box for license custom data
  • Add Host.autoResumeNumberOfSegments to provide more options of control auto resume duration
  • Handle self-initializing segments for manifests with segmentTemplate
  • Extract license url from initialization data in pssh
  • Expose host.processSegment callback
  • Recognize "ec-3" codec as DD+

June 25, 2015

Cast SDK release v2.7.1

iOS (patch)

This fixes a bug in iOS SDK release v2.7 that that prevents the user from disabling closed captions.

June 4, 2015

Cast SDK release v2.7


  • Media queueing SDK
  • Remote Display SDK
  • Game Manager SDK
  • New string constant kGCKFrameworkVersion (in GCKCommon.h) which contains the framework’s version number.
  • Deprecated initializer, GCKDeviceScanner -[init]. Replaced with new initializer, -[initWithFilterCriteria:].
  • Various bug fixes

May 28, 2015

Cast lSDK release v2.7


  • Media queueing API
  • Remote Display API
  • Game Manager API
  • Various bug fixes


  • Media queueing API
  • Game Manager API
  • Various bug fixes


  • Media queueing API
  • Remote Display API
  • Game Manager API
  • System Volume Control API

May 8, 2015

Cast SDK release v2.6.1

There are no backwards-incompatible API changes in this release.


  • Namespace filtering in mDNS
  • Expose capabilities for each device to Sender app (for Cast for Audio)
  • Various bug fixes


See iOS Sender API for download information.

GCKDeviceCapabilities constants are now an enum. The names of the values have changed to drop the leading ‘k’ prefix. The old names are still present and will continue to work.

Bug fixes:

  • Client is not notified of disconnection if app is in background
  • netServiceBrowser:didRemoveService delegate callback should be implemented for goodbye mdns message
  • GCKDeviceCapabilities should be an enum
  • Constant logspam: "MdnsDeviceScannerEntry: Invalid non-absolute icon path: null"
  • Bad GCKMediaInformation JSON can crash in the SDK
  • Cast SDK disconnects when coming back from lock screen
  • Rescan when foregrounding

Media Player Library

Bug fixes:

  • Properly reset source ended state after seeking.
  • Ensure that the initialization segment is not request for text (closed caption) streams.
  • Jump over gaps in the media source based on media element buffered time ranges.
  • Ensure that a source buffer is created after the manifest is loaded for player preload.
  • Ignore init segment when computing buffer duration to improve ready to play time.

March 18, 2015

Cast SDK release v2.6.


  • Various bug fixes


API changes:

  • GCKCastContext: New class. Reserved for future use
  • GCKCastChannel: New property deviceManager
  • GCKDevice: Added property deviceVersion; method hasCapabilities:; constant kGCKDeviceCapability*
  • GCKDeviceManager: Added properties activeInputStatus and standbyStatus.
  • GCKFilterCriteria: -[criteriaForRunningApplicationWithID:supportedNamespaces:] is deprecated. It now delegates to -[criteriaForRunningApplicationWithSupportedNamespaces:]. Filtering by running application ID is not supported
  • GCKGenericChannel: New class
  • GCKGenericChannelDelegate: New class
  • GCKJSONUtils: New method, +[isJSONObject:equivalentTo:]
  • GCKMediaInformation: Now implements NSCopying, -[isEqual:], and -[hash]
  • GCKMediaInformation: mediaTracks property now may not be set to an empty NSArray instead of nil
  • GCKMediaMetadata: Now implements NSCopying and has a corrected -[isEqual:] implementation
  • GCKMediaStatus: Now implements NSCopying, -[isEqual:], and -[hash]
  • GCKMediaTextTrackStyle: Now implements -[hash]
  • GCKMediaTrack: Now implements -[hash]
  • GCKDeviceScanner: improvements to the device discovery mechanism

Bug fixes and other changes

  • When player state goes to IDLE, metadata isn't cleared (fixed)
  • Receive Text Messages using GCKCastChannel without subclass (fixed)
  • Log discovery requests for iOS in a manner similar to the Chrome Extension
  • Cast SDK images should be rendered as template images by default (fixed)
  • Make activeInputStatus and standbyMode properties public
  • GCKCastChannel should have a reference to its owning GCKDeviceManager (fixed)


  • Bug Fix: Avoid a condition where the player state is not properly reported if the application has called PLAY on the media element before the loadedmetadata event has been raised
  • Provided new API getStandbyState and modified the internal behavior to report more accurate CEC information with getVisibilityState
  • Added capabilities API to support Cast for audio devices
  • Added NEXT/PREV APIs to support hardware remote controls on Cast for audio devices

Media Player Library

  • Provide media time for id3 tags in host.processMetadata callback
  • Content preloading - Player.preload and host.onMediaDownloadEnded
  • Fixed smooth streaming regression hit by some partners

February 3, 2015

Cast SDK release v2.5.2.


  • Bug fixes to accompany the intermediate release of GMS Core


Bugs fixed:

  • Passing INFINITY for stream duration causes exception
  • Bad Cast icon state on ios - problem with GCKDeviceManager
  • Icon URLs have wrong port number
  • Media status updates may not be passed to the client


  • Cross-site scripting fix for vulnerability in device name
  • ICA whitelisting in support of new devices
  • cast_sender.js no longer loads Cast API on non-Chrome browsers
  • Warning for users on old Chrome versions
  • Cast sender information now included in virtual connection message
  • Dynamic latency for mirroring, based on past session
  • Support for Cast audio policy enforcement


Bugs fixed:

  • Restore support for visibility and standby information when the platform supports it
  • Fixed showing Play Movies spinner while video is playing
  • Captions support: close caption default fonts now part of platform
  • Loading a video with autoplay=true leads to state PAUSED instead of BUFFERING

Media Player Library

Bugs fixed:

  • Fix access of incorrect properties (also fixes HLS live point playback regression)
  • Expose host.processManifest to enable change to the manifest after it is downloaded, but before it is parsed
  • Improved support for smooth streaming url pattern
  • Make useSingleKeySession true by default (Android TV)
  • Enable E-AC-3 by default if pass through is enabled
  • Fix HLS audio only support and add a unit test
  • Clean up the use of H.264 codec string for Chromium compatibility
  • Add a single key session mode (Android TV)
  • Make MPL to handle the marker between playback and ads

December 17, 2014

iOS sender API (v2.5.1 1396)

This update fixes a bug in the previous release that causes apps to crash.

December 1, 2014

iOS sender API (v2.5.0 1346)

  • GCKColor now implements -(NSString *)description.
  • GCKError now includes a human-readable localizedDescription and a new error code GCKErrorCodeInvalidState.
  • GCKDeviceManager added -[disconnectWithLeave:(BOOL)leaveApplication] which can be used to perform an “implicit” disconnect.
  • GCKDeviceScanner added passiveScan property.
  • GCKMediaControlChannel added -[cancelRequestWithID:] to allow the app to stop tracking (cancel) in-progress requests.
  • GCKMediaControlChannelDelegate added -[mediaControlChannel:didCancelRequestWithID:].
  • Calling any GCKDeviceScanner or GCKDeviceManager methods or accessing their properties from a thread other than the main thread will raise an assertion.
  • It’s now possible to start a new media load request (using -[GCKMediaControlChannel load]) while a load request is already in progress. The new request will replace the old one, which will no longer be trackable.
  • No new framework dependencies.
  • No backwards-incompatible changes.

Chrome sender API (v2.10)

  • Faster app discovery after connection establishment.
  • Improved reconnection handling in poor network environments.
  • Media metadata constant consistency with Android, iOS.

Media Player Library (v1.0)

  • E-AC-3 pass through support.
  • Call host.processLicense for HLS key.
  • Provide host.onManifestReady callback.
  • Allow override of network responses for Host updateManifestRequestInfo, updateLicenseRequestInfo, and updateSegmentRequestInfo
  • Fix duplicated HLS VTT cues when segment's last cue segment ends with a newline.
  • Expose stream name in cast.player.api.StreamInfo.
  • Add smooth streaming sparse tracks support.
  • Reduce maximum buffer duration from 30 seconds to 20 seconds.
  • Fix HLS EXT-EX-KEY parsing to allow commas in the key url.
  • Expose streaming protocol from player.
  • Add Player playWhenHaveEnoughData.
  • When seeking do not load segment data before seek time.
  • Add response header and body to error information for network requests.

Receiver API (v2.0.0)

  • Exposed new API loadTracksInfo by the MediaManager that allows applications to override onLoad but still set the text tracks and their styling. In this way applications can use the MediaManager to load only tracks information but not load the actual media and take advantage of the built-in text track styling capabilities of the MediaManager.
  • Fixed bug where on some TVs the visibility state was not reported properly by the platform.
  • Optimization to not seek if the requested time is already the current time. This also optimizes loading times as we avoid a seek to currentTime = 0 during load.


Bug fixes, including but not limited to the following:

  • Ensuring that the loading screen is displayed before playback starts.
  • Fixes to thumbnail cropping.
  • Use CastReceiverManager.onVisibilityChanged() to detect input change.
  • Send BUFFERING event when MPL pauses media for buffering.

Additional support in the generic player for closed caption formats:

  • Out of band TTML close captions.
  • TTML close captions embedded in the SmoothStreaming manifest.
  • VTT close captions embedded in the HLS manifest.
  • VTT close captions when using HLS.

October 8, 2014

Android sender API

The Android sender API has been updated with the following:

  • Released with update to GMS Core library
  • Improved device discovery
  • Fixed bug where loadMedia() function did not accept activeTrackIds parameter

September 24, 2014

iOS sender (v2.4 1210)

Breaking changes

The following APIs have changes incompatible with previous versions.

SystemConfiguration.framework library now required
See Xcode setup
This class now implements NSCopying
senderApplicationInfo is now a method rather than a property
Removed from the API
Device filtering is accomplished by setting the filterCriteria property of the GCKDeviceScanner, as described in Device scanner
Renamed method deviceManager:didReceiveApplicationMetadata: was deviceManager:didReceiveStatusForApplication:
New methods that notify the application of connection suspension and automatic reconnection:
  • deviceManager:didSuspendConnectionWithReason:
  • deviceManagerDidResumeConnection:rejoinedApplication:
New methods:
  • deviceManager:didReceiveApplicationStatusText:
  • deviceManager:request:didFailWithError:
Non-breaking changes

Enhancements to the API also include the following.

Now implements NSCopying and NSCoding
New property, filterCriteria
New method, deviceDidChange:
New properties:
  • connectionState
  • deviceVolume
  • deviceMuted
  • applicationSessionID
  • applicationMetadata
  • applicationStatusText
New initializer with parameter, ignoreAppStateNotifications
New methods:
  • launchApplication:withLaunchOptions:
  • joinApplication:`g (when the session ID is irrelevant)
All request methods now return an NSInteger which is the request ID, rather than a BOOL. If there is an error enqueueing the request, methods return kInvalidRequestID (which is 0).
New property, statusText
New method, isSameDeviceAs:
Updated methods no longer require you to call their superclass methods:
  • didConnect
  • didDisconnect
New error code, GCKErrorCodeDisconnected
New method, parseJSON:error:
New method, mediaControlChannel:didReplaceRequestWithID:
New class, GCKLaunchOptions
Supports the sender language

Chrome sender API

The Chrome sender API has been updated with the following:

  • New method: Session.leave to allow disconnect from a specified session
  • Increase Cast SDK connection timeout to 20 seconds
  • Now always show mute/unmute button
  • When user selects to include device logs, default to most recently discovered Cast device if no device was used
  • Fixed timeout-caused launch failures on Samsung and possibly other TVs
  • Launch initial experiment on variable bitrate in beta channel
  • Remove all notifications and log collections regarding switch to Cast streaming
  • Collect and upload event logs in feedback

Receiver API (version 2.0.0)

The Receiver API has been updated with the following:

  • New Player interface ( to simplify porting players in scenarios with legacy code where the existing player does not provide direct access to the HTML5 media element. The Media Manager constructor can now be passed either a HTMLMediaElement or a object
  • Added track support to the new interface. If the player does not support tracks it can simply ignore the editTracksInfo method
  • Fixed problem where Receiver's response to Media Namespace's load request with autoplay=true was PLAYER_STATE_PAUSED
  • Fixed: activeTrackIds doesn't get updated when the second LOAD does not provide any active track IDs

Media Player Library (v1.0)

The first (non-beta) release of the Media Player Library includes the following enhancements:

  • DASH support now includes:
    • Dynamic manifest support for live streams
    • SegmentTimeline
    • Templates $Time$
    • Captions
  • CEA-608 closed captions updates:
    • Fixed parsing of h264 with long SEI runs
    • Fixed timestamp discontinuity handling
    • Check correct bit for the presence of closed caption data
    • Fixed blocky characters sometimes incorrectly displayed
  • HLS support updates:
    • Do not re-request HLS key if the key URL stays the same in the manifest, but is changed in the updateLicenseRequestInfo callback
    • Fixed sync when seeking
    • Fixed key url being uudecoded for the key request
    • Improved manifest parsing performance
  • Report seekable range in player.getState to enable seeking for live streams
  • Do not auto-pause media element when time is close to duration to avoid restart
  • Source buffer manager fixes related to Chrome M37 transition
  • Expose HTTP status code for a license error
  • Do not append duplicate cues to the text track for segmented captions
  • TTML support for time offset format
  • Fix smooth streaming playback at live point

July 29, 2014

Media Player Library (v0.9.0 beta)

  • Updated DASH specification-compliant PlayReady and Widevine support
  • Updated TTML italic support
  • Fixed Smooth streaming live support
  • Improved HLS robustness

July 8, 2014

Android sender API

iOS sender API (2.3.0 953)

Receiver API

  • Fix incorrect reporting of PAUSED after LOAD when autoplay is true
  • Media Tracks data structures and APIs:
    • Track

      Although the media protocol supports different types of Tracks (TEXT, VIDEO, AUDIO) the generic/styled receivers only support TEXT tracks (VTT format only). Of course now custom receivers have standard messages to control multiple audio tracks but they need to manage the tracks on the receiver code.

    • TextTrackStyle

      Some of the fonts are not currently included in the Chromecast device, so the styled/default media receivers can't use them. This will change in a future Chromecast release. Developers with their own custom receiver can just include the proper web font (links are included below).

      Font families currently included in Chromecast:

      • SANS_SERIF: 'Droid Sans'
      • MONOSPACED_SANS_SERIF: 'Droid Sans Mono'
      • SERIF: 'Droid Serif Regular'

      Font Families that require a web font for now (not supported in the styled/default media receivers):

    • MediaInformation
    • MediaStatus
    • MediaManager.onLoad
    • MediaManager.onEditTracksInfo

Media Player Library (v0.8.0 beta)

  • Added support for supplementary HLS audio streams
  • Made improvements to ABR heuristics
  • Made improvements to CEA-608 closed captions decoder
  • Fixed stream count regression issue

Styled and Default Media Receiver

  • Do not display progress bar for live streams.
  • Support for VTT text tracks: Now the sender can pass the media URL and the VTT files URL to enable VTT closed caption support. NOTE: To support closed captions, both the VTT files and the media files have to be hosted on a server that supports CORS.

June 12, 2014

Google Cast Chrome extension - beta release 14.605.0.3

The Google Cast Chrome extension is available in a beta channel. Instructions for using the beta channel version are here.

In this release:

  • Beta Chrome Sender API event, chrome.cast.addReceiverActionListener fires immediately upon launch, allowing a site to respond as soon as a receiver has been picked.
  • Improved ability to represent DIAL and custom devices & activities in Cast extension UI.
  • Fixes for device discovery issues following sleep/wake cycles.
  • Users can share non-personal statistics to help identify & resolve issues and to improve the Cast experience.

May 30, 2014

Media Player Library (beta)

  • New version, v0.7.0
  • New URL:
  • Improvements to adaptive bitrate heuristics
  • Contains refactoring of all aspects of the library code
  • Fixes handling of HLS discontinuities
  • Improves HLS playlist reloading
  • Improves tracking of buffered time for HLS
  • Adds server 408 response retry handling

May 21, 2014

iOS sender API

  • New version, 2.2.1
  • Fix to prevent app crashing when binary is run on iOS 5.

    Note: Cast API calls will run only on iOS 6 and above. The application binary that is installed on all versions was causing iOS 5 applications to crash if the binary included Cast API calls.

  • Various bug fixes
  • Application going into background is now handled as an implicit disconnect so it will not cause the styled/default media receiver to terminate

Android sender API

  • Various bug fixes
  • Updated JavaDoc for RemoteMediaPlayer to explain what RemoteMediaPlayer requestStatus does
  • Detach data channel when disconnecting
  • Enforcing valid custom namespace name

Styled and Default Media Receivers

  • Implemented explicit disconnect logic.

May 7, 2014

Receiver API

In this release:

April 25, 2014

Media Player Library (beta)

In this release:

  • New version, v0.6.0
  • New URL:
  • WebVTT polyfill to support WebVTT specification changes.

    Important: all applications using closed captions of any type in the Media Player Library will need to switch to v0.6.0 or later to support upcoming WebVTT specification related changes in Chrome on Chromecast that make the previous implementation of closed captions (including WebVTT, TTML, and CEA-608) not work. V0.6.0 has code that enables closed captions to work on current and future builds of Chrome on Chromecast.

  • Fixes in 608 closed captions decoder.
  • Updated timeout logic when downloading segments to be based on segment duration.
  • Support MPEG DASH BaseUrl in adaptation and representation when resolving segment url.

Google Cast Chrome extension - beta release 14.421.1.0

The Google Cast Chrome extension is available in a beta channel. Instructions for using the beta channel version are in the Chrome Sender setup.

In this release:

  • Security change for Cast channel
  • Zoom suppression for fullscreen-in-tab

April 4, 2014

Google Cast Chrome extension - beta release 14.402.0.3

The Google Cast Chrome extension is available in a beta channel. Instructions for using the beta channel version are here.

In this release:

  • Universal media controls in extension UI
  • Device discovery using mDNS or DIAL
  • Allows app filtering to show only devices usable for a given context
  • UI selector for casting vs. mirroring

April 2, 2014

Media Player Library (beta)

  • New version, v0.5.0
    • New URL:
    • Test your app with this version before switching to the new library in your production app
    • Added 608 closed captions support for HLS mpeg2 transport streams
  • Issues fixed in this version:
    • Extract segment info of live smooth streaming from Tfrf box
    • Audio out of sync for live smooth streaming - Issue 203
    • Live SmoothStreaming have audio and video a few seconds off
    • Audio only HLS stops playback 10 mins after playback starts
    • Do not insert a 30 ms gap when detecting discrepancy between processed time and end of range in the source buffer for HLS - Issue 199

March 25, 2014

Google Cast Android SDK

Now using Google Play Services version 4.3, including the following specific to Cast:

  • The Cast sender application now maintains a WiFi lock while casting
  • Various bug fixes for handling connection and disconnection issues
  • Fix for photo MediaMetadata incorrectly imports/exports JSON objects
  • Fix for Cast.CastApi.getApplicationMetadata returns null
  • Fix for Cast device list not removing devices that have powered down
  • Various bug fixes in the SDK sample apps
  • Improved error and exception handling

The Cast SDK includes the following API changes:

  • The stop, pause and play methods no longer throw IOException and now return PendingResult<RemoteMediaPlayer.MediaChannelResult>
  • The method setDebuggingEnabled has been changed to setVerboseLoggingEnabled
  • removed IllegalStateException and added IllegalArgumentException

Google Cast iOS SDK

Updates to the SDK for iOS, version include the following:

  • 64-bit builds are now fully supported
  • Fixed: setVolume doesn't work when the sender device is muted
  • Logs provide a warning when a given namespace does not start with urn:x-cast:
  • The SDK version number appears in the API reference documentation in the lower left corner of each page
  • The SDK version number is listed in the Bundle version property of the Info.plist file

March 19, 2014

Media Player Library (beta)

  • New version, v0.4.0, Revision 1
    • New URL:
    • Test your app with this version before switching to the new library in your production app
  • Issues fixed in this version:
    • Some HLS VOD/sVOD trailers could not be displayed on the Chromecast
    • HLS video doesn't resume playback, when network recovered
    • Node namespaces sometimes not ignored in TTML parsing

March 10, 2014

Media Player Library (beta)

  • Allow starting at "live" by using the Infinity property as the initialTime parameter to the player.load API call
  • Fixed issues with multiple, consecutive seeks
  • Fixed issues with seeking/playing to the end of the stream then seeking after sourceclose and ended
  • Fixed a crash that can happen if captions are disabled more than once
  • Print out bitrates in debug output when bitrate quality level changes

March 7, 2014

Updated the Design Checklist - check it out! The specifics are in the changelog.

Google Cast Chrome extension

Stable channel, version includes the following:

  • All changes from the beta release of February 20, 2104
  • Fixes for full screen and DIAL discovery

Beta channnel, version 14.305.0.0 includes the following:

  • Cleanup session info when receiver leaves
  • Files are checked correctly for forbidden strings
  • Specify Chromecast IP address in advanced extension options
  • Update demo app to use asyncronous script load instead of script tag
  • Return EXTENSION_MISSING error for any subsequent API method call after extension enabled-and-reenabled

Media Player Library (beta)

The Media Player Library has been updated with the following:

  • Add support for DASH segment template within representation
  • Expose auto pause and auto resume duration to the application
  • Calculate default audio codec private data based on sampling rate
  • Big numbers support for smooth streaming to handle live scenarios
  • Improvements in ID3 tag handling
  • Prevent changes in quality if already at the end of stream
  • Explicitly fix up mdat offset in trun
  • To work around media element precision issues around 'ended' event, fixed duration precision to 4 digits after the decimal point
  • Reset time offset in HLS on quality changes
  • Expire license generate key request after 2 minutes
  • ABR quality level changes improvements

February 24, 2014

Media Player Library (beta)

The Media Player Library has been updated with the following:

  • Add APIs to get the HTTP status code that is received from the server:
  • Change manifest loader to retry only on http timeouts and not on http errors
  • When parsing mp4, don't assume that mdat follows uuid sample encryption box
  • When parsing mp4, fix up data offset in trun since some content is encoded with the wrong offset that fails in Chrome mp4 parser

February 20, 2014

Google Cast Chrome extension - beta release

The Google Cast Chrome extension is now available in a beta channel. Instructions for using the beta channel version are here.

Google Cast Chrome Sender API - beta updates

With the beta release of the Google Cast Chrome extension the following APIs have been updated in the beta channel.

Also, to determine if the API is available and initialize it, you can provide a callback function, window['__onGCastApiAvailable'] instead of calling cast.isAvailable. See Initialization in the Chrome Sender App overview for more information.

February 3, 2014

  • Official Google Cast SDK Release!!!
  • Completely overhauled APIs
  • Google Cast Android API now incorporated with Google Play services for Android
  • Support for adaptive streaming: MPEG-DASH, SmoothStreaming, HTTP Live Streaming (HLS)
  • Security enhancements
  • Update of the Cast_Icons and GoogleCastIcons

Chrome Sender SDK update

This release of the Chrome Sender SDK works with the following Cast Receiver build, Cast extension, and Chrome versions:

Cast Chrome SDK version Cast Receiver build Cast extension version Chrome version
February 3, 2014 15250 32.0.1700.72
Google Cast extension - version
  • Major update to support the public Google Cast SDK. See the Google Developer blog for more information.
  • API is now included by the site instead of being injected by the extension.
  • Device selection is now always handled by the extension.
  • App launches can now be initiated from the extension-provided Cast icon.
  • Continuity of a Cast session across page transitions is now supported.
  • Navigating to a Cast-enabled page while mirroring can automatically launch the corresponding app.
  • Media can be played on an available Cast receiver using the Default Media Receiver, eliminating the need to write receiver-side logic for some use cases.
The API requires at least Chrome 32, and Cast extension version or higher

October 24, 2013

  • Update of the Cast_Icons and GoogleCastIcons


October 8, 2013

Updates for iOS:

  • Minor GCKWebSocket bug fix
  • Fix crash when ending session, plus some other fixes.
  • Fix buffer state bug.
  • v1.0.6 was not released


September 25, 2013

  • Avoid pointless DNS lookups when converting dot-separated IP address string to InetAddress object.
  • Make player state optional. (Fixes a crash)
  • Separate two distinct error conditions when checking if socket is still connected.
  • Checking to make sure mSelectInterfaceTask is the current object, before setting it to null in onCancelled.
  • Multiple bugfixes - including crashing bugs
  • Give socket time to drain before closing it.
  • Made delegate properties weak, and wrote a logging facility for the SDK.
  • Minor fix in CGKWebSocket


September 12, 2013

  • Update Android and iOS SDK's to 1.0.4 - 1.0.2 and 1.0.3 were internal updates
  • Android – Raw discovery API in Android has been deprecated - MediaRouterProvider should be used.
  • Android – Removed obsolete classes
  • iOS - End Session in background task
  • iOS - Fixed uncaught exception crash in GCKSimpleHTTPSrequest when used with file:// URL
  • iOS - Fixed a crash related to when app responds to a message by ending the session
  • Cast Icons and artwork are now avaiable on the downloads page


August 21, 2013

  • Update Android and iOS SDK's to 1.0.1
  • Documentation updates for Chrome, Android, iOS, and the Receiver
  • iOS - 'namespace' renamed to 'protocolNamespace' to allow Objective-C++ development


July 24, 2013

First release!

This release of Google Cast is a developer preview to let you experiment with this unique second-screen functionality in your applications. The APIs in this preview release are subject to change.