Index: media/filters/chunk_demuxer.cc |
diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
index cf4cce989e5c9412538d75dafca55a0d653bc302..1eb22d54f7f3334955189a97ac312db927d7d370 100644 |
--- a/media/filters/chunk_demuxer.cc |
+++ b/media/filters/chunk_demuxer.cc |
@@ -702,10 +702,10 @@ void SourceState::OnSourceInitDone(bool success, |
base::ResetAndReturn(&init_cb_).Run(success, duration); |
} |
-ChunkDemuxerStream::ChunkDemuxerStream(Type type) |
+ChunkDemuxerStream::ChunkDemuxerStream(Type type, bool splice_frames_enabled) |
: type_(type), |
- state_(UNINITIALIZED) { |
-} |
+ state_(UNINITIALIZED), |
+ splice_frames_enabled_(splice_frames_enabled) {} |
void ChunkDemuxerStream::StartReturningData() { |
DVLOG(1) << "ChunkDemuxerStream::StartReturningData()"; |
@@ -836,7 +836,8 @@ bool ChunkDemuxerStream::UpdateAudioConfig(const AudioDecoderConfig& config, |
base::AutoLock auto_lock(lock_); |
if (!stream_) { |
DCHECK_EQ(state_, UNINITIALIZED); |
- stream_.reset(new SourceBufferStream(config, log_cb)); |
+ stream_.reset( |
+ new SourceBufferStream(config, log_cb, splice_frames_enabled_)); |
return true; |
} |
@@ -851,7 +852,8 @@ bool ChunkDemuxerStream::UpdateVideoConfig(const VideoDecoderConfig& config, |
if (!stream_) { |
DCHECK_EQ(state_, UNINITIALIZED); |
- stream_.reset(new SourceBufferStream(config, log_cb)); |
+ stream_.reset( |
+ new SourceBufferStream(config, log_cb, splice_frames_enabled_)); |
return true; |
} |
@@ -864,7 +866,7 @@ void ChunkDemuxerStream::UpdateTextConfig(const TextTrackConfig& config, |
base::AutoLock auto_lock(lock_); |
DCHECK(!stream_); |
DCHECK_EQ(state_, UNINITIALIZED); |
- stream_.reset(new SourceBufferStream(config, log_cb)); |
+ stream_.reset(new SourceBufferStream(config, log_cb, splice_frames_enabled_)); |
} |
void ChunkDemuxerStream::MarkEndOfStream() { |
@@ -970,7 +972,8 @@ void ChunkDemuxerStream::CompletePendingReadIfPossible_Locked() { |
ChunkDemuxer::ChunkDemuxer(const base::Closure& open_cb, |
const NeedKeyCB& need_key_cb, |
- const LogCB& log_cb) |
+ const LogCB& log_cb, |
+ bool splice_frames_enabled) |
: state_(WAITING_FOR_INIT), |
cancel_next_seek_(false), |
host_(NULL), |
@@ -979,7 +982,8 @@ ChunkDemuxer::ChunkDemuxer(const base::Closure& open_cb, |
enable_text_(false), |
log_cb_(log_cb), |
duration_(kNoTimestamp()), |
- user_specified_duration_(-1) { |
+ user_specified_duration_(-1), |
+ splice_frames_enabled_(splice_frames_enabled) { |
DCHECK(!open_cb_.is_null()); |
DCHECK(!need_key_cb_.is_null()); |
} |
@@ -1511,17 +1515,20 @@ ChunkDemuxer::CreateDemuxerStream(DemuxerStream::Type type) { |
case DemuxerStream::AUDIO: |
if (audio_) |
return NULL; |
- audio_.reset(new ChunkDemuxerStream(DemuxerStream::AUDIO)); |
+ audio_.reset( |
+ new ChunkDemuxerStream(DemuxerStream::AUDIO, splice_frames_enabled_)); |
return audio_.get(); |
break; |
case DemuxerStream::VIDEO: |
if (video_) |
return NULL; |
- video_.reset(new ChunkDemuxerStream(DemuxerStream::VIDEO)); |
+ video_.reset( |
+ new ChunkDemuxerStream(DemuxerStream::VIDEO, splice_frames_enabled_)); |
return video_.get(); |
break; |
case DemuxerStream::TEXT: { |
- return new ChunkDemuxerStream(DemuxerStream::TEXT); |
+ return new ChunkDemuxerStream(DemuxerStream::TEXT, |
+ splice_frames_enabled_); |
break; |
} |
case DemuxerStream::UNKNOWN: |