| 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_,
|
| - ×tamp_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_,
|
| - ×tamp_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
|
|
|