1// Copyright 2014 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#ifndef CHROMECAST_MEDIA_CMA_BASE_DECODER_BUFFER_ADAPTER_H_ 6#define CHROMECAST_MEDIA_CMA_BASE_DECODER_BUFFER_ADAPTER_H_ 7 8#include "base/macros.h" 9#include "base/memory/ref_counted.h" 10#include "chromecast/media/cma/base/decoder_buffer_base.h" 11 12namespace media { 13class DecoderBuffer; 14} 15 16namespace chromecast { 17namespace media { 18 19// DecoderBufferAdapter wraps a ::media::DecoderBuffer 20// into a DecoderBufferBase. 21class DecoderBufferAdapter : public DecoderBufferBase { 22 public: 23 explicit DecoderBufferAdapter( 24 const scoped_refptr< ::media::DecoderBuffer>& buffer); 25 26 // DecoderBufferBase implementation. 27 virtual base::TimeDelta timestamp() const OVERRIDE; 28 virtual const uint8* data() const OVERRIDE; 29 virtual uint8* writable_data() const OVERRIDE; 30 virtual int data_size() const OVERRIDE; 31 virtual const ::media::DecryptConfig* decrypt_config() const OVERRIDE; 32 virtual bool end_of_stream() const OVERRIDE; 33 34 private: 35 virtual ~DecoderBufferAdapter(); 36 37 scoped_refptr< ::media::DecoderBuffer> const buffer_; 38 39 DISALLOW_COPY_AND_ASSIGN(DecoderBufferAdapter); 40}; 41 42} // namespace media 43} // namespace chromecast 44 45#endif // CHROMECAST_MEDIA_CMA_BASE_DECODER_BUFFER_ADAPTER_H_ 46