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_WEBMEDIASOURCE_IMPL_H_ 6 #define CONTENT_RENDERER_MEDIA_WEBMEDIASOURCE_IMPL_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "media/base/media_log.h" 12 #include "third_party/WebKit/public/platform/WebMediaSource.h" 13 14 namespace media { 15 class ChunkDemuxer; 16 } 17 18 namespace content { 19 20 class WebMediaSourceImpl : public blink::WebMediaSource { 21 public: 22 WebMediaSourceImpl(media::ChunkDemuxer* demuxer, media::LogCB log_cb); 23 virtual ~WebMediaSourceImpl(); 24 25 // blink::WebMediaSource implementation. 26 virtual AddStatus addSourceBuffer( 27 const blink::WebString& type, 28 const blink::WebVector<blink::WebString>& codecs, 29 blink::WebSourceBuffer** source_buffer) OVERRIDE; 30 virtual double duration() OVERRIDE; 31 virtual void setDuration(double duration) OVERRIDE; 32 virtual void markEndOfStream(EndOfStreamStatus status) OVERRIDE; 33 virtual void unmarkEndOfStream() OVERRIDE; 34 35 private: 36 media::ChunkDemuxer* demuxer_; // Owned by WebMediaPlayerImpl. 37 media::LogCB log_cb_; 38 39 DISALLOW_COPY_AND_ASSIGN(WebMediaSourceImpl); 40 }; 41 42 } // namespace content 43 44 #endif // CONTENT_RENDERER_MEDIA_WEBMEDIASOURCE_IMPL_H_ 45