Index: media/cast/net/cast_transport_sender.h |
diff --git a/media/cast/net/cast_transport_sender.h b/media/cast/net/cast_transport_sender.h |
index 0ff76e111e93b20d1ac41217f9d5373f4146499d..b749c9f09f6ccf0f9fc4168c5cb215e39270ce2b 100644 |
--- a/media/cast/net/cast_transport_sender.h |
+++ b/media/cast/net/cast_transport_sender.h |
@@ -28,6 +28,7 @@ |
#include "media/cast/logging/logging_defines.h" |
#include "media/cast/net/cast_transport_config.h" |
#include "media/cast/net/cast_transport_defines.h" |
+#include "media/cast/net/pacing/paced_sender.h" |
#include "media/cast/net/rtcp/receiver_rtcp_event_subscriber.h" |
#include "media/cast/net/rtcp/rtcp_defines.h" |
#include "net/base/ip_endpoint.h" |
@@ -57,16 +58,30 @@ typedef base::Callback<void(scoped_ptr<std::vector<FrameEvent>>, |
// The application should only trigger this class from the transport thread. |
class CastTransportSender : public base::NonThreadSafe { |
public: |
+ // Interface used for receiving status updates, raw events, and RTP packets |
+ // from CastTransportSender. |
+ class Client { |
+ public: |
+ virtual ~Client(){}; |
+ // Audio and Video transport status change is reported on this callback. |
+ virtual void OnStatusChanged(CastTransportStatus status) = 0; |
+ |
+ // Raw events will be invoked on this callback periodically, according to |
+ // the configured logging flush interval passed to |
+ // CastTransportSender::Create(). |
+ virtual void OnLoggingEventsReceived( |
+ scoped_ptr<std::vector<FrameEvent>> frame_events, |
+ scoped_ptr<std::vector<PacketEvent>> packet_events) = 0; |
+ |
+ // Called to pass RTP packets to the Client. |
+ virtual void ProcessRtpPacket(scoped_ptr<Packet> packet) = 0; |
+ }; |
+ |
static scoped_ptr<CastTransportSender> Create( |
- 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 PacketReceiverCallback& packet_callback, |
+ base::TickClock* clock, // Owned by the caller. |
+ base::TimeDelta logging_flush_interval, |
+ scoped_ptr<Client> client, |
+ scoped_ptr<PacketSender> transport, |
const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner); |
virtual ~CastTransportSender() {} |
@@ -122,6 +137,11 @@ class CastTransportSender : public base::NonThreadSafe { |
base::TimeDelta target_delay, |
const ReceiverRtcpEventSubscriber::RtcpEvents* rtcp_events, |
const RtpReceiverStatistics* rtp_receiver_statistics) = 0; |
+ |
+ // Set |target_burst_size| and |max_target_burst_size| for PacedSender. |
+ virtual PacedSender* GetPacedSender() = 0; |
+ |
+ virtual void SetWifiOptions(int wifi_options) = 0; |
}; |
} // namespace cast |