#include "media/base/decryptor.h"
#include "media/base/demuxer_stream.h"
#include "media/base/media_export.h"
+#include "media/base/media_log.h"
#include "media/base/pipeline_status.h"
#include "media/filters/decoder_selector.h"
#include "media/filters/decoder_stream_traits.h"
DecoderStream(
const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
ScopedVector<Decoder> decoders,
- const SetDecryptorReadyCB& set_decryptor_ready_cb);
+ const SetDecryptorReadyCB& set_decryptor_ready_cb,
+ const scoped_refptr<MediaLog>& media_log);
virtual ~DecoderStream();
// Initializes the DecoderStream and returns the initialization result
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+ scoped_refptr<MediaLog> media_log_;
+
State state_;
StatisticsCB statistics_cb_;
// splice_timestamp() of kNoTimestamp() is encountered.
bool active_splice_;
+ // An end-of-stream buffer has been sent for decoding, no more buffers should
+ // be sent for decoding until it completes.
+ // TODO(sandersd): Turn this into a State. http://crbug.com/408316
+ bool decoding_eos_;
+
// Decoded buffers that haven't been read yet. Used when the decoder supports
// parallel decoding.
std::list<scoped_refptr<Output> > ready_outputs_;
// NOTE: Weak pointers must be invalidated before all other member variables.
base::WeakPtrFactory<DecoderStream<StreamType> > weak_factory_;
-
- // This is required so the VideoFrameStream can access private members in
- // FinishInitialization() and ReportStatistics().
- DISALLOW_IMPLICIT_CONSTRUCTORS(DecoderStream);
};
template <>