blob: 83082fc375dbc9a489eb6acfb2591abfecdfe3fa [file] [log] [blame]
// Copyright 2014 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 MEDIA_BASE_DEMUXER_STREAM_PROVIDER_H_
#define MEDIA_BASE_DEMUXER_STREAM_PROVIDER_H_
#include "media/base/demuxer_stream.h"
#include "media/base/media_export.h"
namespace media {
class MEDIA_EXPORT DemuxerStreamProvider {
public:
enum Liveness {
LIVENESS_UNKNOWN,
LIVENESS_RECORDED,
LIVENESS_LIVE,
};
DemuxerStreamProvider();
virtual ~DemuxerStreamProvider();
// Returns the first stream of the given stream type (which is not allowed
// to be DemuxerStream::TEXT), or NULL if that type of stream is not present.
virtual DemuxerStream* GetStream(DemuxerStream::Type type) = 0;
// Returns liveness of the streams provided, i.e. whether recorded or live.
virtual Liveness GetLiveness() const = 0;
private:
DISALLOW_COPY_AND_ASSIGN(DemuxerStreamProvider);
};
} // namespace media
#endif // MEDIA_BASE_DEMUXER_STREAM_PROVIDER_H_