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

Unified Diff: webrtc/modules/video_coding/rtp_frame_reference_finder.h

Issue 2480293002: New jitter buffer experiment. (Closed)
Patch Set: Nit fix. Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/rtp_frame_reference_finder.h
diff --git a/webrtc/modules/video_coding/rtp_frame_reference_finder.h b/webrtc/modules/video_coding/rtp_frame_reference_finder.h
index e9e7d60a33155764719d992ff44511f8ab2e47c8..db1ddf80725b2e638744d467a54ac0e27bad3ad5 100644
--- a/webrtc/modules/video_coding/rtp_frame_reference_finder.h
+++ b/webrtc/modules/video_coding/rtp_frame_reference_finder.h
@@ -57,12 +57,12 @@ class RtpFrameReferenceFinder {
void ClearTo(uint16_t seq_num);
private:
- static const uint16_t kPicIdLength = 1 << 7;
+ static const uint16_t kPicIdLength = 1 << 15;
static const uint8_t kMaxTemporalLayers = 5;
- static const int kMaxLayerInfo = 10;
- static const int kMaxStashedFrames = 10;
- static const int kMaxNotYetReceivedFrames = 20;
- static const int kMaxGofSaved = 15;
+ static const int kMaxLayerInfo = 50;
+ static const int kMaxStashedFrames = 50;
+ static const int kMaxNotYetReceivedFrames = 100;
+ static const int kMaxGofSaved = 50;
static const int kMaxPaddingAge = 100;
@@ -129,6 +129,24 @@ class RtpFrameReferenceFinder {
// All picture ids are unwrapped to 16 bits.
uint16_t UnwrapPictureId(uint16_t picture_id) EXCLUSIVE_LOCKS_REQUIRED(crit_);
+ // Returns true if the frame is old and should be dropped.
+ // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
+ // around M59).
+ bool Vp9PidTl0Fix(const RtpFrameObject& frame,
+ int16_t* picture_id,
+ int16_t* tl0_pic_idx) EXCLUSIVE_LOCKS_REQUIRED(crit_);
+
+ // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
+ // around M59).
+ bool DetectVp9PicIdJump(int fixed_pid,
+ int fixed_tl0,
+ uint32_t timestamp) const
+ EXCLUSIVE_LOCKS_REQUIRED(crit_);
+
+ // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
+ // around M59).
+ bool DetectVp9Tl0PicIdxJump(int fixed_tl0, uint32_t timestamp) const
+ EXCLUSIVE_LOCKS_REQUIRED(crit_);
// For every group of pictures, hold two sequence numbers. The first being
// the sequence number of the last packet of the last completed frame, and
@@ -196,6 +214,15 @@ class RtpFrameReferenceFinder {
int cleared_to_seq_num_ GUARDED_BY(crit_);
OnCompleteFrameCallback* frame_callback_;
+
+ // Vp9PidFix variables
+ // TODO(philipel): Remove when VP9 PID does not jump mid-stream.
+ int vp9_fix_last_timestamp_ = -1;
+ int vp9_fix_jump_timestamp_ = -1;
+ int vp9_fix_last_picture_id_ = -1;
+ int vp9_fix_pid_offset_ = 0;
+ int vp9_fix_last_tl0_pic_idx_ = -1;
+ int vp9_fix_tl0_pic_idx_offset_ = 0;
};
} // namespace video_coding

Powered by Google App Engine
This is Rietveld 408576698