Refactor jitter buffer to use separate lists for decodable and incomplete frames.
This changes the design of the jitter buffer to keeping track of decodable frames from the point when packets are inserted in the buffer, instead of searching for decodable frames when they are needed. To accomplish this the frame_list_, which previously contained all frames (incomplete or complete, continuous or not), is split into a list of decodable_frames_ (complete, continuous) and a list of incomplete_frames_ (either incomplete or non-continuous). These frame lists are updated every time a packet is inserted. This is another step in the direction of doing most of the work in the jitter buffer only once, when packets are inserted, instead of doing it every time we look for a frame or try to get a nack list. BUG=1798 TEST=vie_auto_test, trybots R=mikhal@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1522005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4104 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -32,7 +32,7 @@ class VCMDecodingState {
|
||||
bool ContinuousFrame(const VCMFrameBuffer* frame) const;
|
||||
void SetState(const VCMFrameBuffer* frame);
|
||||
void CopyFrom(const VCMDecodingState& state);
|
||||
void UpdateEmptyFrame(const VCMFrameBuffer* frame);
|
||||
bool UpdateEmptyFrame(const VCMFrameBuffer* frame);
|
||||
// Update the sequence number if the timestamp matches current state and the
|
||||
// sequence number is higher than the current one. This accounts for packets
|
||||
// arriving late.
|
||||
|
Reference in New Issue
Block a user