Working with ARM/ARM64/the Raspberry PI

Open Screen Library supports cross compilation for both arm32 and arm64 platforms, by using the gn args parameter target_cpu="arm" or target_cpu="arm64" respectively. Note that quotes are required around the target arch value.

Setting an arm(64) target_cpu causes GN to pull down a sysroot from openscreen's public cloud storage bucket. Google employees may update the sysroots stored by requesting access to the Open Screen pantheon project and uploading a new tar.xz to the openscreen-sysroots bucket.

NOTE: The “arm” image is taken from Chromium's debian arm image, however it has been manually patched to include support for libavcodec and libsdl2. To update this image, the new image must be manually patched to include the necessary header and library dependencies. Note that if the versions of libavcodec and libsdl2 are too out of sync from the copies in the sysroot, compilation will succeed, but you may experience issues decoding content.

To install the last known good version of the libavcodec and libsdl packages on a Raspberry Pi, you can run the following command:

sudo ./cast/standalone_receiver/