Introduction

This directory defines the Cast Web Runtime, an implementation of the //components/cast_streaming Chromecast receiver, for use with the internal Cast Core library.

Local Testing

The below instructions are intended for Googlers only!

Build

Building of this directory can be done by building the chromecast/cast_core:core_runtime_simple target with the following build flags:

is_debug = true
dcheck_always_on = true
is_component_build = false
symbol_level = 2

is_castos = true
enable_cast_receiver = true
cast_streaming_enable_remoting = true
enable_cast_audio_renderer = false
enable_cast_renderer = false

ffmpeg_branding = "Chrome"
proprietary_codecs = true

Run

Running the Cast Web Runtime on Linux can be done with the following steps:

  1. Build the Cast Web Runtime using the above flags
  2. Build Cast Core following instructions here.
  3. Run the Cast Core and Platform Service applications built in step 2. Note that if it is your first time running Cast Core you will need to generate certificates for device type tv.
  4. Cast from a Chrome instance running on the local machine (either an official Chrome release or a locally built Chromium instance). It may take a few minutes for the Cast Core instance to show up as a valid cast target.

Troubleshooting

Common issues and their resolutions:

When running Cast Core, error Unable to load application config from file <path>/app.conf because the file does not exist or could not be read: This occurs when the certificates were not generated correctly. Ensure they were generated for device type tv.

When starting the Cast Web Runtime, hitting this DCHECK: This occurs when flags are not set correctly. Ensure you are using the correct config file for running on Linux.

When starting Cast Core, you hit this DCHECK: This occurs when the gRPC port is already is use. Kill the existing process using the following commands:

user$ netstat -ltnp | grep -w "10101"
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::10101                :::*                    LISTEN      <process id>/<path>
user$ kill -9 <process id>

Then re-run Cast Core.