Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(432)

Unified Diff: media/cast/net/cast_transport_sender_impl.h

Issue 765643006: Cast: Make receiver use cast_transport (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix end2end test Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/cast/net/cast_transport_sender_impl.h
diff --git a/media/cast/net/cast_transport_sender_impl.h b/media/cast/net/cast_transport_sender_impl.h
index b241ec8aae6fa3bf56fa8a5b91b5d244c263b281..c0d096aabd906fb6ccfb392180aae7a5f076732f 100644
--- a/media/cast/net/cast_transport_sender_impl.h
+++ b/media/cast/net/cast_transport_sender_impl.h
@@ -24,6 +24,8 @@
#ifndef MEDIA_CAST_NET_CAST_TRANSPORT_SENDER_IMPL_H_
#define MEDIA_CAST_NET_CAST_TRANSPORT_SENDER_IMPL_H_
+#include <set>
+
#include "base/callback.h"
#include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
@@ -38,6 +40,7 @@
#include "media/cast/net/cast_transport_sender.h"
#include "media/cast/net/pacing/paced_sender.h"
#include "media/cast/net/rtcp/rtcp.h"
+#include "media/cast/net/rtp/rtp_parser.h"
#include "media/cast/net/rtp/rtp_sender.h"
namespace media {
@@ -65,19 +68,23 @@ class CastTransportSenderImpl : public CastTransportSender {
// "disable_wifi_scan" (value ignored) - disable wifi scans while streaming
// "media_streaming_mode" (value ignored) - turn media streaming mode on
// Note, these options may be ignored on some platforms.
+ // TODO(hubbe): Too many callbacks, replace with an interface.
CastTransportSenderImpl(
net::NetLog* net_log,
base::TickClock* clock,
+ const net::IPEndPoint& local_end_point,
const net::IPEndPoint& remote_end_point,
scoped_ptr<base::DictionaryValue> options,
const CastTransportStatusCallback& status_callback,
const BulkRawEventsCallback& raw_events_callback,
base::TimeDelta raw_events_callback_interval,
const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner,
+ const PacketReceiverCallback& packet_callback,
PacketSender* external_transport);
~CastTransportSenderImpl() override;
+ // CastTransportSender implementation.
void InitializeAudio(const CastTransportRtpConfig& config,
const RtcpCastMessageCallback& cast_message_cb,
const RtcpRttCallback& rtt_cb) override;
@@ -97,6 +104,18 @@ class CastTransportSenderImpl : public CastTransportSender {
PacketReceiverCallback PacketReceiverForTesting() override;
+ // CastTransportReceiver implementation.
+ void AddValidSsrc(uint32 ssrc) override;
+
+ void SendRtcpFromRtpReceiver(
+ uint32 ssrc,
+ uint32 sender_ssrc,
+ const RtcpTimeData& time_data,
+ const RtcpCastMessage* cast_message,
+ base::TimeDelta target_delay,
+ const ReceiverRtcpEventSubscriber::RtcpEvents* rtcp_events,
+ const RtpReceiverStatistics* rtp_receiver_statistics) override;
+
private:
FRIEND_TEST_ALL_PREFIXES(CastTransportSenderImplTest, NacksCancelRetransmits);
FRIEND_TEST_ALL_PREFIXES(CastTransportSenderImplTest, CancelRetransmits);
@@ -118,7 +137,7 @@ class CastTransportSenderImpl : public CastTransportSender {
void SendRawEvents();
// Called when a packet is received.
- void OnReceivedPacket(scoped_ptr<Packet> packet);
+ bool OnReceivedPacket(scoped_ptr<Packet> packet);
// Called when a log message is received.
void OnReceivedLogMessage(EventMediaType media_type,
@@ -167,6 +186,13 @@ class CastTransportSenderImpl : public CastTransportSender {
// audio packet.
int64 last_byte_acked_for_audio_;
+ // Packets that don't match these ssrcs are ignored.
+ std::set<uint32> valid_ssrcs_;
+
+ // Called with incoming packets. (Unless they match the
+ // channels created by Initialize{Audio,Video}.
+ PacketReceiverCallback packet_callback_;
+
scoped_ptr<net::ScopedWifiOptions> wifi_options_autoreset_;
base::WeakPtrFactory<CastTransportSenderImpl> weak_factory_;

Powered by Google App Engine
This is Rietveld 408576698