1868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef CONTENT_RENDERER_MEDIA_WEBSOURCEBUFFER_IMPL_H_ 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define CONTENT_RENDERER_MEDIA_WEBSOURCEBUFFER_IMPL_H_ 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include <string> 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/basictypes.h" 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/compiler_specific.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebSourceBuffer.h" 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace media { 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class ChunkDemuxer; 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace content { 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class WebSourceBufferImpl : public blink::WebSourceBuffer { 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) WebSourceBufferImpl(const std::string& id, media::ChunkDemuxer* demuxer); 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~WebSourceBufferImpl(); 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // blink::WebSourceBuffer implementation. 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual blink::WebTimeRanges buffered() OVERRIDE; 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void append(const unsigned char* data, unsigned length) OVERRIDE; 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void abort() OVERRIDE; 29bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch // TODO(acolwell): Add OVERRIDE when Blink-side changes land. 30bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch virtual void remove(double start, double end); 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual bool setTimestampOffset(double offset) OVERRIDE; 32558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch // TODO(acolwell): Add OVERRIDE when Blink-side changes land. 33558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch virtual void setAppendWindowStart(double start); 34558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch virtual void setAppendWindowEnd(double end); 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void removedFromMediaSource() OVERRIDE; 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) private: 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) std::string id_; 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) media::ChunkDemuxer* demuxer_; // Owned by WebMediaPlayerImpl. 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(WebSourceBufferImpl); 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} // namespace content 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif // CONTENT_RENDERER_MEDIA_WEBSOURCEBUFFER_IMPL_H_ 47