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

Unified Diff: content/renderer/media/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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/media/websourcebuffer_impl.h ('k') | content/renderer/render_frame_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/websourcebuffer_impl.cc
diff --git a/content/renderer/media/websourcebuffer_impl.cc b/content/renderer/media/websourcebuffer_impl.cc
deleted file mode 100644
index 1b8e4fa143561c66d727cc304bb8bbe1d984bd68..0000000000000000000000000000000000000000
--- a/content/renderer/media/websourcebuffer_impl.cc
+++ /dev/null
@@ -1,134 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/renderer/media/websourcebuffer_impl.h"
-
-#include <limits>
-
-#include "base/float_util.h"
-#include "media/filters/chunk_demuxer.h"
-
-namespace content {
-
-static base::TimeDelta DoubleToTimeDelta(double time) {
- DCHECK(!base::IsNaN(time));
- DCHECK_NE(time, -std::numeric_limits<double>::infinity());
-
- if (time == std::numeric_limits<double>::infinity())
- return media::kInfiniteDuration();
-
- // Don't use base::TimeDelta::Max() here, as we want the largest finite time
- // delta.
- base::TimeDelta max_time = base::TimeDelta::FromInternalValue(kint64max - 1);
- double max_time_in_seconds = max_time.InSecondsF();
-
- if (time >= max_time_in_seconds)
- return max_time;
-
- return base::TimeDelta::FromMicroseconds(
- time * base::Time::kMicrosecondsPerSecond);
-}
-
-WebSourceBufferImpl::WebSourceBufferImpl(
- const std::string& id, media::ChunkDemuxer* demuxer)
- : id_(id),
- demuxer_(demuxer),
- append_window_end_(media::kInfiniteDuration()) {
- DCHECK(demuxer_);
-}
-
-WebSourceBufferImpl::~WebSourceBufferImpl() {
- DCHECK(!demuxer_) << "Object destroyed w/o removedFromMediaSource() call";
-}
-
-bool WebSourceBufferImpl::setMode(WebSourceBuffer::AppendMode mode) {
- if (demuxer_->IsParsingMediaSegment(id_))
- return false;
-
- switch (mode) {
- case WebSourceBuffer::AppendModeSegments:
- demuxer_->SetSequenceMode(id_, false);
- return true;
- case WebSourceBuffer::AppendModeSequence:
- demuxer_->SetSequenceMode(id_, true);
- return true;
- }
-
- NOTREACHED();
- return false;
-}
-
-blink::WebTimeRanges WebSourceBufferImpl::buffered() {
- media::Ranges<base::TimeDelta> ranges = demuxer_->GetBufferedRanges(id_);
- blink::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;
-}
-
-void WebSourceBufferImpl::append(
- const unsigned char* data,
- unsigned length,
- double* timestamp_offset) {
- base::TimeDelta old_offset = timestamp_offset_;
- demuxer_->AppendData(id_, data, length,
- append_window_start_, append_window_end_,
- &timestamp_offset_);
-
- // Coded frame processing may update the timestamp offset. If the caller
- // provides a non-NULL |timestamp_offset| and frame processing changes the
- // timestamp offset, report the new offset to the caller. Do not update the
- // caller's offset otherwise, to preserve any pre-existing value that may have
- // more than microsecond precision.
- if (timestamp_offset && old_offset != timestamp_offset_)
- *timestamp_offset = timestamp_offset_.InSecondsF();
-}
-
-void WebSourceBufferImpl::abort() {
- demuxer_->Abort(id_,
- append_window_start_, append_window_end_,
- &timestamp_offset_);
-
- // TODO(wolenetz): abort should be able to modify the caller timestamp offset
- // (just like WebSourceBufferImpl::append).
- // See http://crbug.com/370229 for further details.
-}
-
-void WebSourceBufferImpl::remove(double start, double end) {
- DCHECK_GE(start, 0);
- DCHECK_GE(end, 0);
- demuxer_->Remove(id_, DoubleToTimeDelta(start), DoubleToTimeDelta(end));
-}
-
-bool WebSourceBufferImpl::setTimestampOffset(double offset) {
- if (demuxer_->IsParsingMediaSegment(id_))
- return false;
-
- timestamp_offset_ = DoubleToTimeDelta(offset);
-
- // http://www.w3.org/TR/media-source/#widl-SourceBuffer-timestampOffset
- // Step 6: If the mode attribute equals "sequence", then set the group start
- // timestamp to new timestamp offset.
- demuxer_->SetGroupStartTimestampIfInSequenceMode(id_, timestamp_offset_);
- return true;
-}
-
-void WebSourceBufferImpl::setAppendWindowStart(double start) {
- DCHECK_GE(start, 0);
- append_window_start_ = DoubleToTimeDelta(start);
-}
-
-void WebSourceBufferImpl::setAppendWindowEnd(double end) {
- DCHECK_GE(end, 0);
- append_window_end_ = DoubleToTimeDelta(end);
-}
-
-void WebSourceBufferImpl::removedFromMediaSource() {
- demuxer_->RemoveId(id_);
- demuxer_ = NULL;
-}
-
-} // namespace content
« no previous file with comments | « content/renderer/media/websourcebuffer_impl.h ('k') | content/renderer/render_frame_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698