blob: 7d83b03da7f52ba7d711c4ac0a61a871ce265229 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COBALT_MEDIA_BLINK_WEBMEDIASOURCE_IMPL_H_
#define COBALT_MEDIA_BLINK_WEBMEDIASOURCE_IMPL_H_
#include <string>
#include <vector>
#include "base/basictypes.h"
#include "cobalt/media/base/media_log.h"
#include "cobalt/media/blink/media_blink_export.h"
#include "third_party/WebKit/public/platform/WebMediaSource.h"
namespace cobalt {
namespace media {
class ChunkDemuxer;
class MEDIA_BLINK_EXPORT WebMediaSourceImpl
: NON_EXPORTED_BASE(public blink::WebMediaSource) {
public:
WebMediaSourceImpl(ChunkDemuxer* demuxer,
const scoped_refptr<MediaLog>& media_log);
~WebMediaSourceImpl() OVERRIDE;
// blink::WebMediaSource implementation.
AddStatus addSourceBuffer(const blink::WebString& type,
const blink::WebString& codecs,
blink::WebSourceBuffer** source_buffer) OVERRIDE;
double duration() OVERRIDE;
void setDuration(double duration) OVERRIDE;
void markEndOfStream(EndOfStreamStatus status) OVERRIDE;
void unmarkEndOfStream() OVERRIDE;
private:
ChunkDemuxer* demuxer_; // Owned by WebMediaPlayerImpl.
scoped_refptr<MediaLog> media_log_;
DISALLOW_COPY_AND_ASSIGN(WebMediaSourceImpl);
};
} // namespace media
} // namespace cobalt
#endif // COBALT_MEDIA_BLINK_WEBMEDIASOURCE_IMPL_H_