1// Copyright 2014 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 MEDIA_BASE_DEMUXER_STREAM_PROVIDER_H_
6#define MEDIA_BASE_DEMUXER_STREAM_PROVIDER_H_
7
8#include "media/base/demuxer_stream.h"
9#include "media/base/media_export.h"
10
11namespace media {
12
13class MEDIA_EXPORT DemuxerStreamProvider {
14 public:
15  enum Liveness {
16    LIVENESS_UNKNOWN,
17    LIVENESS_RECORDED,
18    LIVENESS_LIVE,
19  };
20
21  DemuxerStreamProvider();
22  virtual ~DemuxerStreamProvider();
23
24  // Returns the first stream of the given stream type (which is not allowed
25  // to be DemuxerStream::TEXT), or NULL if that type of stream is not present.
26  virtual DemuxerStream* GetStream(DemuxerStream::Type type) = 0;
27
28  // Returns liveness of the streams provided, i.e. whether recorded or live.
29  virtual Liveness GetLiveness() const = 0;
30
31 private:
32  DISALLOW_COPY_AND_ASSIGN(DemuxerStreamProvider);
33};
34
35}  // namespace media
36
37#endif  // MEDIA_BASE_DEMUXER_STREAM_PROVIDER_H_
38