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