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

Side by Side Diff: media/mojo/services/mojo_renderer_service.cc

Issue 2080083002: Revert of Deletes mojo::Callback (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « media/mojo/services/mojo_renderer_service.h ('k') | mojo/mojo_public.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
(...skipping 18 matching lines...) Expand all
29 weak_factory_(this) { 29 weak_factory_(this) {
30 DVLOG(1) << __FUNCTION__; 30 DVLOG(1) << __FUNCTION__;
31 DCHECK(renderer_); 31 DCHECK(renderer_);
32 32
33 weak_this_ = weak_factory_.GetWeakPtr(); 33 weak_this_ = weak_factory_.GetWeakPtr();
34 } 34 }
35 35
36 MojoRendererService::~MojoRendererService() { 36 MojoRendererService::~MojoRendererService() {
37 } 37 }
38 38
39 void MojoRendererService::Initialize(mojom::RendererClientPtr client, 39 void MojoRendererService::Initialize(
40 mojom::DemuxerStreamPtr audio, 40 mojom::RendererClientPtr client,
41 mojom::DemuxerStreamPtr video, 41 mojom::DemuxerStreamPtr audio,
42 const InitializeCallback& callback) { 42 mojom::DemuxerStreamPtr video,
43 const mojo::Callback<void(bool)>& callback) {
43 DVLOG(1) << __FUNCTION__; 44 DVLOG(1) << __FUNCTION__;
44 DCHECK_EQ(state_, STATE_UNINITIALIZED); 45 DCHECK_EQ(state_, STATE_UNINITIALIZED);
45 client_ = std::move(client); 46 client_ = std::move(client);
46 state_ = STATE_INITIALIZING; 47 state_ = STATE_INITIALIZING;
47 stream_provider_.reset(new DemuxerStreamProviderShim( 48 stream_provider_.reset(new DemuxerStreamProviderShim(
48 std::move(audio), std::move(video), 49 std::move(audio), std::move(video),
49 base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback))); 50 base::Bind(&MojoRendererService::OnStreamReady, weak_this_, callback)));
50 } 51 }
51 52
52 void MojoRendererService::Flush(const FlushCallback& callback) { 53 void MojoRendererService::Flush(const mojo::Closure& callback) {
53 DVLOG(2) << __FUNCTION__; 54 DVLOG(2) << __FUNCTION__;
54 DCHECK_EQ(state_, STATE_PLAYING); 55 DCHECK_EQ(state_, STATE_PLAYING);
55 56
56 state_ = STATE_FLUSHING; 57 state_ = STATE_FLUSHING;
57 CancelPeriodicMediaTimeUpdates(); 58 CancelPeriodicMediaTimeUpdates();
58 renderer_->Flush( 59 renderer_->Flush(
59 base::Bind(&MojoRendererService::OnFlushCompleted, weak_this_, callback)); 60 base::Bind(&MojoRendererService::OnFlushCompleted, weak_this_, callback));
60 } 61 }
61 62
62 void MojoRendererService::StartPlayingFrom(int64_t time_delta_usec) { 63 void MojoRendererService::StartPlayingFrom(int64_t time_delta_usec) {
63 DVLOG(2) << __FUNCTION__ << ": " << time_delta_usec; 64 DVLOG(2) << __FUNCTION__ << ": " << time_delta_usec;
64 renderer_->StartPlayingFrom( 65 renderer_->StartPlayingFrom(
65 base::TimeDelta::FromMicroseconds(time_delta_usec)); 66 base::TimeDelta::FromMicroseconds(time_delta_usec));
66 SchedulePeriodicMediaTimeUpdates(); 67 SchedulePeriodicMediaTimeUpdates();
67 } 68 }
68 69
69 void MojoRendererService::SetPlaybackRate(double playback_rate) { 70 void MojoRendererService::SetPlaybackRate(double playback_rate) {
70 DVLOG(2) << __FUNCTION__ << ": " << playback_rate; 71 DVLOG(2) << __FUNCTION__ << ": " << playback_rate;
71 DCHECK_EQ(state_, STATE_PLAYING); 72 DCHECK_EQ(state_, STATE_PLAYING);
72 renderer_->SetPlaybackRate(playback_rate); 73 renderer_->SetPlaybackRate(playback_rate);
73 } 74 }
74 75
75 void MojoRendererService::SetVolume(float volume) { 76 void MojoRendererService::SetVolume(float volume) {
76 renderer_->SetVolume(volume); 77 renderer_->SetVolume(volume);
77 } 78 }
78 79
79 void MojoRendererService::SetCdm(int32_t cdm_id, 80 void MojoRendererService::SetCdm(int32_t cdm_id,
80 const SetCdmCallback& callback) { 81 const mojo::Callback<void(bool)>& callback) {
81 if (!mojo_cdm_service_context_) { 82 if (!mojo_cdm_service_context_) {
82 DVLOG(1) << "CDM service context not available."; 83 DVLOG(1) << "CDM service context not available.";
83 callback.Run(false); 84 callback.Run(false);
84 return; 85 return;
85 } 86 }
86 87
87 scoped_refptr<MediaKeys> cdm = mojo_cdm_service_context_->GetCdm(cdm_id); 88 scoped_refptr<MediaKeys> cdm = mojo_cdm_service_context_->GetCdm(cdm_id);
88 if (!cdm) { 89 if (!cdm) {
89 DVLOG(1) << "CDM not found: " << cdm_id; 90 DVLOG(1) << "CDM not found: " << cdm_id;
90 callback.Run(false); 91 callback.Run(false);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 DVLOG(2) << __FUNCTION__ << "(" << size.ToString() << ")"; 132 DVLOG(2) << __FUNCTION__ << "(" << size.ToString() << ")";
132 client_->OnVideoNaturalSizeChange(size); 133 client_->OnVideoNaturalSizeChange(size);
133 } 134 }
134 135
135 void MojoRendererService::OnVideoOpacityChange(bool opaque) { 136 void MojoRendererService::OnVideoOpacityChange(bool opaque) {
136 DVLOG(2) << __FUNCTION__ << "(" << opaque << ")"; 137 DVLOG(2) << __FUNCTION__ << "(" << opaque << ")";
137 client_->OnVideoOpacityChange(opaque); 138 client_->OnVideoOpacityChange(opaque);
138 } 139 }
139 140
140 void MojoRendererService::OnStreamReady( 141 void MojoRendererService::OnStreamReady(
141 const base::Callback<void(bool)>& callback) { 142 const mojo::Callback<void(bool)>& callback) {
142 DCHECK_EQ(state_, STATE_INITIALIZING); 143 DCHECK_EQ(state_, STATE_INITIALIZING);
143 144
144 renderer_->Initialize( 145 renderer_->Initialize(
145 stream_provider_.get(), this, 146 stream_provider_.get(), this,
146 base::Bind(&MojoRendererService::OnRendererInitializeDone, weak_this_, 147 base::Bind(&MojoRendererService::OnRendererInitializeDone, weak_this_,
147 callback)); 148 callback));
148 } 149 }
149 150
150 void MojoRendererService::OnRendererInitializeDone( 151 void MojoRendererService::OnRendererInitializeDone(
151 const base::Callback<void(bool)>& callback, 152 const mojo::Callback<void(bool)>& callback,
152 PipelineStatus status) { 153 PipelineStatus status) {
153 DVLOG(1) << __FUNCTION__; 154 DVLOG(1) << __FUNCTION__;
154 DCHECK_EQ(state_, STATE_INITIALIZING); 155 DCHECK_EQ(state_, STATE_INITIALIZING);
155 156
156 if (status != PIPELINE_OK) { 157 if (status != PIPELINE_OK) {
157 state_ = STATE_ERROR; 158 state_ = STATE_ERROR;
158 callback.Run(false); 159 callback.Run(false);
159 return; 160 return;
160 } 161 }
161 162
(...skipping 18 matching lines...) Expand all
180 181
181 void MojoRendererService::SchedulePeriodicMediaTimeUpdates() { 182 void MojoRendererService::SchedulePeriodicMediaTimeUpdates() {
182 DVLOG(2) << __FUNCTION__; 183 DVLOG(2) << __FUNCTION__;
183 UpdateMediaTime(true); 184 UpdateMediaTime(true);
184 time_update_timer_.Start( 185 time_update_timer_.Start(
185 FROM_HERE, 186 FROM_HERE,
186 base::TimeDelta::FromMilliseconds(kTimeUpdateIntervalMs), 187 base::TimeDelta::FromMilliseconds(kTimeUpdateIntervalMs),
187 base::Bind(&MojoRendererService::UpdateMediaTime, weak_this_, false)); 188 base::Bind(&MojoRendererService::UpdateMediaTime, weak_this_, false));
188 } 189 }
189 190
190 void MojoRendererService::OnFlushCompleted(const FlushCallback& callback) { 191 void MojoRendererService::OnFlushCompleted(const mojo::Closure& callback) {
191 DVLOG(1) << __FUNCTION__; 192 DVLOG(1) << __FUNCTION__;
192 DCHECK_EQ(state_, STATE_FLUSHING); 193 DCHECK_EQ(state_, STATE_FLUSHING);
193 state_ = STATE_PLAYING; 194 state_ = STATE_PLAYING;
194 callback.Run(); 195 callback.Run();
195 } 196 }
196 197
197 void MojoRendererService::OnCdmAttached( 198 void MojoRendererService::OnCdmAttached(
198 scoped_refptr<MediaKeys> cdm, 199 scoped_refptr<MediaKeys> cdm,
199 const base::Callback<void(bool)>& callback, 200 const mojo::Callback<void(bool)>& callback,
200 bool success) { 201 bool success) {
201 DVLOG(1) << __FUNCTION__ << "(" << success << ")"; 202 DVLOG(1) << __FUNCTION__ << "(" << success << ")";
202 203
203 if (success) 204 if (success)
204 cdm_ = cdm; 205 cdm_ = cdm;
205 206
206 callback.Run(success); 207 callback.Run(success);
207 } 208 }
208 209
209 } // namespace media 210 } // namespace media
OLDNEW
« no previous file with comments | « media/mojo/services/mojo_renderer_service.h ('k') | mojo/mojo_public.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698