This directory contains a RTP/RTCP library used for the Cast mirroring
protocol. This library is specifically built for low latency purposes and
enables Chrome to send real-time video and audio streams. 

CONTENTS

cast/
    Build rules and top level source files and headers.

cast/audio_receiver/
    Module for receiving and decodes audio RTP stream.

cast/audio_sender/
    Module for encoding and sending audio RTP stream.

cast/congestion_control/
    Bandwidth estimation and network congestion handling.

cast/transport/pacing/
    Module for rate limiting data outflow.

cast/rtcp/
    Module for handling RTCP messages.

cast/rtp_common/
    Module for common code used for RTP messages.

cast/rtp_receiver/
    Module for reciving RTP messages.

cast/transport/rtp_sender/
    Module for sending RTP messages.

cast/test/
    Module for test applications.

cast/video_receiver/
    Module for receiving and decodes video RTP stream.

cast/video_sender/
    Module for encoding and sending video RTP stream.

DEPENDENCIES

Content of this directory should only depend on:

base/
    Provides base libraries and platform independent layer.

net/
    Provides network capabilities.

third_party/libvpx
    Provides video encoder.

third_party/opus
    Provides audio encoder.

OWNERS

See OWNERS for ownership.
