Home | History | Annotate | Download | only in base
      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 
     11 namespace media {
     12 
     13 class 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