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

Unified Diff: media/filters/ffmpeg_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/ffmpeg_demuxer.cc
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index f3f87ac45ed8b794a934f477a807bf849c15932c..4791045de7004ee9d3fac1992ae5314ae7e7f253 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -91,6 +91,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream(FFmpegDemuxer* demuxer,
task_runner_(base::MessageLoopProxy::current()),
stream_(stream),
type_(UNKNOWN),
+ liveness_(LIVENESS_UNKNOWN),
end_of_stream_(false),
last_packet_timestamp_(kNoTimestamp()),
last_packet_duration_(kNoTimestamp()),
@@ -174,6 +175,12 @@ FFmpegDemuxerStream::FFmpegDemuxerStream(FFmpegDemuxer* demuxer,
}
}
+FFmpegDemuxerStream::~FFmpegDemuxerStream() {
+ DCHECK(!demuxer_);
+ DCHECK(read_cb_.is_null());
+ DCHECK(buffer_queue_.IsEmpty());
+}
+
void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
DCHECK(task_runner_->BelongsToCurrentThread());
@@ -411,6 +418,11 @@ DemuxerStream::Type FFmpegDemuxerStream::type() {
return type_;
}
+DemuxerStream::Liveness FFmpegDemuxerStream::liveness() {
+ DCHECK(task_runner_->BelongsToCurrentThread());
+ return liveness_;
+}
+
void FFmpegDemuxerStream::Read(const ReadCB& read_cb) {
DCHECK(task_runner_->BelongsToCurrentThread());
CHECK(read_cb_.is_null()) << "Overlapping reads are not supported";
@@ -468,10 +480,9 @@ VideoRotation FFmpegDemuxerStream::video_rotation() {
return video_rotation_;
}
-FFmpegDemuxerStream::~FFmpegDemuxerStream() {
- DCHECK(!demuxer_);
- DCHECK(read_cb_.is_null());
- DCHECK(buffer_queue_.IsEmpty());
+void FFmpegDemuxerStream::SetLiveness(Liveness liveness) {
+ DCHECK_EQ(liveness_, LIVENESS_UNKNOWN);
wolenetz 2014/11/11 23:48:07 nit: DCHECK we're on the right thread?
xhwang 2014/11/14 06:38:04 Done.
+ liveness_ = liveness;
}
base::TimeDelta FFmpegDemuxerStream::GetElapsedTime() const {
@@ -566,7 +577,6 @@ FFmpegDemuxer::FFmpegDemuxer(
start_time_(kNoTimestamp()),
preferred_stream_for_seeking_(-1, kNoTimestamp()),
fallback_stream_for_seeking_(-1, kNoTimestamp()),
- liveness_(LIVENESS_UNKNOWN),
text_enabled_(false),
duration_known_(false),
need_key_cb_(need_key_cb),
@@ -706,11 +716,6 @@ base::TimeDelta FFmpegDemuxer::GetStartTime() const {
return std::max(start_time_, base::TimeDelta());
}
-Demuxer::Liveness FFmpegDemuxer::GetLiveness() const {
- DCHECK(task_runner_->BelongsToCurrentThread());
- return liveness_;
-}
-
void FFmpegDemuxer::AddTextStreams() {
DCHECK(task_runner_->BelongsToCurrentThread());
@@ -983,11 +988,11 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
timeline_offset_ += start_time_;
if (max_duration == kInfiniteDuration() && !timeline_offset_.is_null()) {
- liveness_ = LIVENESS_LIVE;
+ SetLiveness(DemuxerStream::LIVENESS_LIVE);
} else if (max_duration != kInfiniteDuration()) {
- liveness_ = LIVENESS_RECORDED;
+ SetLiveness(DemuxerStream::LIVENESS_RECORDED);
} else {
- liveness_ = LIVENESS_UNKNOWN;
+ SetLiveness(DemuxerStream::LIVENESS_UNKNOWN);
}
// Good to go: set the duration and bitrate and notify we're done
@@ -1270,4 +1275,11 @@ void FFmpegDemuxer::OnDataSourceError() {
host_->OnDemuxerError(PIPELINE_ERROR_READ);
}
+void FFmpegDemuxer::SetLiveness(DemuxerStream::Liveness liveness) {
+ for (const auto& stream : streams_) { // |stream| is a ref to a pointer.
wolenetz 2014/11/11 23:48:07 nit: DCHECK we're on the right thread?
xhwang 2014/11/14 06:38:04 Done.
+ if (stream)
+ stream->SetLiveness(liveness);
+ }
+}
+
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698