| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chromecast/media/base/cast_decoder_buffer_impl.h" |
| |
| namespace chromecast { |
| namespace media { |
| |
| CastDecoderBufferImpl::CastDecoderBufferImpl(size_t size, StreamId stream_id) |
| : stream_id_(stream_id), |
| size_(size), |
| data_(std::make_unique<uint8_t[]>(size_)) {} |
| |
| CastDecoderBufferImpl::CastDecoderBufferImpl(size_t size) |
| : CastDecoderBufferImpl(size, kPrimary) {} |
| |
| CastDecoderBufferImpl::CastDecoderBufferImpl(StreamId stream_id) |
| : stream_id_(stream_id), size_(0), data_(nullptr) {} |
| |
| CastDecoderBufferImpl::~CastDecoderBufferImpl() = default; |
| |
| // static |
| scoped_refptr<CastDecoderBufferImpl> CastDecoderBufferImpl::CreateEOSBuffer() { |
| return CreateEOSBuffer(kPrimary); |
| } |
| |
| // static |
| scoped_refptr<CastDecoderBufferImpl> CastDecoderBufferImpl::CreateEOSBuffer( |
| StreamId stream_id) { |
| return base::WrapRefCounted(new CastDecoderBufferImpl(stream_id)); |
| } |
| |
| StreamId CastDecoderBufferImpl::stream_id() const { |
| return stream_id_; |
| } |
| |
| int64_t CastDecoderBufferImpl::timestamp() const { |
| DCHECK(!end_of_stream()); |
| return timestamp_.InMicroseconds(); |
| } |
| |
| void CastDecoderBufferImpl::set_timestamp(base::TimeDelta timestamp) { |
| DCHECK(!end_of_stream()); |
| timestamp_ = timestamp; |
| } |
| |
| const uint8_t* CastDecoderBufferImpl::data() const { |
| DCHECK(!end_of_stream()); |
| return data_.get(); |
| } |
| |
| uint8_t* CastDecoderBufferImpl::writable_data() const { |
| DCHECK(!end_of_stream()); |
| return data_.get(); |
| } |
| |
| size_t CastDecoderBufferImpl::data_size() const { |
| DCHECK(!end_of_stream()); |
| return size_; |
| } |
| |
| const CastDecryptConfig* CastDecoderBufferImpl::decrypt_config() const { |
| return nullptr; |
| } |
| |
| bool CastDecoderBufferImpl::end_of_stream() const { |
| return data_ == nullptr; |
| } |
| |
| bool CastDecoderBufferImpl::is_key_frame() const { |
| return false; |
| } |
| |
| } // namespace media |
| } // namespace chromecast |