Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(430)

Side by Side Diff: webrtc/video_engine/vie_channel.h

Issue 1226143013: Merge methods for configuring NACK/FEC/hybrid. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Remove distinction between send and receive NACK. Allow disabling receive-side. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698