Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / media / base / stream_parser_buffer.cc
index a9a12e3..8df4fae 100644 (file)
@@ -69,7 +69,7 @@ DecodeTimestamp StreamParserBuffer::GetDecodeTimestamp() const {
 
 void StreamParserBuffer::SetDecodeTimestamp(DecodeTimestamp timestamp) {
   decode_timestamp_ = timestamp;
-  if (preroll_buffer_)
+  if (preroll_buffer_.get())
     preroll_buffer_->SetDecodeTimestamp(timestamp);
 }
 
@@ -99,10 +99,16 @@ int StreamParserBuffer::GetConfigId() const {
 
 void StreamParserBuffer::SetConfigId(int config_id) {
   config_id_ = config_id;
-  if (preroll_buffer_)
+  if (preroll_buffer_.get())
     preroll_buffer_->SetConfigId(config_id);
 }
 
+int StreamParserBuffer::GetSpliceBufferConfigId(size_t index) const {
+  return index < splice_buffers().size()
+      ? splice_buffers_[index]->GetConfigId()
+      : GetConfigId();
+}
+
 void StreamParserBuffer::ConvertToSpliceBuffer(
     const BufferQueue& pre_splice_buffers) {
   DCHECK(splice_buffers_.empty());
@@ -128,8 +134,8 @@ void StreamParserBuffer::ConvertToSpliceBuffer(
   // on that behavior.
 
   // Move over any preroll from this buffer.
-  if (preroll_buffer_) {
-    DCHECK(!overlapping_buffer->preroll_buffer_);
+  if (preroll_buffer_.get()) {
+    DCHECK(!overlapping_buffer->preroll_buffer_.get());
     overlapping_buffer->preroll_buffer_.swap(preroll_buffer_);
   }
 
@@ -158,9 +164,9 @@ void StreamParserBuffer::ConvertToSpliceBuffer(
        ++it) {
     const scoped_refptr<StreamParserBuffer>& buffer = *it;
     DCHECK(!buffer->end_of_stream());
-    DCHECK(!buffer->preroll_buffer());
+    DCHECK(!buffer->preroll_buffer().get());
     DCHECK(buffer->splice_buffers().empty());
-    splice_buffers_.push_back(CopyBuffer(*buffer));
+    splice_buffers_.push_back(CopyBuffer(*buffer.get()));
     splice_buffers_.back()->set_splice_timestamp(splice_timestamp());
   }
 
@@ -169,10 +175,10 @@ void StreamParserBuffer::ConvertToSpliceBuffer(
 
 void StreamParserBuffer::SetPrerollBuffer(
     const scoped_refptr<StreamParserBuffer>& preroll_buffer) {
-  DCHECK(!preroll_buffer_);
+  DCHECK(!preroll_buffer_.get());
   DCHECK(!end_of_stream());
   DCHECK(!preroll_buffer->end_of_stream());
-  DCHECK(!preroll_buffer->preroll_buffer_);
+  DCHECK(!preroll_buffer->preroll_buffer_.get());
   DCHECK(preroll_buffer->splice_timestamp() == kNoTimestamp());
   DCHECK(preroll_buffer->splice_buffers().empty());
   DCHECK(preroll_buffer->timestamp() <= timestamp());
@@ -191,7 +197,7 @@ void StreamParserBuffer::SetPrerollBuffer(
 
 void StreamParserBuffer::set_timestamp(base::TimeDelta timestamp) {
   DecoderBuffer::set_timestamp(timestamp);
-  if (preroll_buffer_)
+  if (preroll_buffer_.get())
     preroll_buffer_->set_timestamp(timestamp);
 }