decoder_buffer_adapter.h revision 1320f92c476a1ad9d19dba2a48c72b75566198e9
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