OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_RENDERER_MEDIA_CAST_TRANSPORT_SENDER_IPC_H_ | 5 #ifndef CHROME_RENDERER_MEDIA_CAST_TRANSPORT_SENDER_IPC_H_ |
6 #define CHROME_RENDERER_MEDIA_CAST_TRANSPORT_SENDER_IPC_H_ | 6 #define CHROME_RENDERER_MEDIA_CAST_TRANSPORT_SENDER_IPC_H_ |
7 | 7 |
8 #include "base/message_loop/message_loop_proxy.h" | 8 #include "base/message_loop/message_loop_proxy.h" |
9 #include "ipc/ipc_channel_proxy.h" | 9 #include "ipc/ipc_channel_proxy.h" |
10 #include "media/cast/logging/logging_defines.h" | 10 #include "media/cast/logging/logging_defines.h" |
11 #include "media/cast/transport/cast_transport_sender.h" | 11 #include "media/cast/net/cast_transport_sender.h" |
12 | 12 |
13 // This implementation of the CastTransportSender interface | 13 // This implementation of the CastTransportSender interface |
14 // communicates with the browser process over IPC and relays | 14 // communicates with the browser process over IPC and relays |
15 // all calls to/from the transport sender to the browser process. | 15 // all calls to/from the transport sender to the browser process. |
16 // The primary reason for this arrangement is to give the | 16 // The primary reason for this arrangement is to give the |
17 // renderer less direct control over the UDP sockets. | 17 // renderer less direct control over the UDP sockets. |
18 class CastTransportSenderIPC | 18 class CastTransportSenderIPC |
19 : public media::cast::transport::CastTransportSender { | 19 : public media::cast::CastTransportSender { |
20 public: | 20 public: |
21 CastTransportSenderIPC( | 21 CastTransportSenderIPC( |
22 const net::IPEndPoint& remote_end_point, | 22 const net::IPEndPoint& remote_end_point, |
23 const media::cast::transport::CastTransportStatusCallback& status_cb, | 23 const media::cast::CastTransportStatusCallback& status_cb, |
24 const media::cast::transport::BulkRawEventsCallback& raw_events_cb); | 24 const media::cast::BulkRawEventsCallback& raw_events_cb); |
25 | 25 |
26 virtual ~CastTransportSenderIPC(); | 26 virtual ~CastTransportSenderIPC(); |
27 | 27 |
28 // media::cast::transport::CastTransportSender implementation. | 28 // media::cast::CastTransportSender implementation. |
29 virtual void SetPacketReceiver( | 29 virtual void SetPacketReceiver( |
30 const media::cast::transport::PacketReceiverCallback& packet_callback) | 30 const media::cast::PacketReceiverCallback& packet_callback) |
31 OVERRIDE; | 31 OVERRIDE; |
32 virtual void InitializeAudio( | 32 virtual void InitializeAudio( |
33 const media::cast::transport::CastTransportRtpConfig& config) OVERRIDE; | 33 const media::cast::CastTransportRtpConfig& config) OVERRIDE; |
34 virtual void InitializeVideo( | 34 virtual void InitializeVideo( |
35 const media::cast::transport::CastTransportRtpConfig& config) OVERRIDE; | 35 const media::cast::CastTransportRtpConfig& config) OVERRIDE; |
36 virtual void InsertCodedAudioFrame( | 36 virtual void InsertCodedAudioFrame( |
37 const media::cast::transport::EncodedFrame& audio_frame) OVERRIDE; | 37 const media::cast::EncodedFrame& audio_frame) OVERRIDE; |
38 virtual void InsertCodedVideoFrame( | 38 virtual void InsertCodedVideoFrame( |
39 const media::cast::transport::EncodedFrame& video_frame) OVERRIDE; | 39 const media::cast::EncodedFrame& video_frame) OVERRIDE; |
40 virtual void SendRtcpFromRtpSender( | 40 virtual void SendRtcpFromRtpSender( |
41 uint32 packet_type_flags, | 41 uint32 packet_type_flags, |
42 uint32 ntp_seconds, | 42 uint32 ntp_seconds, |
43 uint32 ntp_fraction, | 43 uint32 ntp_fraction, |
44 uint32 rtp_timestamp, | 44 uint32 rtp_timestamp, |
45 const media::cast::transport::RtcpDlrrReportBlock& dlrr, | 45 const media::cast::RtcpDlrrReportBlock& dlrr, |
46 uint32 sending_ssrc, | 46 uint32 sending_ssrc, |
47 const std::string& c_name) OVERRIDE; | 47 const std::string& c_name) OVERRIDE; |
48 virtual void ResendPackets( | 48 virtual void ResendPackets( |
49 bool is_audio, | 49 bool is_audio, |
50 const media::cast::transport::MissingFramesAndPacketsMap& missing_packets, | 50 const media::cast::MissingFramesAndPacketsMap& missing_packets, |
51 bool cancel_rtx_if_not_in_list, | 51 bool cancel_rtx_if_not_in_list, |
52 base::TimeDelta dedupe_window) | 52 base::TimeDelta dedupe_window) |
53 OVERRIDE; | 53 OVERRIDE; |
54 | 54 |
55 void OnReceivedPacket(const media::cast::transport::Packet& packet); | 55 void OnReceivedPacket(const media::cast::Packet& packet); |
56 void OnNotifyStatusChange( | 56 void OnNotifyStatusChange( |
57 media::cast::transport::CastTransportStatus status); | 57 media::cast::CastTransportStatus status); |
58 void OnRawEvents(const std::vector<media::cast::PacketEvent>& packet_events); | 58 void OnRawEvents(const std::vector<media::cast::PacketEvent>& packet_events); |
59 | 59 |
60 private: | 60 private: |
61 void Send(IPC::Message* message); | 61 void Send(IPC::Message* message); |
62 | 62 |
63 int32 channel_id_; | 63 int32 channel_id_; |
64 media::cast::transport::PacketReceiverCallback packet_callback_; | 64 media::cast::PacketReceiverCallback packet_callback_; |
65 media::cast::transport::CastTransportStatusCallback status_callback_; | 65 media::cast::CastTransportStatusCallback status_callback_; |
66 media::cast::transport::BulkRawEventsCallback raw_events_callback_; | 66 media::cast::BulkRawEventsCallback raw_events_callback_; |
67 | 67 |
68 DISALLOW_COPY_AND_ASSIGN(CastTransportSenderIPC); | 68 DISALLOW_COPY_AND_ASSIGN(CastTransportSenderIPC); |
69 }; | 69 }; |
70 | 70 |
71 #endif // CHROME_RENDERER_MEDIA_CAST_TRANSPORT_SENDER_IPC_H_ | 71 #endif // CHROME_RENDERER_MEDIA_CAST_TRANSPORT_SENDER_IPC_H_ |
OLD | NEW |