- add sources.
[platform/framework/web/crosswalk.git] / src / content / renderer / media / websourcebuffer_impl.h
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 #ifndef CONTENT_RENDERER_MEDIA_WEBSOURCEBUFFER_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_WEBSOURCEBUFFER_IMPL_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h"
12 #include "third_party/WebKit/public/web/WebSourceBuffer.h"
13
14 namespace media {
15 class ChunkDemuxer;
16 }
17
18 namespace content {
19
20 class WebSourceBufferImpl : public WebKit::WebSourceBuffer {
21  public:
22   WebSourceBufferImpl(const std::string& id, media::ChunkDemuxer* demuxer);
23   virtual ~WebSourceBufferImpl();
24
25   // WebKit::WebSourceBuffer implementation.
26   virtual WebKit::WebTimeRanges buffered() OVERRIDE;
27   virtual void append(const unsigned char* data, unsigned length) OVERRIDE;
28   virtual void abort() OVERRIDE;
29   // TODO(acolwell): Add OVERRIDE when Blink-side changes land.
30   virtual void remove(double start, double end);
31   virtual bool setTimestampOffset(double offset) OVERRIDE;
32   // TODO(acolwell): Add OVERRIDE when Blink-side changes land.
33   virtual void setAppendWindowStart(double start);
34   virtual void setAppendWindowEnd(double end);
35   virtual void removedFromMediaSource() OVERRIDE;
36
37  private:
38   std::string id_;
39   media::ChunkDemuxer* demuxer_;  // Owned by WebMediaPlayerImpl.
40
41   DISALLOW_COPY_AND_ASSIGN(WebSourceBufferImpl);
42 };
43
44 }  // namespace content
45
46 #endif  // CONTENT_RENDERER_MEDIA_WEBSOURCEBUFFER_IMPL_H_