Chromium Code Reviews| Index: media/filters/chunk_demuxer.cc |
| diff --git a/media/filters/chunk_demuxer.cc b/media/filters/chunk_demuxer.cc |
| index 55ff88c2dac11361fa76d67e999024465d14cdae..69776f9428745b90da4c0836fc808d6928bafaa7 100644 |
| --- a/media/filters/chunk_demuxer.cc |
| +++ b/media/filters/chunk_demuxer.cc |
| @@ -773,8 +773,11 @@ void SourceState::OnSourceInitDone(bool success, |
| base::ResetAndReturn(&init_cb_).Run(success, params); |
| } |
| -ChunkDemuxerStream::ChunkDemuxerStream(Type type, bool splice_frames_enabled) |
| +ChunkDemuxerStream::ChunkDemuxerStream(Type type, |
| + Liveness liveness, |
| + bool splice_frames_enabled) |
| : type_(type), |
| + liveness_(liveness), |
| state_(UNINITIALIZED), |
| splice_frames_enabled_(splice_frames_enabled), |
| partial_append_window_trimming_enabled_(false) { |
| @@ -974,6 +977,10 @@ void ChunkDemuxerStream::Read(const ReadCB& read_cb) { |
| DemuxerStream::Type ChunkDemuxerStream::type() { return type_; } |
| +DemuxerStream::Liveness ChunkDemuxerStream::liveness() { |
| + return liveness_; |
| +} |
| + |
| AudioDecoderConfig ChunkDemuxerStream::audio_decoder_config() { |
| CHECK_EQ(type_, AUDIO); |
| base::AutoLock auto_lock(lock_); |
| @@ -1068,7 +1075,7 @@ ChunkDemuxer::ChunkDemuxer(const base::Closure& open_cb, |
| log_cb_(log_cb), |
| duration_(kNoTimestamp()), |
| user_specified_duration_(-1), |
| - liveness_(LIVENESS_UNKNOWN), |
| + liveness_(DemuxerStream::LIVENESS_UNKNOWN), |
| splice_frames_enabled_(splice_frames_enabled) { |
| DCHECK(!open_cb_.is_null()); |
| DCHECK(!need_key_cb_.is_null()); |
| @@ -1152,10 +1159,6 @@ TimeDelta ChunkDemuxer::GetStartTime() const { |
| return TimeDelta(); |
| } |
| -Demuxer::Liveness ChunkDemuxer::GetLiveness() const { |
| - return liveness_; |
| -} |
| - |
| void ChunkDemuxer::StartWaitingForSeek(TimeDelta seek_time) { |
| DVLOG(1) << "StartWaitingForSeek()"; |
| base::AutoLock auto_lock(lock_); |
| @@ -1636,8 +1639,9 @@ void ChunkDemuxer::OnSourceInitDone( |
| timeline_offset_ = params.timeline_offset; |
| } |
| - if (params.liveness != LIVENESS_UNKNOWN) { |
| - if (liveness_ != LIVENESS_UNKNOWN && params.liveness != liveness_) { |
| + if (params.liveness != DemuxerStream::LIVENESS_UNKNOWN) { |
| + if (liveness_ != DemuxerStream::LIVENESS_UNKNOWN && |
| + params.liveness != liveness_) { |
| MEDIA_LOG(log_cb_) |
|
wolenetz
2014/11/11 23:48:07
Moving this logic to decoders (or just removing th
xhwang
2014/11/14 06:38:04
Yes, I'll handle that in a separate CL.
wolenetz
2014/11/14 19:21:58
Acknowledged.
|
| << "Liveness is not the same across all SourceBuffers."; |
| ReportError_Locked(DEMUXER_ERROR_COULD_NOT_OPEN); |
| @@ -1670,19 +1674,19 @@ ChunkDemuxer::CreateDemuxerStream(DemuxerStream::Type type) { |
| case DemuxerStream::AUDIO: |
| if (audio_) |
| return NULL; |
| - audio_.reset( |
| - new ChunkDemuxerStream(DemuxerStream::AUDIO, splice_frames_enabled_)); |
| + audio_.reset(new ChunkDemuxerStream(DemuxerStream::AUDIO, liveness_, |
| + splice_frames_enabled_)); |
| return audio_.get(); |
| break; |
| case DemuxerStream::VIDEO: |
| if (video_) |
| return NULL; |
| - video_.reset( |
| - new ChunkDemuxerStream(DemuxerStream::VIDEO, splice_frames_enabled_)); |
| + video_.reset(new ChunkDemuxerStream(DemuxerStream::VIDEO, liveness_, |
| + splice_frames_enabled_)); |
| return video_.get(); |
| break; |
| case DemuxerStream::TEXT: { |
| - return new ChunkDemuxerStream(DemuxerStream::TEXT, |
| + return new ChunkDemuxerStream(DemuxerStream::TEXT, liveness_, |
| splice_frames_enabled_); |
| break; |
| } |