| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef MEDIA_CAST_CAST_RECEIVER_IMPL_H_ |
| #define MEDIA_CAST_CAST_RECEIVER_IMPL_H_ |
| |
| #include "base/memory/ref_counted.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "media/cast/audio_receiver/audio_receiver.h" |
| #include "media/cast/cast_config.h" |
| #include "media/cast/cast_environment.h" |
| #include "media/cast/cast_receiver.h" |
| #include "media/cast/pacing/paced_sender.h" |
| #include "media/cast/video_receiver/video_receiver.h" |
| |
| namespace media { |
| namespace cast { |
| |
| // This calls is a pure owner class that group all required receive objects |
| // together such as pacer, packet receiver, frame receiver, audio and video |
| // receivers. |
| class CastReceiverImpl : public CastReceiver { |
| public: |
| CastReceiverImpl(scoped_refptr<CastEnvironment> cast_environment, |
| const AudioReceiverConfig& audio_config, |
| const VideoReceiverConfig& video_config, |
| PacketSender* const packet_sender); |
| |
| virtual ~CastReceiverImpl(); |
| |
| // All received RTP and RTCP packets for the call should be inserted to this |
| // PacketReceiver. |
| virtual scoped_refptr<PacketReceiver> packet_receiver() OVERRIDE; |
| |
| // Interface to get audio and video frames from the CastReceiver. |
| virtual scoped_refptr<FrameReceiver> frame_receiver() OVERRIDE; |
| |
| private: |
| PacedSender pacer_; |
| AudioReceiver audio_receiver_; |
| VideoReceiver video_receiver_; |
| scoped_refptr<FrameReceiver> frame_receiver_; |
| scoped_refptr<PacketReceiver> packet_receiver_; |
| }; |
| |
| } // namespace cast |
| } // namespace media |
| |
| #endif // MEDIA_CAST_CAST_RECEIVER_IMPL_ |