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

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

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