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 // This is the main interface for the cast transport sender. It accepts encoded | 5 // This is the main interface for the cast transport sender. It accepts encoded |
6 // frames (both audio and video), encrypts their encoded data, packetizes them | 6 // frames (both audio and video), encrypts their encoded data, packetizes them |
7 // and feeds them into a transport (e.g., UDP). | 7 // and feeds them into a transport (e.g., UDP). |
8 | 8 |
9 // Construction of the Cast Sender and the Cast Transport Sender should be done | 9 // Construction of the Cast Sender and the Cast Transport Sender should be done |
10 // in the following order: | 10 // in the following order: |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 scoped_ptr<PacketSender> transport, | 88 scoped_ptr<PacketSender> transport, |
89 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner); | 89 const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner); |
90 | 90 |
91 virtual ~CastTransportSender() {} | 91 virtual ~CastTransportSender() {} |
92 | 92 |
93 // Audio/Video initialization. | 93 // Audio/Video initialization. |
94 // Encoded frames cannot be transmitted until the relevant initialize method | 94 // Encoded frames cannot be transmitted until the relevant initialize method |
95 // is called. | 95 // is called. |
96 virtual void InitializeAudio(const CastTransportRtpConfig& config, | 96 virtual void InitializeAudio(const CastTransportRtpConfig& config, |
97 const RtcpCastMessageCallback& cast_message_cb, | 97 const RtcpCastMessageCallback& cast_message_cb, |
98 const RtcpRttCallback& rtt_cb) = 0; | 98 const RtcpRttCallback& rtt_cb, |
| 99 const RtcpPliCallback& pli_cb) = 0; |
99 virtual void InitializeVideo(const CastTransportRtpConfig& config, | 100 virtual void InitializeVideo(const CastTransportRtpConfig& config, |
100 const RtcpCastMessageCallback& cast_message_cb, | 101 const RtcpCastMessageCallback& cast_message_cb, |
101 const RtcpRttCallback& rtt_cb) = 0; | 102 const RtcpRttCallback& rtt_cb, |
| 103 const RtcpPliCallback& pli_cb) = 0; |
102 | 104 |
103 // Encrypt, packetize and transmit |frame|. |ssrc| must refer to a | 105 // Encrypt, packetize and transmit |frame|. |ssrc| must refer to a |
104 // a channel already established with InitializeAudio / InitializeVideo. | 106 // a channel already established with InitializeAudio / InitializeVideo. |
105 virtual void InsertFrame(uint32_t ssrc, const EncodedFrame& frame) = 0; | 107 virtual void InsertFrame(uint32_t ssrc, const EncodedFrame& frame) = 0; |
106 | 108 |
107 // Sends a RTCP sender report to the receiver. | 109 // Sends a RTCP sender report to the receiver. |
108 // |ssrc| is the SSRC for this report. | 110 // |ssrc| is the SSRC for this report. |
109 // |current_time| is the current time reported by a tick clock. | 111 // |current_time| is the current time reported by a tick clock. |
110 // |current_time_as_rtp_timestamp| is the corresponding RTP timestamp. | 112 // |current_time_as_rtp_timestamp| is the corresponding RTP timestamp. |
111 virtual void SendSenderReport(uint32_t ssrc, | 113 virtual void SendSenderReport(uint32_t ssrc, |
(...skipping 26 matching lines...) Expand all Loading... |
138 // RTP receiver to RTP sender. | 140 // RTP receiver to RTP sender. |
139 | 141 |
140 // Initialize the RTCP builder on RTP receiver. This has to be called before | 142 // Initialize the RTCP builder on RTP receiver. This has to be called before |
141 // adding other optional RTCP messages to the packet. | 143 // adding other optional RTCP messages to the packet. |
142 virtual void InitializeRtpReceiverRtcpBuilder( | 144 virtual void InitializeRtpReceiverRtcpBuilder( |
143 uint32_t rtp_receiver_ssrc, | 145 uint32_t rtp_receiver_ssrc, |
144 const RtcpTimeData& time_data) = 0; | 146 const RtcpTimeData& time_data) = 0; |
145 | 147 |
146 virtual void AddCastFeedback(const RtcpCastMessage& cast_message, | 148 virtual void AddCastFeedback(const RtcpCastMessage& cast_message, |
147 base::TimeDelta target_delay) = 0; | 149 base::TimeDelta target_delay) = 0; |
| 150 virtual void AddPli(const RtcpPliMessage& pli_message) = 0; |
148 virtual void AddRtcpEvents( | 151 virtual void AddRtcpEvents( |
149 const ReceiverRtcpEventSubscriber::RtcpEvents& rtcp_events) = 0; | 152 const ReceiverRtcpEventSubscriber::RtcpEvents& rtcp_events) = 0; |
150 virtual void AddRtpReceiverReport( | 153 virtual void AddRtpReceiverReport( |
151 const RtcpReportBlock& rtp_report_block) = 0; | 154 const RtcpReportBlock& rtp_report_block) = 0; |
152 | 155 |
153 // Finalize the building of the RTCP packet and send out the built packet. | 156 // Finalize the building of the RTCP packet and send out the built packet. |
154 virtual void SendRtcpFromRtpReceiver() = 0; | 157 virtual void SendRtcpFromRtpReceiver() = 0; |
155 | 158 |
156 // Set options for the PacedSender and Wifi. | 159 // Set options for the PacedSender and Wifi. |
157 virtual void SetOptions(const base::DictionaryValue& options) = 0; | 160 virtual void SetOptions(const base::DictionaryValue& options) = 0; |
158 }; | 161 }; |
159 | 162 |
160 } // namespace cast | 163 } // namespace cast |
161 } // namespace media | 164 } // namespace media |
162 | 165 |
163 #endif // MEDIA_CAST_NET_CAST_TRANSPORT_SENDER_H_ | 166 #endif // MEDIA_CAST_NET_CAST_TRANSPORT_SENDER_H_ |
OLD | NEW |