Fix for making sure that the packet in order checks are done prior to updating the last received packet state.

Without this fix all packets are considered out-of-order by the rtp receiver, causing the last received state
in the rtp receiver to never get valid.

Also makes sure that only valid timestamps and receive times are used for audio/video sync.

BUG=2608
R=mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5102 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
stefan@webrtc.org
2013-11-08 15:18:52 +00:00
parent bff9620116
commit 48df38114d
9 changed files with 54 additions and 31 deletions

View File

@ -58,8 +58,8 @@ class RtpReceiverImpl : public RtpReceiver {
void SetNACKStatus(const NACKMethod method);
// Returns the last received timestamp.
virtual uint32_t Timestamp() const;
int32_t LastReceivedTimeMs() const;
bool Timestamp(uint32_t* timestamp) const;
bool LastReceivedTimeMs(int64_t* receive_time_ms) const;
uint32_t SSRC() const;
@ -77,6 +77,8 @@ class RtpReceiverImpl : public RtpReceiver {
TelephoneEventHandler* GetTelephoneEventHandler();
private:
bool HaveReceivedFrame() const;
RtpVideoCodecTypes VideoCodecType() const;
void CheckSSRCChanged(const RTPHeader& rtp_header);