# Glossary

## A

#### Ad breaks

An ad break refers to an interval for playback containing one or more
ads or bumpers.

#### Android Sender

Android Sender is used to send and share your applications from your android
mobile phone to others.

#### Android TV Receiver

Android TV Receivers use the Cast Connect library to allow existing sender
applications to communicate with Android TV applications using the Cast protocol.
Cast Connect builds on top of the Cast infrastructure, with your Android TV app
acting as a receiver.

#### Application life cycle

The receiver app life cycle starts from the point at which the receiver is
loaded onto the Cast device and proceeds to the point at which the application
is torn down and the Cast device reverts back to its default state.

#### Audio tracks

Audio track selection in the Receiver SDK has an `AudioTracksManager` class that
simplifies and streamlines track selection. It gives you more control and better
access to name, URL, and languager properties.

## B

#### break clip

An ad clip shown during an ad break.

## C

#### Cast

The Google Cast protocol.

#### casting

The act of displaying all forms of media (for example, video) dynamically on a
Google Cast receiver (for example, a Chromecast).

#### Cast Connect

The Cast Connect library allows your Android TV app to receive messages and
broadcast media status, as if it were a Chromecast. This is meant to "combine
Cast with Android TV to bring your app to the modern Cast experience." It allows
for expanded control, including being able to use a hardware remote.

#### cast state

The current state of casting from the perspective of the sender:

| State | Description |
|---|---|
| Unavailable | No Cast receivers are available |
| Disconnected | Cast receivers are available and none are connected |
| Connecting | A Cast receiver is connecting |
| Connected | A Cast receiver is connected but not casting |
| Casting | A Cast receiver is connected and casting |

#### Chromecast

A streaming media adapter from Google that allows users to play online content
such as videos and music on a display.

#### Closed captions (subtitles)

Closed caption track selection in the Receiver SDK has a TextTracksManager class
that simplifies and streamlines track selection, giving you more control and
better access to properties, such as name, URL and language
(much like Audio track selection).

#### Cross-Origin Resource Sharing (CORS)

Cross-origin resource sharing (CORS) is a method that requests secure web page
resources from an outside domain.

#### Custom messages

Message exchange is the key interaction method for receiver applications. A
sender can send a message to the receiver and vice versa. A receiver application
may choose to listen for messages on a specified namespace. It is then up to any
connected senders wishing to communicate on that namespace to use the
appropriate protocol.

#### Custom Receiver

This is a custom built HTML5 app that you must host to handle the display of
your app content on the TV. You may need to create a Custom Receiver if your app
wants to display content other than audio/video media or if the
Styled Media Receiver does not support the media types your app requires.

#### Custom UI data binding

Custom UI data binding allows you to use your own custom UI element and use the
PlayerDataBinder class to bind the UI to the player state. The binder also
supports sending events for data changes, if the app does not support data
binding.

#### Content preload

The Receiver supports preloading of media items after the current playback item
in the queue. The preload operation pre-downloads several segments of the
upcoming items. Preloading will work for HLS and Smooth streaming content by
default. For regular MP4 video and audio files such as MP3, those will not be
preloaded, as Cast devices support one media element only and cannot be used to
preload while an existing content item is still playing.

## D

#### Default Media Receiver

A third option available is the Default Media Receiver. This is a pre-built
receiver application hosted by Google that is designed for streaming your audio
and video content. It does not require you to register with the Google Cast SDK
Developer Console, but you cannot customize any of the UI in the Default Media
Receiver.

## G

#### Google Cast SDK Developer Console

The Google Cast Developer Console enables developers to register applications
and authorize devices for testing.

## I

#### iOS Sender

iOS Sender is used to send and share your applications from your Apple mobile
devices to others.

## M

#### Media Playback Messages

Google Cast sender applications control the playback on the receiver device by
sending messages in JSON format to the receiver application. Likewise, the
receiver sends messages back to the sender, also in JSON. The messages may be
commands from the sender that change the player state, responses to those
commands from the receiver, or data structures that describe the media for the
receiver application.

#### Message interception

The Receiver SDK allows your receiver app to intercept messages and execute
custom code at that point of interception. Message interception can be
especially useful if you want to customize the load request data.

## Q

#### Queueing

Cast utilizes both a basic sender-initiated queue and receiver-implemented
queueing.

## R

#### receiver

A receiver is an application created using HTML, JavaScript, and CSS. It is
loaded onto a Cast device (for example, a Chromecast) through a URL that is
accessible over the Wi-Fi network to which the Cast device is connected. The
sender app connects to and sends commands to the receiver to display content.

#### receiver app

The receiver app receives commands from the sender app and displays the
requested content on the device serving as the receiver. For example, the
YouTube app on Chromecast. See [receiver](https://developers.google.com/cast/glossary#receiver).

#### receiver device

The Cast device that loads the receiver app. For example, a Chromecast.
See [receiver](https://developers.google.com/cast/glossary#receiver).

## S

#### sender

A sender is an application that initiates connecting to or casting to a receiver
on the same Wi-Fi network or in guest mode. An example of a sender app is the
YouTube app on a mobile device.

#### sender app

See [sender](https://developers.google.com/cast/glossary#sender)

#### sender device

The device that loads the sender app. For example, a mobile phone or a tablet.

#### Stream transfer

CAF Receiver supports stream transfer, where users can move audio and video
streams across devices using voice commands. Stream transfer for audio is
supported by default and no additional development is necessary. Stream transfer
for video requires enabling the stream transfer media command and optional
overriding of the media session state.

#### Styled Media Receiver

The Styled Media Receiver (SMR) allows your sender application to play media on
a Cast device without creating your own custom receiver application. You can
customize the SMR color scheme and branding by providing your own CSS file
during registration.

#### Styling the player

The Receiver SDK provides a built-in player UI. In order to use the built-in
player UI, you need to add the cast-media-player element to your HTML. CSS-like
styling allows setting various things including background-image, splash-image,
font family and other things. This functionality allows for better branding and
overall customization.

## T

#### Touch controls

The Receiver SDK supports touch controls on your receiver app when launched on
these devices. The Receiver SDK provides a default UI experience with additional
customization of the player controls.

## W

#### Web Receiver

A Web Receiver application is an HTML5/JavaScript application that runs on the
receiver device, such as a Chromecast. It provides an interface to display the
app's content on the TV, and handles messages from the sender application to
control content on the receiver device.

#### Web Sender

Web Sender is used to send and share your applications from your Chromeium based
browsers to Cast devices.

## Translations

Common phrases used for casting have been translated into many languages
and are available in the [Cast Terminology Translations spreadsheet](https://docs.google.com/spreadsheets/d/1Ue39MoCQl9hYVsPkbxN6H6e-nGUHMe1O4LtUEN1ygJA). Use these
translations for labels and text if the app you are developing is localized.
For example, in a Japanese app, instead of "Stop casting" you would use
"キャストを停止".