Refactor NACK list creation to build the NACK list as packets arrive.
Also fixes a timer bug related to NACKing in the RTP module which could cause packets to only be NACKed twice if there's frequent packet losses. Note that I decided to remove any selective NACKing for now as I don't think the gain of doing it is big enough compared to the added complexity. The same reasoning for empty packets. None of them will be retransmitted by a smart sender since the sender would know that they aren't needed. BUG=1420 TEST=video_coding_unittests, vie_auto_test, video_coding_integrationtests, trybots Review URL: https://webrtc-codereview.appspot.com/1115006 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3599 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -58,11 +58,14 @@ class VCMReceiver {
|
||||
uint32_t DiscardedPackets() const;
|
||||
|
||||
// NACK.
|
||||
void SetNackMode(VCMNackMode nackMode);
|
||||
void SetNackMode(VCMNackMode nackMode,
|
||||
int low_rtt_nack_threshold_ms,
|
||||
int high_rtt_nack_threshold_ms);
|
||||
void SetNackSettings(size_t max_nack_list_size,
|
||||
int max_packet_age_to_nack);
|
||||
VCMNackMode NackMode() const;
|
||||
VCMNackStatus NackList(uint16_t* nackList, uint16_t* size);
|
||||
VCMNackStatus NackList(uint16_t* nackList, uint16_t size,
|
||||
uint16_t* nack_list_length);
|
||||
|
||||
// Dual decoder.
|
||||
bool DualDecoderCaughtUp(VCMEncodedFrame* dual_frame,
|
||||
|
||||
Reference in New Issue
Block a user