| 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 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 compositor_task_runner_, | 180 compositor_task_runner_, |
| 181 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNaturalSizeChanged), | 181 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnNaturalSizeChanged), |
| 182 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnOpacityChanged))), | 182 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnOpacityChanged))), |
| 183 is_cdm_attached_(false), | 183 is_cdm_attached_(false), |
| 184 #if defined(OS_ANDROID) // WMPI_CAST | 184 #if defined(OS_ANDROID) // WMPI_CAST |
| 185 cast_impl_(this, client_, params.context_3d_cb()), | 185 cast_impl_(this, client_, params.context_3d_cb()), |
| 186 #endif | 186 #endif |
| 187 volume_(1.0), | 187 volume_(1.0), |
| 188 volume_multiplier_(1.0), | 188 volume_multiplier_(1.0), |
| 189 renderer_factory_(std::move(renderer_factory)), | 189 renderer_factory_(std::move(renderer_factory)), |
| 190 surface_manager_(params.surface_manager()) { | 190 surface_manager_(params.surface_manager()), |
| 191 suppress_destruction_errors_(false) { |
| 191 DCHECK(!adjust_allocated_memory_cb_.is_null()); | 192 DCHECK(!adjust_allocated_memory_cb_.is_null()); |
| 192 DCHECK(renderer_factory_); | 193 DCHECK(renderer_factory_); |
| 193 | 194 |
| 194 if (delegate_) | 195 if (delegate_) |
| 195 delegate_id_ = delegate_->AddObserver(this); | 196 delegate_id_ = delegate_->AddObserver(this); |
| 196 | 197 |
| 197 media_log_->AddEvent( | 198 media_log_->AddEvent( |
| 198 media_log_->CreateEvent(MediaLogEvent::WEBMEDIAPLAYER_CREATED)); | 199 media_log_->CreateEvent(MediaLogEvent::WEBMEDIAPLAYER_CREATED)); |
| 199 | 200 |
| 200 if (params.initial_cdm()) { | 201 if (params.initial_cdm()) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 217 client_->setWebLayer(NULL); | 218 client_->setWebLayer(NULL); |
| 218 | 219 |
| 219 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 220 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 220 | 221 |
| 221 if (delegate_) { | 222 if (delegate_) { |
| 222 delegate_->PlayerGone(delegate_id_); | 223 delegate_->PlayerGone(delegate_id_); |
| 223 delegate_->RemoveObserver(delegate_id_); | 224 delegate_->RemoveObserver(delegate_id_); |
| 224 } | 225 } |
| 225 | 226 |
| 226 // Abort any pending IO so stopping the pipeline doesn't get blocked. | 227 // Abort any pending IO so stopping the pipeline doesn't get blocked. |
| 228 suppress_destruction_errors_ = true; |
| 227 if (data_source_) | 229 if (data_source_) |
| 228 data_source_->Abort(); | 230 data_source_->Abort(); |
| 229 if (chunk_demuxer_) { | 231 if (chunk_demuxer_) { |
| 230 chunk_demuxer_->Shutdown(); | 232 chunk_demuxer_->Shutdown(); |
| 231 chunk_demuxer_ = NULL; | 233 chunk_demuxer_ = NULL; |
| 232 } | 234 } |
| 233 | 235 |
| 234 renderer_factory_.reset(); | 236 renderer_factory_.reset(); |
| 235 | 237 |
| 236 // Make sure to kill the pipeline so there's no more media threads running. | 238 // Make sure to kill the pipeline so there's no more media threads running. |
| (...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 971 | 973 |
| 972 ended_ = true; | 974 ended_ = true; |
| 973 client_->timeChanged(); | 975 client_->timeChanged(); |
| 974 } | 976 } |
| 975 | 977 |
| 976 void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { | 978 void WebMediaPlayerImpl::OnPipelineError(PipelineStatus error) { |
| 977 DVLOG(1) << __FUNCTION__; | 979 DVLOG(1) << __FUNCTION__; |
| 978 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 980 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 979 DCHECK_NE(error, PIPELINE_OK); | 981 DCHECK_NE(error, PIPELINE_OK); |
| 980 | 982 |
| 983 if (suppress_destruction_errors_) |
| 984 return; |
| 985 |
| 986 media_log_->AddEvent(media_log_->CreatePipelineErrorEvent(error)); |
| 987 |
| 981 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) { | 988 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) { |
| 982 // Any error that occurs before reaching ReadyStateHaveMetadata should | 989 // Any error that occurs before reaching ReadyStateHaveMetadata should |
| 983 // be considered a format error. | 990 // be considered a format error. |
| 984 SetNetworkState(WebMediaPlayer::NetworkStateFormatError); | 991 SetNetworkState(WebMediaPlayer::NetworkStateFormatError); |
| 985 return; | 992 return; |
| 986 } | 993 } |
| 987 | 994 |
| 988 SetNetworkState(PipelineErrorToNetworkState(error)); | 995 SetNetworkState(PipelineErrorToNetworkState(error)); |
| 989 } | 996 } |
| 990 | 997 |
| (...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1596 << ", Video: " << stats.video_memory_usage << ", DataSource: " | 1603 << ", Video: " << stats.video_memory_usage << ", DataSource: " |
| 1597 << (data_source_ ? data_source_->GetMemoryUsage() : 0) | 1604 << (data_source_ ? data_source_->GetMemoryUsage() : 0) |
| 1598 << ", Demuxer: " << demuxer_memory_usage; | 1605 << ", Demuxer: " << demuxer_memory_usage; |
| 1599 | 1606 |
| 1600 const int64_t delta = current_memory_usage - last_reported_memory_usage_; | 1607 const int64_t delta = current_memory_usage - last_reported_memory_usage_; |
| 1601 last_reported_memory_usage_ = current_memory_usage; | 1608 last_reported_memory_usage_ = current_memory_usage; |
| 1602 adjust_allocated_memory_cb_.Run(delta); | 1609 adjust_allocated_memory_cb_.Run(delta); |
| 1603 } | 1610 } |
| 1604 | 1611 |
| 1605 } // namespace media | 1612 } // namespace media |
| OLD | NEW |