Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / media / filters / decoder_stream.h
index c077a18..28587c5 100644 (file)
@@ -15,6 +15,7 @@
 #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"
@@ -52,7 +53,8 @@ class MEDIA_EXPORT DecoderStream {
   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
@@ -159,6 +161,8 @@ class MEDIA_EXPORT DecoderStream {
 
   scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
 
+  scoped_refptr<MediaLog> media_log_;
+
   State state_;
 
   StatisticsCB statistics_cb_;
@@ -183,6 +187,11 @@ class MEDIA_EXPORT DecoderStream {
   // 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_;
@@ -192,10 +201,6 @@ class MEDIA_EXPORT DecoderStream {
 
   // 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 <>