Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / media / filters / fake_demuxer_stream.cc
index ba86363..941778c 100644 (file)
@@ -34,24 +34,31 @@ FakeDemuxerStream::FakeDemuxerStream(int num_configs,
                                      int num_buffers_in_one_config,
                                      bool is_encrypted)
     : task_runner_(base::MessageLoopProxy::current()),
-      num_configs_left_(num_configs),
+      num_configs_(num_configs),
       num_buffers_in_one_config_(num_buffers_in_one_config),
       config_changes_(num_configs > 1),
       is_encrypted_(is_encrypted),
-      num_buffers_left_in_current_config_(num_buffers_in_one_config),
-      num_buffers_returned_(0),
-      current_timestamp_(base::TimeDelta::FromMilliseconds(kStartTimestampMs)),
-      duration_(base::TimeDelta::FromMilliseconds(kDurationMs)),
-      next_coded_size_(kStartWidth, kStartHeight),
-      next_read_num_(0),
       read_to_hold_(-1) {
-  DCHECK_GT(num_configs_left_, 0);
-  DCHECK_GT(num_buffers_in_one_config_, 0);
+  DCHECK_GT(num_configs, 0);
+  DCHECK_GT(num_buffers_in_one_config, 0);
+  Initialize();
   UpdateVideoDecoderConfig();
 }
 
 FakeDemuxerStream::~FakeDemuxerStream() {}
 
+void FakeDemuxerStream::Initialize() {
+  DCHECK_EQ(-1, read_to_hold_);
+  num_configs_left_ = num_configs_;
+  num_buffers_left_in_current_config_ = num_buffers_in_one_config_;
+  num_buffers_returned_ = 0;
+  current_timestamp_ = base::TimeDelta::FromMilliseconds(kStartTimestampMs);
+  duration_ = base::TimeDelta::FromMilliseconds(kDurationMs);
+  splice_timestamp_ = kNoTimestamp();
+  next_coded_size_ = gfx::Size(kStartWidth, kStartHeight);
+  next_read_num_ = 0;
+}
+
 void FakeDemuxerStream::Read(const ReadCB& read_cb) {
   DCHECK(task_runner_->BelongsToCurrentThread());
   DCHECK(read_cb_.is_null());
@@ -90,6 +97,10 @@ bool FakeDemuxerStream::SupportsConfigChanges() {
   return config_changes_;
 }
 
+VideoRotation FakeDemuxerStream::video_rotation() {
+  return VIDEO_ROTATION_0;
+}
+
 void FakeDemuxerStream::HoldNextRead() {
   DCHECK(task_runner_->BelongsToCurrentThread());
   read_to_hold_ = next_read_num_;
@@ -127,6 +138,11 @@ void FakeDemuxerStream::Reset() {
     base::ResetAndReturn(&read_cb_).Run(kAborted, NULL);
 }
 
+void FakeDemuxerStream::SeekToStart() {
+  Reset();
+  Initialize();
+}
+
 void FakeDemuxerStream::UpdateVideoDecoderConfig() {
   const gfx::Rect kVisibleRect(kStartWidth, kStartHeight);
   video_decoder_config_.Initialize(
@@ -169,6 +185,7 @@ void FakeDemuxerStream::DoRead() {
   }
   buffer->set_timestamp(current_timestamp_);
   buffer->set_duration(duration_);
+  buffer->set_splice_timestamp(splice_timestamp_);
   current_timestamp_ += duration_;
 
   num_buffers_left_in_current_config_--;