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

Side by Side Diff: media/blink/websourcebuffer_impl.cc

Issue 495353003: Move WebMediaPlayerImpl and its dependencies to media/blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 3 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 unified diff | Download patch
« no previous file with comments | « media/blink/websourcebuffer_impl.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/websourcebuffer_impl.h" 5 #include "media/blink/websourcebuffer_impl.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/float_util.h" 9 #include "base/float_util.h"
10 #include "media/filters/chunk_demuxer.h" 10 #include "media/filters/chunk_demuxer.h"
11 11
12 namespace content { 12 namespace media {
13 13
14 static base::TimeDelta DoubleToTimeDelta(double time) { 14 static base::TimeDelta DoubleToTimeDelta(double time) {
15 DCHECK(!base::IsNaN(time)); 15 DCHECK(!base::IsNaN(time));
16 DCHECK_NE(time, -std::numeric_limits<double>::infinity()); 16 DCHECK_NE(time, -std::numeric_limits<double>::infinity());
17 17
18 if (time == std::numeric_limits<double>::infinity()) 18 if (time == std::numeric_limits<double>::infinity())
19 return media::kInfiniteDuration(); 19 return kInfiniteDuration();
20 20
21 // Don't use base::TimeDelta::Max() here, as we want the largest finite time 21 // Don't use base::TimeDelta::Max() here, as we want the largest finite time
22 // delta. 22 // delta.
23 base::TimeDelta max_time = base::TimeDelta::FromInternalValue(kint64max - 1); 23 base::TimeDelta max_time = base::TimeDelta::FromInternalValue(kint64max - 1);
24 double max_time_in_seconds = max_time.InSecondsF(); 24 double max_time_in_seconds = max_time.InSecondsF();
25 25
26 if (time >= max_time_in_seconds) 26 if (time >= max_time_in_seconds)
27 return max_time; 27 return max_time;
28 28
29 return base::TimeDelta::FromMicroseconds( 29 return base::TimeDelta::FromMicroseconds(
30 time * base::Time::kMicrosecondsPerSecond); 30 time * base::Time::kMicrosecondsPerSecond);
31 } 31 }
32 32
33 WebSourceBufferImpl::WebSourceBufferImpl( 33 WebSourceBufferImpl::WebSourceBufferImpl(
34 const std::string& id, media::ChunkDemuxer* demuxer) 34 const std::string& id, ChunkDemuxer* demuxer)
35 : id_(id), 35 : id_(id),
36 demuxer_(demuxer), 36 demuxer_(demuxer),
37 append_window_end_(media::kInfiniteDuration()) { 37 append_window_end_(kInfiniteDuration()) {
38 DCHECK(demuxer_); 38 DCHECK(demuxer_);
39 } 39 }
40 40
41 WebSourceBufferImpl::~WebSourceBufferImpl() { 41 WebSourceBufferImpl::~WebSourceBufferImpl() {
42 DCHECK(!demuxer_) << "Object destroyed w/o removedFromMediaSource() call"; 42 DCHECK(!demuxer_) << "Object destroyed w/o removedFromMediaSource() call";
43 } 43 }
44 44
45 bool WebSourceBufferImpl::setMode(WebSourceBuffer::AppendMode mode) { 45 bool WebSourceBufferImpl::setMode(WebSourceBuffer::AppendMode mode) {
46 if (demuxer_->IsParsingMediaSegment(id_)) 46 if (demuxer_->IsParsingMediaSegment(id_))
47 return false; 47 return false;
48 48
49 switch (mode) { 49 switch (mode) {
50 case WebSourceBuffer::AppendModeSegments: 50 case WebSourceBuffer::AppendModeSegments:
51 demuxer_->SetSequenceMode(id_, false); 51 demuxer_->SetSequenceMode(id_, false);
52 return true; 52 return true;
53 case WebSourceBuffer::AppendModeSequence: 53 case WebSourceBuffer::AppendModeSequence:
54 demuxer_->SetSequenceMode(id_, true); 54 demuxer_->SetSequenceMode(id_, true);
55 return true; 55 return true;
56 } 56 }
57 57
58 NOTREACHED(); 58 NOTREACHED();
59 return false; 59 return false;
60 } 60 }
61 61
62 blink::WebTimeRanges WebSourceBufferImpl::buffered() { 62 blink::WebTimeRanges WebSourceBufferImpl::buffered() {
63 media::Ranges<base::TimeDelta> ranges = demuxer_->GetBufferedRanges(id_); 63 Ranges<base::TimeDelta> ranges = demuxer_->GetBufferedRanges(id_);
64 blink::WebTimeRanges result(ranges.size()); 64 blink::WebTimeRanges result(ranges.size());
65 for (size_t i = 0; i < ranges.size(); i++) { 65 for (size_t i = 0; i < ranges.size(); i++) {
66 result[i].start = ranges.start(i).InSecondsF(); 66 result[i].start = ranges.start(i).InSecondsF();
67 result[i].end = ranges.end(i).InSecondsF(); 67 result[i].end = ranges.end(i).InSecondsF();
68 } 68 }
69 return result; 69 return result;
70 } 70 }
71 71
72 void WebSourceBufferImpl::append( 72 void WebSourceBufferImpl::append(
73 const unsigned char* data, 73 const unsigned char* data,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 void WebSourceBufferImpl::setAppendWindowEnd(double end) { 124 void WebSourceBufferImpl::setAppendWindowEnd(double end) {
125 DCHECK_GE(end, 0); 125 DCHECK_GE(end, 0);
126 append_window_end_ = DoubleToTimeDelta(end); 126 append_window_end_ = DoubleToTimeDelta(end);
127 } 127 }
128 128
129 void WebSourceBufferImpl::removedFromMediaSource() { 129 void WebSourceBufferImpl::removedFromMediaSource() {
130 demuxer_->RemoveId(id_); 130 demuxer_->RemoveId(id_);
131 demuxer_ = NULL; 131 demuxer_ = NULL;
132 } 132 }
133 133
134 } // namespace content 134 } // namespace media
OLDNEW
« no previous file with comments | « media/blink/websourcebuffer_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698