Back to Chromium

//media/cast

media/cast/README.md

149.0.7827.21.3 KB
Original Source

//media/cast

This directory contains a collection of components related to streaming using the Cast Streaming Protocol (over UDP network sockets). They encode/decode raw audio or video frames, and send/receive encoded data reliably over a local area network.

The Chromium project uses libcast, which is part of the Open Screen project, for handling Cast Streaming. This implementation sits essentially as a translation layer on top of libcast, providing things like encoders (which libcast, very intentionally, tries to not be aware of) and Cast objects that are (hopefully) easy to reason with.

The majority of the documentation for Cast Streaming can be found in libcast's documents folder.

Directory Breakdown

  • common/ - Collection of shared utility code and constants.

  • encoding/ - Audio and video encoders and supporting classes.

  • logging/ - Packet/Frame logging, for study/experimentation of the protocol at runtime.

  • openscreen/ - classes and free functions for interfacing with libcast, the Cast Streaming implementation.

  • sender/ - Frame level senders and supporting classes.

  • test/ - Contains fakes, mocks, and other test utility code.