Index: media/filters/source_buffer_range.cc |
diff --git a/media/filters/source_buffer_range.cc b/media/filters/source_buffer_range.cc |
index 562e14e0964a4ebdaf438598a6de4670732b2b79..a2b6e8221d2d2129758d9f42ef0626b5812e4da1 100644 |
--- a/media/filters/source_buffer_range.cc |
+++ b/media/filters/source_buffer_range.cc |
@@ -22,9 +22,10 @@ static bool CompareStreamParserBufferToTimeDelta( |
return buffer->GetDecodeTimestamp() < decode_timestamp; |
} |
-bool SourceBufferRange::AllowSameTimestamp( |
- bool prev_is_keyframe, bool current_is_keyframe) { |
- return prev_is_keyframe || !current_is_keyframe; |
+bool SourceBufferRange::IsUncommonSameTimestampSequence( |
+ bool prev_is_keyframe, |
+ bool current_is_keyframe) { |
+ return current_is_keyframe && !prev_is_keyframe; |
chcunningham
2016/02/09 00:21:08
Just to note: I wasn't sure how (un)common this is
wolenetz
2016/02/09 00:47:19
Acknowledged.
|
} |
SourceBufferRange::SourceBufferRange( |
@@ -487,14 +488,13 @@ bool SourceBufferRange::CanAppendRangeToEnd( |
bool SourceBufferRange::CanAppendBuffersToEnd( |
const BufferQueue& buffers) const { |
DCHECK(!buffers_.empty()); |
- return IsNextInSequence(buffers.front()->GetDecodeTimestamp(), |
- buffers.front()->is_key_frame()); |
+ return IsNextInSequence(buffers.front()->GetDecodeTimestamp()); |
} |
bool SourceBufferRange::BelongsToRange(DecodeTimestamp timestamp) const { |
DCHECK(!buffers_.empty()); |
- return (IsNextInSequence(timestamp, false) || |
+ return (IsNextInSequence(timestamp) || |
(GetStartTimestamp() <= timestamp && timestamp <= GetEndTimestamp())); |
} |
@@ -570,17 +570,11 @@ DecodeTimestamp SourceBufferRange::KeyframeBeforeTimestamp( |
return GetFirstKeyframeAtOrBefore(timestamp)->first; |
} |
-bool SourceBufferRange::IsNextInSequence( |
- DecodeTimestamp timestamp, bool is_key_frame) const { |
+bool SourceBufferRange::IsNextInSequence(DecodeTimestamp timestamp) const { |
DecodeTimestamp end = buffers_.back()->GetDecodeTimestamp(); |
- if (end < timestamp && |
- (gap_policy_ == ALLOW_GAPS || |
- timestamp <= end + GetFudgeRoom())) { |
- return true; |
- } |
- |
- return timestamp == end && AllowSameTimestamp( |
- buffers_.back()->is_key_frame(), is_key_frame); |
+ return (end == timestamp || |
+ (end < timestamp && |
+ (gap_policy_ == ALLOW_GAPS || timestamp <= end + GetFudgeRoom()))); |
} |
base::TimeDelta SourceBufferRange::GetFudgeRoom() const { |