Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(712)

Unified Diff: media/filters/chunk_demuxer.cc

Issue 692323002: Move Liveness from DemuxerStreamProvider to DemuxerStream. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698