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 12 namespace media { 13 class DecoderBuffer; 14 } 15 16 namespace chromecast { 17 namespace media { 18 19 // DecoderBufferAdapter wraps a ::media::DecoderBuffer 20 // into a DecoderBufferBase. 21 class 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