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

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

Issue 1873513003: Add video-rendering to mojo media pipeline. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: minor cleanup Created 4 years, 8 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 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 supports_save_(true), 189 supports_save_(true),
190 chunk_demuxer_(NULL), 190 chunk_demuxer_(NULL),
191 url_index_(url_index), 191 url_index_(url_index),
192 // Threaded compositing isn't enabled universally yet. 192 // Threaded compositing isn't enabled universally yet.
193 compositor_task_runner_( 193 compositor_task_runner_(
194 params.compositor_task_runner() 194 params.compositor_task_runner()
195 ? params.compositor_task_runner() 195 ? params.compositor_task_runner()
196 : base::MessageLoop::current()->task_runner()), 196 : base::MessageLoop::current()->task_runner()),
197 compositor_(new VideoFrameCompositor( 197 compositor_(new VideoFrameCompositor(
198 compositor_task_runner_, 198 compositor_task_runner_,
199 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNaturalSizeChanged),
200 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnOpacityChanged))), 199 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnOpacityChanged))),
201 is_cdm_attached_(false), 200 is_cdm_attached_(false),
202 #if defined(OS_ANDROID) // WMPI_CAST 201 #if defined(OS_ANDROID) // WMPI_CAST
203 cast_impl_(this, client_, params.context_3d_cb()), 202 cast_impl_(this, client_, params.context_3d_cb()),
204 #endif 203 #endif
205 volume_(1.0), 204 volume_(1.0),
206 volume_multiplier_(1.0), 205 volume_multiplier_(1.0),
207 renderer_factory_(std::move(renderer_factory)), 206 renderer_factory_(std::move(renderer_factory)),
208 surface_manager_(params.surface_manager()), 207 surface_manager_(params.surface_manager()),
209 suppress_destruction_errors_(false) { 208 suppress_destruction_errors_(false) {
(...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after
1282 // ... and we're ready to go! 1281 // ... and we're ready to go!
1283 seeking_ = true; 1282 seeking_ = true;
1284 1283
1285 // TODO(sandersd): On Android, defer Start() if the tab is not visible. 1284 // TODO(sandersd): On Android, defer Start() if the tab is not visible.
1286 bool is_streaming = (data_source_ && data_source_->IsStreaming()); 1285 bool is_streaming = (data_source_ && data_source_->IsStreaming());
1287 pipeline_controller_.Start( 1286 pipeline_controller_.Start(
1288 demuxer_.get(), is_streaming, is_static, 1287 demuxer_.get(), is_streaming, is_static,
1289 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded), 1288 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineEnded),
1290 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata), 1289 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineMetadata),
1291 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged), 1290 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnPipelineBufferingStateChanged),
1291 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNaturalSizeChanged),
1292 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged), 1292 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnDurationChanged),
1293 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack), 1293 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnAddTextTrack),
1294 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey)); 1294 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnWaitingForDecryptionKey));
1295 } 1295 }
1296 1296
1297 void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) { 1297 void WebMediaPlayerImpl::SetNetworkState(WebMediaPlayer::NetworkState state) {
1298 DVLOG(1) << __FUNCTION__ << "(" << state << ")"; 1298 DVLOG(1) << __FUNCTION__ << "(" << state << ")";
1299 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1299 DCHECK(main_task_runner_->BelongsToCurrentThread());
1300 network_state_ = state; 1300 network_state_ = state;
1301 // Always notify to ensure client has the latest value. 1301 // Always notify to ensure client has the latest value.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 1335
1336 void WebMediaPlayerImpl::OnDurationChanged() { 1336 void WebMediaPlayerImpl::OnDurationChanged() {
1337 // TODO(sandersd): We should call delegate_->DidPlay() with the new duration, 1337 // TODO(sandersd): We should call delegate_->DidPlay() with the new duration,
1338 // especially if it changed from <5s to >5s. 1338 // especially if it changed from <5s to >5s.
1339 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) 1339 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing)
1340 return; 1340 return;
1341 1341
1342 client_->durationChanged(); 1342 client_->durationChanged();
1343 } 1343 }
1344 1344
1345 void WebMediaPlayerImpl::OnNaturalSizeChanged(gfx::Size size) { 1345 void WebMediaPlayerImpl::OnNaturalSizeChanged(const gfx::Size& size) {
1346 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1346 DCHECK(main_task_runner_->BelongsToCurrentThread());
1347 DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing); 1347 DCHECK_NE(ready_state_, WebMediaPlayer::ReadyStateHaveNothing);
1348 TRACE_EVENT0("media", "WebMediaPlayerImpl::OnNaturalSizeChanged"); 1348 TRACE_EVENT0("media", "WebMediaPlayerImpl::OnNaturalSizeChanged");
1349 1349
1350 media_log_->AddEvent( 1350 media_log_->AddEvent(
1351 media_log_->CreateVideoSizeSetEvent(size.width(), size.height())); 1351 media_log_->CreateVideoSizeSetEvent(size.width(), size.height()));
1352 1352
1353 if (fullscreen_ && surface_manager_ && 1353 if (fullscreen_ && surface_manager_ &&
1354 pipeline_metadata_.natural_size != size) { 1354 pipeline_metadata_.natural_size != size) {
1355 surface_manager_->NaturalSizeChanged(size); 1355 surface_manager_->NaturalSizeChanged(size);
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1587 << ", Video: " << stats.video_memory_usage << ", DataSource: " 1587 << ", Video: " << stats.video_memory_usage << ", DataSource: "
1588 << (data_source_ ? data_source_->GetMemoryUsage() : 0) 1588 << (data_source_ ? data_source_->GetMemoryUsage() : 0)
1589 << ", Demuxer: " << demuxer_memory_usage; 1589 << ", Demuxer: " << demuxer_memory_usage;
1590 1590
1591 const int64_t delta = current_memory_usage - last_reported_memory_usage_; 1591 const int64_t delta = current_memory_usage - last_reported_memory_usage_;
1592 last_reported_memory_usage_ = current_memory_usage; 1592 last_reported_memory_usage_ = current_memory_usage;
1593 adjust_allocated_memory_cb_.Run(delta); 1593 adjust_allocated_memory_cb_.Run(delta);
1594 } 1594 }
1595 1595
1596 } // namespace media 1596 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698