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

Unified Diff: media/filters/source_buffer_stream.cc

Issue 10558011: Fix ChunkDemuxer so it properly outputs buffered ranges. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address more CR comments and added an end of stream test case. Created 8 years, 6 months 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
« no previous file with comments | « media/filters/source_buffer_stream.h ('k') | media/filters/source_buffer_stream_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/source_buffer_stream.cc
diff --git a/media/filters/source_buffer_stream.cc b/media/filters/source_buffer_stream.cc
index 47899ee2b2f25d8cc0f14fbb79aa6d2d7e1e0906..ffe9602c1235f380f8bc13b9f258f59a79f09185 100644
--- a/media/filters/source_buffer_stream.cc
+++ b/media/filters/source_buffer_stream.cc
@@ -86,13 +86,13 @@ class SourceBufferRange {
// if this range does not have the next buffer yet.
base::TimeDelta GetNextTimestamp() const;
+ // Returns the start timestamp of the range.
+ base::TimeDelta GetStartTimestamp() const;
+
// Returns the end timestamp of the buffered data. (Note that this is equal to
// the last buffer's timestamp + its duration.)
base::TimeDelta GetEndTimestamp() const;
- // Returns the Timespan of buffered time in this range.
- SourceBufferStream::Timespan GetBufferedTime() const;
-
// Returns whether a buffer with a starting timestamp of |timestamp| would
// belong in this range. This includes a buffer that would be appended to
// the end of the range.
@@ -119,9 +119,6 @@ class SourceBufferRange {
BufferQueue* deleted_buffers,
BufferQueue::iterator* next_buffer);
- // Returns the start timestamp of the range.
- base::TimeDelta GetStartTimestamp() const;
-
// An ordered list of buffers in this range.
BufferQueue buffers_;
@@ -130,7 +127,7 @@ class SourceBufferRange {
KeyframeMap keyframe_map_;
// Index into |buffers_| for the next buffer to be returned by
- // GetBufferedTime(), set to -1 before Seek().
+ // GetNextBuffer(), set to -1 before Seek().
int next_buffer_index_;
// True if the range needs to wait for the next keyframe to be appended before
@@ -163,10 +160,9 @@ static bool IsRangeListSorted(
base::TimeDelta prev = media::kNoTimestamp();
for (std::list<media::SourceBufferRange*>::const_iterator itr =
ranges.begin(); itr != ranges.end(); itr++) {
- media::SourceBufferStream::Timespan buffered = (*itr)->GetBufferedTime();
- if (prev != media::kNoTimestamp() && prev >= buffered.first)
+ if (prev != media::kNoTimestamp() && prev >= (*itr)->GetStartTimestamp())
return false;
- prev = buffered.second;
+ prev = (*itr)->GetEndTimestamp();
}
return true;
}
@@ -503,13 +499,13 @@ bool SourceBufferStream::GetNextBuffer(
return selected_range_ && selected_range_->GetNextBuffer(out_buffer);
}
-SourceBufferStream::TimespanList SourceBufferStream::GetBufferedTime() const {
- TimespanList timespans;
+Ranges<base::TimeDelta> SourceBufferStream::GetBufferedTime() const {
+ Ranges<base::TimeDelta> ranges;
for (RangeList::const_iterator itr = ranges_.begin();
itr != ranges_.end(); itr++) {
- timespans.push_back((*itr)->GetBufferedTime());
+ ranges.Add((*itr)->GetStartTimestamp(), (*itr)->GetEndTimestamp());
}
- return timespans;
+ return ranges;
}
void SourceBufferStream::EndOfStream() {
@@ -703,11 +699,6 @@ base::TimeDelta SourceBufferRange::GetNextTimestamp() const {
return buffers_.at(next_buffer_index_)->GetTimestamp();
}
-SourceBufferStream::Timespan
-SourceBufferRange::GetBufferedTime() const {
- return std::make_pair(GetStartTimestamp(), GetEndTimestamp());
-}
-
void SourceBufferRange::AppendToEnd(const SourceBufferRange& range,
bool transfer_current_position) {
DCHECK(CanAppendToEnd(range));
« no previous file with comments | « media/filters/source_buffer_stream.h ('k') | media/filters/source_buffer_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698