OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |