| 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 "content/renderer/media/webmediaplayer_ms.h" | 5 #include "content/renderer/media/webmediaplayer_ms.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 paused_(true), | 57 paused_(true), |
| 58 render_frame_suspended_(false), | 58 render_frame_suspended_(false), |
| 59 received_first_frame_(false), | 59 received_first_frame_(false), |
| 60 media_log_(media_log), | 60 media_log_(media_log), |
| 61 renderer_factory_(factory.Pass()), | 61 renderer_factory_(factory.Pass()), |
| 62 media_task_runner_(media_task_runner), | 62 media_task_runner_(media_task_runner), |
| 63 worker_task_runner_(worker_task_runner), | 63 worker_task_runner_(worker_task_runner), |
| 64 gpu_factories_(gpu_factories), | 64 gpu_factories_(gpu_factories), |
| 65 compositor_task_runner_(compositor_task_runner), | 65 compositor_task_runner_(compositor_task_runner), |
| 66 initial_audio_output_device_id_(sink_id.utf8()), | 66 initial_audio_output_device_id_(sink_id.utf8()), |
| 67 initial_security_origin_(security_origin.isNull() | 67 initial_security_origin_(security_origin) { |
| 68 ? url::Origin() | |
| 69 : url::Origin(security_origin)) { | |
| 70 DVLOG(1) << __FUNCTION__; | 68 DVLOG(1) << __FUNCTION__; |
| 71 DCHECK(client); | 69 DCHECK(client); |
| 72 media_log_->AddEvent( | 70 media_log_->AddEvent( |
| 73 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); | 71 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); |
| 74 } | 72 } |
| 75 | 73 |
| 76 WebMediaPlayerMS::~WebMediaPlayerMS() { | 74 WebMediaPlayerMS::~WebMediaPlayerMS() { |
| 77 DVLOG(1) << __FUNCTION__; | 75 DVLOG(1) << __FUNCTION__; |
| 78 DCHECK(thread_checker_.CalledOnValidThread()); | 76 DCHECK(thread_checker_.CalledOnValidThread()); |
| 79 | 77 |
| 80 if (compositor_ && !compositor_task_runner_->BelongsToCurrentThread()) | 78 if (compositor_) |
| 81 compositor_task_runner_->DeleteSoon(FROM_HERE, compositor_.release()); | 79 compositor_task_runner_->DeleteSoon(FROM_HERE, compositor_.release()); |
| 82 | 80 |
| 83 get_client()->setWebLayer(nullptr); | 81 get_client()->setWebLayer(nullptr); |
| 84 | 82 |
| 85 if (video_frame_provider_) | 83 if (video_frame_provider_) |
| 86 video_frame_provider_->Stop(); | 84 video_frame_provider_->Stop(); |
| 87 | 85 |
| 88 if (audio_renderer_) | 86 if (audio_renderer_) |
| 89 audio_renderer_->Stop(); | 87 audio_renderer_->Stop(); |
| 90 | 88 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 114 | 112 |
| 115 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( | 113 video_frame_provider_ = renderer_factory_->GetVideoFrameProvider( |
| 116 url, | 114 url, |
| 117 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), | 115 base::Bind(&WebMediaPlayerMS::OnSourceError, AsWeakPtr()), |
| 118 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()), | 116 base::Bind(&WebMediaPlayerMS::OnFrameAvailable, AsWeakPtr()), |
| 119 media_task_runner_, | 117 media_task_runner_, |
| 120 worker_task_runner_, | 118 worker_task_runner_, |
| 121 gpu_factories_); | 119 gpu_factories_); |
| 122 | 120 |
| 123 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); | 121 RenderFrame* const frame = RenderFrame::FromWebFrame(frame_); |
| 124 | 122 audio_renderer_ = renderer_factory_->GetAudioRenderer( |
| 125 if (frame) { | 123 url, frame->GetRoutingID(), initial_audio_output_device_id_, |
| 126 audio_renderer_ = renderer_factory_->GetAudioRenderer( | 124 initial_security_origin_); |
| 127 url, frame->GetRoutingID(), initial_audio_output_device_id_, | |
| 128 initial_security_origin_); | |
| 129 } | |
| 130 | 125 |
| 131 if (!video_frame_provider_ && !audio_renderer_) { | 126 if (!video_frame_provider_ && !audio_renderer_) { |
| 132 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); | 127 SetNetworkState(WebMediaPlayer::NetworkStateNetworkError); |
| 133 return; | 128 return; |
| 134 } | 129 } |
| 135 | 130 |
| 136 if (audio_renderer_) { | 131 if (audio_renderer_) { |
| 137 audio_renderer_->SetVolume(DEFAULT_AUDIO_VOLUME); | 132 audio_renderer_->SetVolume(DEFAULT_AUDIO_VOLUME); |
| 138 audio_renderer_->Start(); | 133 audio_renderer_->Start(); |
| 139 } | 134 } |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 } | 472 } |
| 478 | 473 |
| 479 media::SkCanvasVideoRenderer* WebMediaPlayerMS::GetSkCanvasVideoRenderer() { | 474 media::SkCanvasVideoRenderer* WebMediaPlayerMS::GetSkCanvasVideoRenderer() { |
| 480 return &video_renderer_; | 475 return &video_renderer_; |
| 481 } | 476 } |
| 482 | 477 |
| 483 void WebMediaPlayerMS::ResetCanvasCache() { | 478 void WebMediaPlayerMS::ResetCanvasCache() { |
| 484 DCHECK(thread_checker_.CalledOnValidThread()); | 479 DCHECK(thread_checker_.CalledOnValidThread()); |
| 485 video_renderer_.ResetCache(); | 480 video_renderer_.ResetCache(); |
| 486 } | 481 } |
| 487 | |
| 488 } // namespace content | 482 } // namespace content |
| OLD | NEW |