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

Side by Side Diff: media/mojo/services/mojo_renderer_service.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/mojo/services/mojo_renderer_service.h" 5 #include "media/mojo/services/mojo_renderer_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "media/base/media_keys.h" 10 #include "media/base/media_keys.h"
11 #include "media/base/renderer.h" 11 #include "media/base/renderer.h"
12 #include "media/mojo/services/demuxer_stream_provider_shim.h" 12 #include "media/mojo/services/demuxer_stream_provider_shim.h"
13 #include "media/mojo/services/mojo_cdm_service_context.h" 13 #include "media/mojo/services/mojo_cdm_service_context.h"
14 #include "mojo/converters/geometry/geometry_type_converters.h"
14 15
15 namespace media { 16 namespace media {
16 17
17 // Time interval to update media time. 18 // Time interval to update media time.
18 const int kTimeUpdateIntervalMs = 50; 19 const int kTimeUpdateIntervalMs = 50;
19 20
20 MojoRendererService::MojoRendererService( 21 MojoRendererService::MojoRendererService(
21 base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context, 22 base::WeakPtr<MojoCdmServiceContext> mojo_cdm_service_context,
22 std::unique_ptr<media::Renderer> renderer, 23 std::unique_ptr<media::Renderer> renderer,
23 mojo::InterfaceRequest<interfaces::Renderer> request) 24 mojo::InterfaceRequest<interfaces::Renderer> request)
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 renderer_->SetCdm(cdm_context, base::Bind(&MojoRendererService::OnCdmAttached, 103 renderer_->SetCdm(cdm_context, base::Bind(&MojoRendererService::OnCdmAttached,
103 weak_this_, cdm, callback)); 104 weak_this_, cdm, callback));
104 } 105 }
105 106
106 void MojoRendererService::OnStreamReady( 107 void MojoRendererService::OnStreamReady(
107 const mojo::Callback<void(bool)>& callback) { 108 const mojo::Callback<void(bool)>& callback) {
108 DCHECK_EQ(state_, STATE_INITIALIZING); 109 DCHECK_EQ(state_, STATE_INITIALIZING);
109 110
110 renderer_->Initialize( 111 renderer_->Initialize(
111 stream_provider_.get(), 112 stream_provider_.get(),
112 base::Bind( 113 base::Bind(&MojoRendererService::OnRendererInitializeDone, weak_this_,
113 &MojoRendererService::OnRendererInitializeDone, weak_this_, callback), 114 callback),
114 base::Bind(&MojoRendererService::OnUpdateStatistics, weak_this_), 115 base::Bind(&MojoRendererService::OnUpdateStatistics, weak_this_),
115 base::Bind(&MojoRendererService::OnBufferingStateChanged, weak_this_), 116 base::Bind(&MojoRendererService::OnBufferingStateChanged, weak_this_),
117 base::Bind(&MojoRendererService::OnNaturalSizeChanged, weak_this_),
116 base::Bind(&MojoRendererService::OnRendererEnded, weak_this_), 118 base::Bind(&MojoRendererService::OnRendererEnded, weak_this_),
117 base::Bind(&MojoRendererService::OnError, weak_this_), 119 base::Bind(&MojoRendererService::OnError, weak_this_),
118 base::Bind(base::DoNothing)); 120 base::Bind(base::DoNothing));
119 } 121 }
120 122
121 void MojoRendererService::OnRendererInitializeDone( 123 void MojoRendererService::OnRendererInitializeDone(
122 const mojo::Callback<void(bool)>& callback, 124 const mojo::Callback<void(bool)>& callback,
123 PipelineStatus status) { 125 PipelineStatus status) {
124 DVLOG(1) << __FUNCTION__; 126 DVLOG(1) << __FUNCTION__;
125 DCHECK_EQ(state_, STATE_INITIALIZING); 127 DCHECK_EQ(state_, STATE_INITIALIZING);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 base::Bind(&MojoRendererService::UpdateMediaTime, weak_this_, false)); 163 base::Bind(&MojoRendererService::UpdateMediaTime, weak_this_, false));
162 } 164 }
163 165
164 void MojoRendererService::OnBufferingStateChanged( 166 void MojoRendererService::OnBufferingStateChanged(
165 BufferingState new_buffering_state) { 167 BufferingState new_buffering_state) {
166 DVLOG(2) << __FUNCTION__ << "(" << new_buffering_state << ")"; 168 DVLOG(2) << __FUNCTION__ << "(" << new_buffering_state << ")";
167 client_->OnBufferingStateChange( 169 client_->OnBufferingStateChange(
168 static_cast<interfaces::BufferingState>(new_buffering_state)); 170 static_cast<interfaces::BufferingState>(new_buffering_state));
169 } 171 }
170 172
173 void MojoRendererService::OnNaturalSizeChanged(const gfx::Size& size) {
174 DVLOG(2) << __FUNCTION__ << "(" << size.ToString() << ")";
175 client_->OnNaturalSizeChanged(mojo::Size::From(size));
176 }
177
171 void MojoRendererService::OnRendererEnded() { 178 void MojoRendererService::OnRendererEnded() {
172 DVLOG(1) << __FUNCTION__; 179 DVLOG(1) << __FUNCTION__;
173 CancelPeriodicMediaTimeUpdates(); 180 CancelPeriodicMediaTimeUpdates();
174 client_->OnEnded(); 181 client_->OnEnded();
175 } 182 }
176 183
177 void MojoRendererService::OnError(PipelineStatus error) { 184 void MojoRendererService::OnError(PipelineStatus error) {
178 DVLOG(1) << __FUNCTION__ << "(" << error << ")"; 185 DVLOG(1) << __FUNCTION__ << "(" << error << ")";
179 state_ = STATE_ERROR; 186 state_ = STATE_ERROR;
180 client_->OnError(); 187 client_->OnError();
(...skipping 12 matching lines...) Expand all
193 bool success) { 200 bool success) {
194 DVLOG(1) << __FUNCTION__ << "(" << success << ")"; 201 DVLOG(1) << __FUNCTION__ << "(" << success << ")";
195 202
196 if (success) 203 if (success)
197 cdm_ = cdm; 204 cdm_ = cdm;
198 205
199 callback.Run(success); 206 callback.Run(success);
200 } 207 }
201 208
202 } // namespace media 209 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698