| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "webkit/renderer/media/websourcebuffer_impl.h" | |
| 6 | |
| 7 #include "media/filters/chunk_demuxer.h" | |
| 8 | |
| 9 namespace webkit_media { | |
| 10 | |
| 11 WebSourceBufferImpl::WebSourceBufferImpl( | |
| 12 const std::string& id, media::ChunkDemuxer* demuxer) | |
| 13 : id_(id), | |
| 14 demuxer_(demuxer) { | |
| 15 DCHECK(demuxer_); | |
| 16 } | |
| 17 | |
| 18 WebSourceBufferImpl::~WebSourceBufferImpl() { | |
| 19 DCHECK(!demuxer_) << "Object destroyed w/o removedFromMediaSource() call"; | |
| 20 } | |
| 21 | |
| 22 WebKit::WebTimeRanges WebSourceBufferImpl::buffered() { | |
| 23 media::Ranges<base::TimeDelta> ranges = demuxer_->GetBufferedRanges(id_); | |
| 24 WebKit::WebTimeRanges result(ranges.size()); | |
| 25 for (size_t i = 0; i < ranges.size(); i++) { | |
| 26 result[i].start = ranges.start(i).InSecondsF(); | |
| 27 result[i].end = ranges.end(i).InSecondsF(); | |
| 28 } | |
| 29 return result; | |
| 30 } | |
| 31 | |
| 32 void WebSourceBufferImpl::append(const unsigned char* data, unsigned length) { | |
| 33 demuxer_->AppendData(id_, data, length); | |
| 34 } | |
| 35 | |
| 36 void WebSourceBufferImpl::abort() { | |
| 37 demuxer_->Abort(id_); | |
| 38 } | |
| 39 | |
| 40 bool WebSourceBufferImpl::setTimestampOffset(double offset) { | |
| 41 base::TimeDelta time_offset = base::TimeDelta::FromMicroseconds( | |
| 42 offset * base::Time::kMicrosecondsPerSecond); | |
| 43 return demuxer_->SetTimestampOffset(id_, time_offset); | |
| 44 } | |
| 45 | |
| 46 void WebSourceBufferImpl::removedFromMediaSource() { | |
| 47 demuxer_->RemoveId(id_); | |
| 48 demuxer_ = NULL; | |
| 49 } | |
| 50 | |
| 51 } // namespace webkit_media | |
| OLD | NEW |