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