Home | History | Annotate | Download | only in media
      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_
     47