Index: media/filters/source_buffer_range.cc |
diff --git a/media/filters/source_buffer_range.cc b/media/filters/source_buffer_range.cc |
index dcade63f9221f1ad530057efc4b6c6c9cf6ab9e9..f07cae6c5e0fe19f7b28f7e3bc7e8d9990f4724d 100644 |
--- a/media/filters/source_buffer_range.cc |
+++ b/media/filters/source_buffer_range.cc |
@@ -106,6 +106,45 @@ void SourceBufferRange::Seek(DecodeTimestamp timestamp) { |
<< next_buffer_index_ << ", size = " << buffers_.size(); |
} |
+int SourceBufferRange::GetConfigIdAtTime(DecodeTimestamp timestamp) { |
+ DCHECK(CanSeekTo(timestamp)); |
+ DCHECK(!keyframe_map_.empty()); |
+ |
+ KeyframeMap::iterator result = GetFirstKeyframeAtOrBefore(timestamp); |
+ size_t buffer_index = result->second - keyframe_map_index_base_; |
+ CHECK_LT(buffer_index, buffers_.size()) << buffer_index |
+ << ", size = " << buffers_.size(); |
+ |
+ return buffers_[buffer_index]->GetSpliceBufferConfigId(0); |
+} |
+ |
+bool SourceBufferRange::SameConfigThruRange(DecodeTimestamp start, |
+ DecodeTimestamp end) { |
+ DCHECK(CanSeekTo(start)); |
+ DCHECK(CanSeekTo(end)); |
+ DCHECK(start <= end); |
+ DCHECK(!keyframe_map_.empty()); |
+ |
+ if (start == end) |
+ return true; |
wolenetz
2016/07/25 21:49:02
What if the buffer at this time contains splice bu
chcunningham
2016/12/01 17:07:16
Splicing is gone. Now just checking the config ID
wolenetz
2016/12/02 00:18:49
Acknowledged.
|
+ |
+ KeyframeMap::const_iterator result = GetFirstKeyframeAtOrBefore(start); |
+ size_t buffer_index = result->second - keyframe_map_index_base_; |
+ CHECK_LT(buffer_index, buffers_.size()) << buffer_index |
+ << ", size = " << buffers_.size(); |
+ |
+ int start_config = buffers_[buffer_index]->GetSpliceBufferConfigId(0); |
+ buffer_index++; |
+ while (buffer_index < buffers_.size() && |
+ buffers_[buffer_index]->GetDecodeTimestamp() <= end) { |
+ if (buffers_[buffer_index]->GetSpliceBufferConfigId(0) != start_config) |
wolenetz
2016/07/25 21:49:02
Ditto: if there is a splice buffer, it/they could
chcunningham
2016/12/01 17:07:16
Ditto.
wolenetz
2016/12/02 00:18:49
Acknowledged.
|
+ return false; |
+ buffer_index++; |
+ } |
+ |
+ return true; |
+} |
+ |
void SourceBufferRange::SeekAheadTo(DecodeTimestamp timestamp) { |
SeekAhead(timestamp, false); |
} |