// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // SourceBufferStream is a data structure that stores media Buffers in ranges. // Buffers can be appended out of presentation order. Buffers are retrieved by // seeking to the desired start point and calling GetNextBuffer(). Buffers are // returned in sequential order to feed decoder, generally near presentation // order though not necessarily the same as presentation order within GOPs of // out-of-order codecs. #ifndef MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ #define MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ #include <stddef.h> #include <list> #include <memory> #include <string> #include <type_traits> #include <utility> #include <vector> #include "base/logging.h" #include "base/memory/memory_pressure_listener.h" #include "base/memory/raw_ptr.h" #include "base/memory/scoped_refptr.h" #include "base/time/time.h" #include "media/base/audio_decoder_config.h" #include "media/base/media_export.h" #include "media/base/media_log.h" #include "media/base/ranges.h" #include "media/base/stream_parser_buffer.h" #include "media/base/video_decoder_config.h" #include "media/filters/source_buffer_range.h" namespace media { // Status returned by GetNextBuffer(). // kSuccess: Indicates that the next buffer was returned. // kNeedBuffer: Indicates that we need more data before a buffer can be // returned. // kConfigChange: Indicates that the next buffer requires a config change. enum class SourceBufferStreamStatus { … }; enum class SourceBufferStreamType { … }; // See file-level comment for complete description. class MEDIA_EXPORT SourceBufferStream { … }; } // namespace media #endif // MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_