OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 bool buffered_rendering, | 129 bool buffered_rendering, |
130 int32_t render_delay); | 130 int32_t render_delay); |
131 int32_t DeRegisterExternalDecoder(const uint8_t pl_type); | 131 int32_t DeRegisterExternalDecoder(const uint8_t pl_type); |
132 int32_t ReceiveCodecStatistics(uint32_t* num_key_frames, | 132 int32_t ReceiveCodecStatistics(uint32_t* num_key_frames, |
133 uint32_t* num_delta_frames); | 133 uint32_t* num_delta_frames); |
134 uint32_t DiscardedPackets() const; | 134 uint32_t DiscardedPackets() const; |
135 | 135 |
136 // Returns the estimated delay in milliseconds. | 136 // Returns the estimated delay in milliseconds. |
137 int ReceiveDelay() const; | 137 int ReceiveDelay() const; |
138 | 138 |
139 // If enabled, a key frame request will be sent as soon as there are lost | |
140 // packets. If |only_key_frames| are set, requests are only sent for loss in | |
141 // key frames. | |
142 int32_t SetSignalPacketLossStatus(bool enable, bool only_key_frames); | |
143 | |
144 void SetRTCPMode(const RTCPMethod rtcp_mode); | 139 void SetRTCPMode(const RTCPMethod rtcp_mode); |
145 int32_t SetNACKStatus(const bool enable); | 140 void SetProtectionMode(bool enable_nack, |
146 int32_t SetFECStatus(const bool enable, | 141 bool enable_fec, |
147 const unsigned char payload_typeRED, | 142 int payload_type_red, |
148 const unsigned char payload_typeFEC); | 143 int payload_type_fec); |
149 int32_t SetHybridNACKFECStatus(const bool enable, | |
150 const unsigned char payload_typeRED, | |
151 const unsigned char payload_typeFEC); | |
152 bool IsSendingFecEnabled(); | 144 bool IsSendingFecEnabled(); |
153 int SetSenderBufferingMode(int target_delay_ms); | 145 int SetSenderBufferingMode(int target_delay_ms); |
154 int SetReceiverBufferingMode(int target_delay_ms); | 146 int SetReceiverBufferingMode(int target_delay_ms); |
155 int32_t SetKeyFrameRequestMethod(const KeyFrameRequestMethod method); | 147 int32_t SetKeyFrameRequestMethod(const KeyFrameRequestMethod method); |
156 void EnableRemb(bool enable); | 148 void EnableRemb(bool enable); |
157 int SetSendTimestampOffsetStatus(bool enable, int id); | 149 int SetSendTimestampOffsetStatus(bool enable, int id); |
158 int SetReceiveTimestampOffsetStatus(bool enable, int id); | 150 int SetReceiveTimestampOffsetStatus(bool enable, int id); |
159 int SetSendAbsoluteSendTimeStatus(bool enable, int id); | 151 int SetSendAbsoluteSendTimeStatus(bool enable, int id); |
160 int SetReceiveAbsoluteSendTimeStatus(bool enable, int id); | 152 int SetReceiveAbsoluteSendTimeStatus(bool enable, int id); |
161 int SetSendVideoRotationStatus(bool enable, int id); | 153 int SetSendVideoRotationStatus(bool enable, int id); |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 PacedSender* paced_sender, | 339 PacedSender* paced_sender, |
348 BitrateStatisticsObserver* send_bitrate_observer, | 340 BitrateStatisticsObserver* send_bitrate_observer, |
349 FrameCountObserver* send_frame_count_observer, | 341 FrameCountObserver* send_frame_count_observer, |
350 SendSideDelayObserver* send_side_delay_observer, | 342 SendSideDelayObserver* send_side_delay_observer, |
351 size_t num_modules); | 343 size_t num_modules); |
352 | 344 |
353 // Assumed to be protected. | 345 // Assumed to be protected. |
354 void StartDecodeThread(); | 346 void StartDecodeThread(); |
355 void StopDecodeThread(); | 347 void StopDecodeThread(); |
356 | 348 |
357 int32_t ProcessNACKRequest(const bool enable); | 349 void ProcessNACKRequest(const bool enable); |
358 int32_t ProcessFECRequest(const bool enable, | |
359 const unsigned char payload_typeRED, | |
360 const unsigned char payload_typeFEC); | |
361 // Compute NACK list parameters for the buffering mode. | 350 // Compute NACK list parameters for the buffering mode. |
362 int GetRequiredNackListSize(int target_delay_ms); | 351 int GetRequiredNackListSize(int target_delay_ms); |
363 void SetRtxSendStatus(bool enable); | 352 void SetRtxSendStatus(bool enable); |
364 | 353 |
365 void UpdateHistograms(); | 354 void UpdateHistograms(); |
366 | 355 |
367 // ViEChannel exposes methods that allow to modify observers and callbacks | 356 // ViEChannel exposes methods that allow to modify observers and callbacks |
368 // to be modified. Such an API-style is cumbersome to implement and maintain | 357 // to be modified. Such an API-style is cumbersome to implement and maintain |
369 // at all the levels when comparing to only setting them at construction. As | 358 // at all the levels when comparing to only setting them at construction. As |
370 // so this class instantiates its children with a wrapper that can be modified | 359 // so this class instantiates its children with a wrapper that can be modified |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 const rtc::scoped_ptr<ReportBlockStats> report_block_stats_sender_; | 488 const rtc::scoped_ptr<ReportBlockStats> report_block_stats_sender_; |
500 | 489 |
501 // RtpRtcp modules, declared last as they use other members on construction. | 490 // RtpRtcp modules, declared last as they use other members on construction. |
502 const std::vector<RtpRtcp*> rtp_rtcp_modules_; | 491 const std::vector<RtpRtcp*> rtp_rtcp_modules_; |
503 size_t num_active_rtp_rtcp_modules_ GUARDED_BY(crit_); | 492 size_t num_active_rtp_rtcp_modules_ GUARDED_BY(crit_); |
504 }; | 493 }; |
505 | 494 |
506 } // namespace webrtc | 495 } // namespace webrtc |
507 | 496 |
508 #endif // WEBRTC_VIDEO_ENGINE_VIE_CHANNEL_H_ | 497 #endif // WEBRTC_VIDEO_ENGINE_VIE_CHANNEL_H_ |
OLD | NEW |