Fixes two bugs related to padding in the jitter buffer.

- Pad packets (empty) were often NACKed even though they were received.
- Padding only frames (empty) were didn't properly update the decoding state,
  and would therefore be NACKed even though they were received.

TEST=trybots

BUG=1150

Review URL: https://webrtc-codereview.appspot.com/929031

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3183 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
stefan@webrtc.org
2012-11-28 19:36:20 +00:00
parent 891d55eb35
commit e4fb44c29d
8 changed files with 217 additions and 38 deletions

View File

@ -94,6 +94,13 @@ void VCMDecodingState::SetStateOneBack(const VCMFrameBuffer* frame) {
init_ = false;
}
void VCMDecodingState::UpdateEmptyFrame(const VCMFrameBuffer* frame) {
if (ContinuousFrame(frame) && frame->GetState() == kStateEmpty) {
time_stamp_ = frame->TimeStamp();
sequence_num_ = frame->GetHighSeqNum();
}
}
void VCMDecodingState::UpdateOldPacket(const VCMPacket* packet) {
assert(packet != NULL);
if (packet->timestamp == time_stamp_) {