| 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 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 compositor_task_runner_, | 179 compositor_task_runner_, |
| 180 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNaturalSizeChanged), | 180 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNaturalSizeChanged), |
| 181 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnOpacityChanged))), | 181 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnOpacityChanged))), |
| 182 is_cdm_attached_(false), | 182 is_cdm_attached_(false), |
| 183 #if defined(OS_ANDROID) // WMPI_CAST | 183 #if defined(OS_ANDROID) // WMPI_CAST |
| 184 cast_impl_(this, client_, params.context_3d_cb()), | 184 cast_impl_(this, client_, params.context_3d_cb()), |
| 185 #endif | 185 #endif |
| 186 volume_(1.0), | 186 volume_(1.0), |
| 187 volume_multiplier_(1.0), | 187 volume_multiplier_(1.0), |
| 188 renderer_factory_(std::move(renderer_factory)), | 188 renderer_factory_(std::move(renderer_factory)), |
| 189 surface_manager_(params.surface_manager()) { | 189 surface_manager_(params.surface_manager()), |
| 190 suppress_destruction_errors_(false) { |
| 190 DCHECK(!adjust_allocated_memory_cb_.is_null()); | 191 DCHECK(!adjust_allocated_memory_cb_.is_null()); |
| 191 DCHECK(renderer_factory_); | 192 DCHECK(renderer_factory_); |
| 192 | 193 |
| 193 if (delegate_) | 194 if (delegate_) |
| 194 delegate_id_ = delegate_->AddObserver(this); | 195 delegate_id_ = delegate_->AddObserver(this); |
| 195 | 196 |
| 196 media_log_->AddEvent( | 197 media_log_->AddEvent( |
| 197 media_log_->CreateEvent(MediaLogEvent::WEBMEDIAPLAYER_CREATED)); | 198 media_log_->CreateEvent(MediaLogEvent::WEBMEDIAPLAYER_CREATED)); |
| 198 | 199 |
| 199 if (params.initial_cdm()) { | 200 if (params.initial_cdm()) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 216 client_->setWebLayer(NULL); | 217 client_->setWebLayer(NULL); |
| 217 | 218 |
| 218 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 219 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 219 | 220 |
| 220 if (delegate_) { | 221 if (delegate_) { |
| 221 delegate_->PlayerGone(delegate_id_); | 222 delegate_->PlayerGone(delegate_id_); |
| 222 delegate_->RemoveObserver(delegate_id_); | 223 delegate_->RemoveObserver(delegate_id_); |
| 223 } | 224 } |
| 224 | 225 |
| 225 // Abort any pending IO so stopping the pipeline doesn't get blocked. | 226 // Abort any pending IO so stopping the pipeline doesn't get blocked. |
| 227 suppress_destruction_errors_ = true; |
| 226 if (data_source_) | 228 if (data_source_) |
| 227 data_source_->Abort(); | 229 data_source_->Abort(); |
| 228 if (chunk_demuxer_) { | 230 if (chunk_demuxer_) { |
| 229 chunk_demuxer_->Shutdown(); | 231 chunk_demuxer_->Shutdown(); |
| 230 chunk_demuxer_ = NULL; | 232 chunk_demuxer_ = NULL; |
| 231 } | 233 } |
| 232 | 234 |
| 233 renderer_factory_.reset(); | 235 renderer_factory_.reset(); |
| 234 | 236 |
| 235 // Make sure to kill the pipeline so there's no more media threads running. | 237 // Make sure to kill the pipeline so there's no more media threads running. |
| (...skipping 759 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 995 | 997 |
| 996 ended_ = true; | 998 ended_ = true; |
| 997 client_->timeChanged(); | 999 client_->timeChanged(); |
| 998 } | 1000 } |
| 999 | 1001 |
| 1000 void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { | 1002 void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { |
| 1001 DVLOG(1) << __FUNCTION__; | 1003 DVLOG(1) << __FUNCTION__; |
| 1002 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 1004 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 1003 DCHECK_NE(error, PIPELINE_OK); | 1005 DCHECK_NE(error, PIPELINE_OK); |
| 1004 | 1006 |
| 1007 if (suppress_destruction_errors_) |
| 1008 return; |
| 1009 |
| 1010 media_log_->AddEvent(media_log_->CreatePipelineErrorEvent(error)); |
| 1011 |
| 1005 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) { | 1012 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) { |
| 1006 // Any error that occurs before reaching ReadyStateHaveMetadata should | 1013 // Any error that occurs before reaching ReadyStateHaveMetadata should |
| 1007 // be considered a format error. | 1014 // be considered a format error. |
| 1008 SetNetworkState(WebMediaPlayer::NetworkStateFormatError); | 1015 SetNetworkState(WebMediaPlayer::NetworkStateFormatError); |
| 1009 return; | 1016 return; |
| 1010 } | 1017 } |
| 1011 | 1018 |
| 1012 SetNetworkState(PipelineErrorToNetworkState(error)); | 1019 SetNetworkState(PipelineErrorToNetworkState(error)); |
| 1013 } | 1020 } |
| 1014 | 1021 |
| (...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1632 << ", Video: " << stats.video_memory_usage << ", DataSource: " | 1639 << ", Video: " << stats.video_memory_usage << ", DataSource: " |
| 1633 << (data_source_ ? data_source_->GetMemoryUsage() : 0) | 1640 << (data_source_ ? data_source_->GetMemoryUsage() : 0) |
| 1634 << ", Demuxer: " << demuxer_memory_usage; | 1641 << ", Demuxer: " << demuxer_memory_usage; |
| 1635 | 1642 |
| 1636 const int64_t delta = current_memory_usage - last_reported_memory_usage_; | 1643 const int64_t delta = current_memory_usage - last_reported_memory_usage_; |
| 1637 last_reported_memory_usage_ = current_memory_usage; | 1644 last_reported_memory_usage_ = current_memory_usage; |
| 1638 adjust_allocated_memory_cb_.Run(delta); | 1645 adjust_allocated_memory_cb_.Run(delta); |
| 1639 } | 1646 } |
| 1640 | 1647 |
| 1641 } // namespace media | 1648 } // namespace media |
| OLD | NEW |