summaryrefslogtreecommitdiff
path: root/chromium/media/cast/cast_receiver_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/media/cast/cast_receiver_impl.h')
-rw-r--r--chromium/media/cast/cast_receiver_impl.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/media/cast/cast_receiver_impl.h b/chromium/media/cast/cast_receiver_impl.h
new file mode 100644
index 00000000000..d34a3de6514
--- /dev/null
+++ b/chromium/media/cast/cast_receiver_impl.h
@@ -0,0 +1,50 @@
+// 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/net/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_