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

Side by Side Diff: media/blink/webmediaplayer_impl.cc

Issue 1658303002: Create abstract interface for media::Pipeline. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Separate PipelineImpl. Created 4 years, 10 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/blink/webmediaplayer_impl.h" 5 #include "media/blink/webmediaplayer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <string> 10 #include <string>
(...skipping 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after
1209 // It is safe to call GetCurrentFrameTimestamp() because VFC is stopped 1209 // It is safe to call GetCurrentFrameTimestamp() because VFC is stopped
1210 // during Suspend(). It won't be started again until after Resume() is 1210 // during Suspend(). It won't be started again until after Resume() is
1211 // called. 1211 // called.
1212 seek_time_ = compositor_->GetCurrentFrameTimestamp(); 1212 seek_time_ = compositor_->GetCurrentFrameTimestamp();
1213 } 1213 }
1214 1214
1215 if (chunk_demuxer_) 1215 if (chunk_demuxer_)
1216 chunk_demuxer_->StartWaitingForSeek(seek_time_); 1216 chunk_demuxer_->StartWaitingForSeek(seek_time_);
1217 1217
1218 resuming_ = true; 1218 resuming_ = true;
1219 pipeline_.Resume(CreateRenderer(), seek_time_, 1219 scoped_ptr<Renderer> renderer = CreateRenderer();
1220 pipeline_.Resume(&renderer, seek_time_,
1220 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked, 1221 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked,
1221 time_changed)); 1222 time_changed));
1222 } 1223 }
1223 1224
1224 #if defined(OS_ANDROID) // WMPI_CAST 1225 #if defined(OS_ANDROID) // WMPI_CAST
1225 1226
1226 bool WebMediaPlayerImpl::isRemote() const { 1227 bool WebMediaPlayerImpl::isRemote() const {
1227 return cast_impl_.isRemote(); 1228 return cast_impl_.isRemote();
1228 } 1229 }
1229 1230
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1340 chunk_demuxer_ = new ChunkDemuxer( 1341 chunk_demuxer_ = new ChunkDemuxer(
1341 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened), 1342 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDemuxerOpened),
1342 encrypted_media_init_data_cb, media_log_, true); 1343 encrypted_media_init_data_cb, media_log_, true);
1343 demuxer_.reset(chunk_demuxer_); 1344 demuxer_.reset(chunk_demuxer_);
1344 } 1345 }
1345 1346
1346 // ... and we're ready to go! 1347 // ... and we're ready to go!
1347 seeking_ = true; 1348 seeking_ = true;
1348 1349
1349 // TODO(sandersd): On Android, defer Start() if the tab is not visible. 1350 // TODO(sandersd): On Android, defer Start() if the tab is not visible.
1351 scoped_ptr<Renderer> renderer = CreateRenderer();
1350 pipeline_.Start( 1352 pipeline_.Start(
1351 demuxer_.get(), CreateRenderer(), 1353 demuxer_.get(), &renderer,
1352 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), 1354 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded),
1353 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError), 1355 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineError),
1354 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked, false), 1356 BIND_TO_RENDER_LOOP1(&WebMediaPlayerImpl::OnPipelineSeeked, false),
1355 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata), 1357 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata),
1356 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged), 1358 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged),
1357 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged), 1359 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged),
1358 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack), 1360 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack),
1359 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey)); 1361 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey));
1360 } 1362 }
1361 1363
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1523 << ", Video: " << stats.video_memory_usage << ", DataSource: " 1525 << ", Video: " << stats.video_memory_usage << ", DataSource: "
1524 << (data_source_ ? data_source_->GetMemoryUsage() : 0) 1526 << (data_source_ ? data_source_->GetMemoryUsage() : 0)
1525 << ", Demuxer: " << demuxer_memory_usage; 1527 << ", Demuxer: " << demuxer_memory_usage;
1526 1528
1527 const int64_t delta = current_memory_usage - last_reported_memory_usage_; 1529 const int64_t delta = current_memory_usage - last_reported_memory_usage_;
1528 last_reported_memory_usage_ = current_memory_usage; 1530 last_reported_memory_usage_ = current_memory_usage;
1529 adjust_allocated_memory_cb_.Run(delta); 1531 adjust_allocated_memory_cb_.Run(delta);
1530 } 1532 }
1531 1533
1532 } // namespace media 1534 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698