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

Unified Diff: webkit/media/webmediaplayer_impl.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_unittest.cc ('k') | webkit/media/webmediaplayer_proxy.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/media/webmediaplayer_impl.cc
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index 588801c471b6b9aaee85eff263a6347216c3f71d..a056e09fdbd480afd62ebb841a648f9038da94f8 100644
--- a/webkit/media/webmediaplayer_impl.cc
+++ b/webkit/media/webmediaplayer_impl.cc
@@ -91,6 +91,16 @@ COMPILE_ASSERT_MATCHING_ENUM(Anonymous);
COMPILE_ASSERT_MATCHING_ENUM(UseCredentials);
#undef COMPILE_ASSERT_MATCHING_ENUM
+static WebKit::WebTimeRanges ConvertToWebTimeRanges(
+ const media::Ranges<base::TimeDelta>& ranges) {
+ WebKit::WebTimeRanges result(ranges.size());
+ for (size_t i = 0; i < ranges.size(); i++) {
+ result[i].start = ranges.start(i).InSecondsF();
+ result[i].end = ranges.end(i).InSecondsF();
+ }
+ return result;
+}
+
WebMediaPlayerImpl::WebMediaPlayerImpl(
WebKit::WebFrame* frame,
WebKit::WebMediaPlayerClient* client,
@@ -471,13 +481,8 @@ WebMediaPlayer::ReadyState WebMediaPlayerImpl::readyState() const {
const WebKit::WebTimeRanges& WebMediaPlayerImpl::buffered() {
DCHECK_EQ(main_loop_, MessageLoop::current());
- media::Ranges<base::TimeDelta> buffered_time_ranges =
- pipeline_->GetBufferedTimeRanges();
- WebKit::WebTimeRanges web_ranges(buffered_time_ranges.size());
- for (size_t i = 0; i < buffered_time_ranges.size(); ++i) {
- web_ranges[i].start = buffered_time_ranges.start(i).InSecondsF();
- web_ranges[i].end = buffered_time_ranges.end(i).InSecondsF();
- }
+ WebKit::WebTimeRanges web_ranges(
+ ConvertToWebTimeRanges(pipeline_->GetBufferedTimeRanges()));
buffered_.swap(web_ranges);
return buffered_;
}
@@ -656,16 +661,7 @@ bool WebMediaPlayerImpl::sourceRemoveId(const WebKit::WebString& id) {
WebKit::WebTimeRanges WebMediaPlayerImpl::sourceBuffered(
const WebKit::WebString& id) {
- media::ChunkDemuxer::Ranges buffered_ranges;
- if (!proxy_->DemuxerBufferedRange(id.utf8().data(), &buffered_ranges))
- return WebKit::WebTimeRanges();
-
- WebKit::WebTimeRanges ranges(buffered_ranges.size());
- for (size_t i = 0; i < buffered_ranges.size(); i++) {
- ranges[i].start = buffered_ranges[i].first.InSecondsF();
- ranges[i].end = buffered_ranges[i].second.InSecondsF();
- }
- return ranges;
+ return ConvertToWebTimeRanges(proxy_->DemuxerBufferedRange(id.utf8().data()));
}
bool WebMediaPlayerImpl::sourceAppend(const unsigned char* data,
« no previous file with comments | « media/filters/source_buffer_stream_unittest.cc ('k') | webkit/media/webmediaplayer_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698