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/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/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.

third_party/webrtc
    Provides audio signal processing.

OWNERS

See OWNERS for ownership.
