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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 int32_t ReceiveCodecStatistics(uint32_t* num_key_frames, | 135 int32_t ReceiveCodecStatistics(uint32_t* num_key_frames, |
136 uint32_t* num_delta_frames); | 136 uint32_t* num_delta_frames); |
137 uint32_t DiscardedPackets() const; | 137 uint32_t DiscardedPackets() const; |
138 | 138 |
139 // Returns the estimated delay in milliseconds. | 139 // Returns the estimated delay in milliseconds. |
140 int ReceiveDelay() const; | 140 int ReceiveDelay() const; |
141 | 141 |
142 // Only affects calls to SetReceiveCodec done after this call. | 142 // Only affects calls to SetReceiveCodec done after this call. |
143 int32_t WaitForKeyFrame(bool wait); | 143 int32_t WaitForKeyFrame(bool wait); |
144 | 144 |
145 // If enabled, a key frame request will be sent as soon as there are lost | |
146 // packets. If |only_key_frames| are set, requests are only sent for loss in | |
147 // key frames. | |
148 int32_t SetSignalPacketLossStatus(bool enable, bool only_key_frames); | |
149 | |
150 void SetRTCPMode(const RTCPMethod rtcp_mode); | 145 void SetRTCPMode(const RTCPMethod rtcp_mode); |
151 int32_t SetNACKStatus(const bool enable); | 146 void SetProtectionMode(bool enable_nack, |
152 int32_t SetFECStatus(const bool enable, | 147 bool enable_fec, |
153 const unsigned char payload_typeRED, | 148 int payload_type_red, |
154 const unsigned char payload_typeFEC); | 149 int payload_type_fec); |
155 int32_t SetHybridNACKFECStatus(const bool enable, | |
156 const unsigned char payload_typeRED, | |
157 const unsigned char payload_typeFEC); | |
158 bool IsSendingFecEnabled(); | 150 bool IsSendingFecEnabled(); |
159 int SetSenderBufferingMode(int target_delay_ms); | 151 int SetSenderBufferingMode(int target_delay_ms); |
160 int SetReceiverBufferingMode(int target_delay_ms); | 152 int SetReceiverBufferingMode(int target_delay_ms); |
161 int32_t SetKeyFrameRequestMethod(const KeyFrameRequestMethod method); | 153 int32_t SetKeyFrameRequestMethod(const KeyFrameRequestMethod method); |
162 void EnableRemb(bool enable); | 154 void EnableRemb(bool enable); |
163 int SetSendTimestampOffsetStatus(bool enable, int id); | 155 int SetSendTimestampOffsetStatus(bool enable, int id); |
164 int SetReceiveTimestampOffsetStatus(bool enable, int id); | 156 int SetReceiveTimestampOffsetStatus(bool enable, int id); |
165 int SetSendAbsoluteSendTimeStatus(bool enable, int id); | 157 int SetSendAbsoluteSendTimeStatus(bool enable, int id); |
166 int SetReceiveAbsoluteSendTimeStatus(bool enable, int id); | 158 int SetReceiveAbsoluteSendTimeStatus(bool enable, int id); |
167 int SetSendVideoRotationStatus(bool enable, int id); | 159 int SetSendVideoRotationStatus(bool enable, int id); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 void ReserveRtpRtcpModules(size_t total_modules) | 350 void ReserveRtpRtcpModules(size_t total_modules) |
359 EXCLUSIVE_LOCKS_REQUIRED(rtp_rtcp_cs_); | 351 EXCLUSIVE_LOCKS_REQUIRED(rtp_rtcp_cs_); |
360 RtpRtcp* GetRtpRtcpModule(size_t simulcast_idx) const | 352 RtpRtcp* GetRtpRtcpModule(size_t simulcast_idx) const |
361 EXCLUSIVE_LOCKS_REQUIRED(rtp_rtcp_cs_); | 353 EXCLUSIVE_LOCKS_REQUIRED(rtp_rtcp_cs_); |
362 RtpRtcp::Configuration CreateRtpRtcpConfiguration(); | 354 RtpRtcp::Configuration CreateRtpRtcpConfiguration(); |
363 RtpRtcp* CreateRtpRtcpModule(); | 355 RtpRtcp* CreateRtpRtcpModule(); |
364 // Assumed to be protected. | 356 // Assumed to be protected. |
365 void StartDecodeThread(); | 357 void StartDecodeThread(); |
366 void StopDecodeThread(); | 358 void StopDecodeThread(); |
367 | 359 |
368 int32_t ProcessNACKRequest(const bool enable); | 360 void ProcessNACKRequest(const bool enable); |
369 int32_t ProcessFECRequest(const bool enable, | |
370 const unsigned char payload_typeRED, | |
371 const unsigned char payload_typeFEC); | |
372 // Compute NACK list parameters for the buffering mode. | 361 // Compute NACK list parameters for the buffering mode. |
373 int GetRequiredNackListSize(int target_delay_ms); | 362 int GetRequiredNackListSize(int target_delay_ms); |
374 void SetRtxSendStatus(bool enable); | 363 void SetRtxSendStatus(bool enable); |
375 | 364 |
376 void UpdateHistograms(); | 365 void UpdateHistograms(); |
377 | 366 |
378 // ViEChannel exposes methods that allow to modify observers and callbacks | 367 // ViEChannel exposes methods that allow to modify observers and callbacks |
379 // to be modified. Such an API-style is cumbersome to implement and maintain | 368 // to be modified. Such an API-style is cumbersome to implement and maintain |
380 // at all the levels when comparing to only setting them at construction. As | 369 // at all the levels when comparing to only setting them at construction. As |
381 // so this class instantiates its children with a wrapper that can be modified | 370 // so this class instantiates its children with a wrapper that can be modified |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
487 // Not owned. | 476 // Not owned. |
488 VCMReceiveStatisticsCallback* vcm_receive_stats_callback_ | 477 VCMReceiveStatisticsCallback* vcm_receive_stats_callback_ |
489 GUARDED_BY(callback_cs_); | 478 GUARDED_BY(callback_cs_); |
490 FrameCounts receive_frame_counts_ GUARDED_BY(callback_cs_); | 479 FrameCounts receive_frame_counts_ GUARDED_BY(callback_cs_); |
491 IncomingVideoStream* incoming_video_stream_ GUARDED_BY(callback_cs_); | 480 IncomingVideoStream* incoming_video_stream_ GUARDED_BY(callback_cs_); |
492 ProcessThread& module_process_thread_; | 481 ProcessThread& module_process_thread_; |
493 ViEDecoderObserver* codec_observer_; | 482 ViEDecoderObserver* codec_observer_; |
494 bool do_key_frame_callbackRequest_; | 483 bool do_key_frame_callbackRequest_; |
495 RtcpIntraFrameObserver* intra_frame_observer_; | 484 RtcpIntraFrameObserver* intra_frame_observer_; |
496 RtcpRttStats* rtt_stats_; | 485 RtcpRttStats* rtt_stats_; |
497 PacedSender* paced_sender_; | 486 PacedSender* const paced_sender_; |
498 PacketRouter* packet_router_; | 487 PacketRouter* packet_router_; |
499 | 488 |
500 rtc::scoped_ptr<RtcpBandwidthObserver> bandwidth_observer_; | 489 rtc::scoped_ptr<RtcpBandwidthObserver> bandwidth_observer_; |
501 int send_timestamp_extension_id_; | 490 int send_timestamp_extension_id_; |
502 int absolute_send_time_extension_id_; | 491 int absolute_send_time_extension_id_; |
503 int video_rotation_extension_id_; | 492 int video_rotation_extension_id_; |
504 | 493 |
505 Transport* const transport_; | 494 Transport* const transport_; |
506 | 495 |
507 bool decoder_reset_; | 496 bool decoder_reset_; |
(...skipping 11 matching lines...) Expand all Loading... |
519 int nack_history_size_sender_; | 508 int nack_history_size_sender_; |
520 int max_nack_reordering_threshold_; | 509 int max_nack_reordering_threshold_; |
521 I420FrameCallback* pre_render_callback_; | 510 I420FrameCallback* pre_render_callback_; |
522 | 511 |
523 rtc::scoped_ptr<ReportBlockStats> report_block_stats_sender_; | 512 rtc::scoped_ptr<ReportBlockStats> report_block_stats_sender_; |
524 }; | 513 }; |
525 | 514 |
526 } // namespace webrtc | 515 } // namespace webrtc |
527 | 516 |
528 #endif // WEBRTC_VIDEO_ENGINE_VIE_CHANNEL_H_ | 517 #endif // WEBRTC_VIDEO_ENGINE_VIE_CHANNEL_H_ |
OLD | NEW |