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 base class for an object that send frames to a receiver. | 5 // This is the base class for an object that send frames to a receiver. |
6 // TODO(hclam): Refactor such that there is no separate AudioSender vs. | 6 // TODO(hclam): Refactor such that there is no separate AudioSender vs. |
7 // VideoSender, and the functionality of both is rolled into this class. | 7 // VideoSender, and the functionality of both is rolled into this class. |
8 | 8 |
9 #ifndef MEDIA_CAST_SENDER_FRAME_SENDER_H_ | 9 #ifndef MEDIA_CAST_SENDER_FRAME_SENDER_H_ |
10 #define MEDIA_CAST_SENDER_FRAME_SENDER_H_ | 10 #define MEDIA_CAST_SENDER_FRAME_SENDER_H_ |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 base::TimeDelta target_playout_delay_; | 118 base::TimeDelta target_playout_delay_; |
119 base::TimeDelta min_playout_delay_; | 119 base::TimeDelta min_playout_delay_; |
120 base::TimeDelta max_playout_delay_; | 120 base::TimeDelta max_playout_delay_; |
121 | 121 |
122 // If true, we transmit the target playout delay to the receiver. | 122 // If true, we transmit the target playout delay to the receiver. |
123 bool send_target_playout_delay_; | 123 bool send_target_playout_delay_; |
124 | 124 |
125 // Max encoded frames generated per second. | 125 // Max encoded frames generated per second. |
126 double max_frame_rate_; | 126 double max_frame_rate_; |
127 | 127 |
128 // Maximum number of outstanding frames before the encoding and sending of | |
129 // new frames shall halt. | |
130 int max_unacked_frames_; | |
131 | |
132 // Counts how many RTCP reports are being "aggressively" sent (i.e., one per | 128 // Counts how many RTCP reports are being "aggressively" sent (i.e., one per |
133 // frame) at the start of the session. Once a threshold is reached, RTCP | 129 // frame) at the start of the session. Once a threshold is reached, RTCP |
134 // reports are instead sent at the configured interval + random drift. | 130 // reports are instead sent at the configured interval + random drift. |
135 int num_aggressive_rtcp_reports_sent_; | 131 int num_aggressive_rtcp_reports_sent_; |
136 | 132 |
137 // This is "null" until the first frame is sent. Thereafter, this tracks the | 133 // This is "null" until the first frame is sent. Thereafter, this tracks the |
138 // last time any frame was sent or re-sent. | 134 // last time any frame was sent or re-sent. |
139 base::TimeTicks last_send_time_; | 135 base::TimeTicks last_send_time_; |
140 | 136 |
141 // The ID of the last frame sent. Logic throughout FrameSender assumes this | 137 // The ID of the last frame sent. Logic throughout FrameSender assumes this |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 // NOTE: Weak pointers must be invalidated before all other member variables. | 180 // NOTE: Weak pointers must be invalidated before all other member variables. |
185 base::WeakPtrFactory<FrameSender> weak_factory_; | 181 base::WeakPtrFactory<FrameSender> weak_factory_; |
186 | 182 |
187 DISALLOW_COPY_AND_ASSIGN(FrameSender); | 183 DISALLOW_COPY_AND_ASSIGN(FrameSender); |
188 }; | 184 }; |
189 | 185 |
190 } // namespace cast | 186 } // namespace cast |
191 } // namespace media | 187 } // namespace media |
192 | 188 |
193 #endif // MEDIA_CAST_SENDER_FRAME_SENDER_H_ | 189 #endif // MEDIA_CAST_SENDER_FRAME_SENDER_H_ |
OLD | NEW |