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

Side by Side Diff: chromecast/renderer/media/media_pipeline_proxy.cc

Issue 1372393007: [Chromecast] Upgrade to new CMA backend API (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Created 5 years, 2 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 "chromecast/renderer/media/media_pipeline_proxy.h" 5 #include "chromecast/renderer/media/media_pipeline_proxy.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/location.h" 9 #include "base/location.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 11 matching lines...) Expand all
22 // This class is not thread safe and should run on the same thread 22 // This class is not thread safe and should run on the same thread
23 // as the media channel proxy. 23 // as the media channel proxy.
24 class MediaPipelineProxyInternal { 24 class MediaPipelineProxyInternal {
25 public: 25 public:
26 static void Release(scoped_ptr<MediaPipelineProxyInternal> proxy); 26 static void Release(scoped_ptr<MediaPipelineProxyInternal> proxy);
27 27
28 explicit MediaPipelineProxyInternal( 28 explicit MediaPipelineProxyInternal(
29 scoped_refptr<MediaChannelProxy> media_channel_proxy); 29 scoped_refptr<MediaChannelProxy> media_channel_proxy);
30 virtual ~MediaPipelineProxyInternal(); 30 virtual ~MediaPipelineProxyInternal();
31 31
32 void SetClient(const MediaPipelineClient& client); 32 void SetClient(const RendererMediaPipelineClient& client);
33 void SetCdm(int render_frame_id, int cdm_id); 33 void SetCdm(int render_frame_id, int cdm_id);
34 void StartPlayingFrom(const base::TimeDelta& time); 34 void StartPlayingFrom(const base::TimeDelta& time);
35 void Flush(const ::media::PipelineStatusCB& status_cb); 35 void Flush(const ::media::PipelineStatusCB& status_cb);
36 void Stop(); 36 void Stop();
37 void SetPlaybackRate(double playback_rate); 37 void SetPlaybackRate(double playback_rate);
38 38
39 private: 39 private:
40 void Shutdown(); 40 void Shutdown();
41 41
42 // Callbacks for CmaMessageFilterHost::MediaDelegate. 42 // Callbacks for CmaMessageFilterHost::MediaDelegate.
43 void OnStateChanged(::media::PipelineStatus status); 43 void OnStateChanged(::media::PipelineStatus status);
44 44
45 base::ThreadChecker thread_checker_; 45 base::ThreadChecker thread_checker_;
46 46
47 scoped_refptr<MediaChannelProxy> media_channel_proxy_; 47 scoped_refptr<MediaChannelProxy> media_channel_proxy_;
48 48
49 MediaPipelineClient client_; 49 RendererMediaPipelineClient client_;
50 50
51 // Store the callback for a pending state transition. 51 // Store the callback for a pending state transition.
52 ::media::PipelineStatusCB status_cb_; 52 ::media::PipelineStatusCB status_cb_;
53 53
54 DISALLOW_COPY_AND_ASSIGN(MediaPipelineProxyInternal); 54 DISALLOW_COPY_AND_ASSIGN(MediaPipelineProxyInternal);
55 }; 55 };
56 56
57 // static 57 // static
58 void MediaPipelineProxyInternal::Release( 58 void MediaPipelineProxyInternal::Release(
59 scoped_ptr<MediaPipelineProxyInternal> proxy) { 59 scoped_ptr<MediaPipelineProxyInternal> proxy) {
(...skipping 14 matching lines...) Expand all
74 74
75 void MediaPipelineProxyInternal::Shutdown() { 75 void MediaPipelineProxyInternal::Shutdown() {
76 DCHECK(thread_checker_.CalledOnValidThread()); 76 DCHECK(thread_checker_.CalledOnValidThread());
77 77
78 // Remove any callback on VideoPipelineProxyInternal. 78 // Remove any callback on VideoPipelineProxyInternal.
79 media_channel_proxy_->SetMediaDelegate( 79 media_channel_proxy_->SetMediaDelegate(
80 CmaMessageFilterProxy::MediaDelegate()); 80 CmaMessageFilterProxy::MediaDelegate());
81 } 81 }
82 82
83 void MediaPipelineProxyInternal::SetClient( 83 void MediaPipelineProxyInternal::SetClient(
84 const MediaPipelineClient& client) { 84 const RendererMediaPipelineClient& client) {
85 DCHECK(thread_checker_.CalledOnValidThread()); 85 DCHECK(thread_checker_.CalledOnValidThread());
86 DCHECK(!client.error_cb.is_null()); 86 DCHECK(!client.error_cb.is_null());
87 DCHECK(!client.buffering_state_cb.is_null()); 87 DCHECK(!client.buffering_state_cb.is_null());
88 client_ = client; 88 client_ = client;
89 89
90 CmaMessageFilterProxy::MediaDelegate delegate; 90 CmaMessageFilterProxy::MediaDelegate delegate;
91 delegate.state_changed_cb = 91 delegate.state_changed_cb =
92 base::Bind(&MediaPipelineProxyInternal::OnStateChanged, 92 base::Bind(&MediaPipelineProxyInternal::OnStateChanged,
93 base::Unretained(this)); 93 base::Unretained(this));
94 delegate.client = client; 94 delegate.client = client;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 } 178 }
179 179
180 MediaPipelineProxy::~MediaPipelineProxy() { 180 MediaPipelineProxy::~MediaPipelineProxy() {
181 io_task_runner_->PostTask( 181 io_task_runner_->PostTask(
182 FROM_HERE, 182 FROM_HERE,
183 base::Bind(&MediaPipelineProxyInternal::Release, base::Passed(&proxy_))); 183 base::Bind(&MediaPipelineProxyInternal::Release, base::Passed(&proxy_)));
184 io_task_runner_->PostTask( 184 io_task_runner_->PostTask(
185 FROM_HERE, base::Bind(&MediaChannelProxy::Close, media_channel_proxy_)); 185 FROM_HERE, base::Bind(&MediaChannelProxy::Close, media_channel_proxy_));
186 } 186 }
187 187
188 void MediaPipelineProxy::SetClient( 188 void MediaPipelineProxy::SetClient(const RendererMediaPipelineClient& client) {
189 const MediaPipelineClient& client) {
190 DCHECK(thread_checker_.CalledOnValidThread()); 189 DCHECK(thread_checker_.CalledOnValidThread());
191 FORWARD_ON_IO_THREAD(SetClient, client); 190 FORWARD_ON_IO_THREAD(SetClient, client);
192 } 191 }
193 192
194 void MediaPipelineProxy::SetCdm(int cdm_id) { 193 void MediaPipelineProxy::SetCdm(int cdm_id) {
195 DCHECK(thread_checker_.CalledOnValidThread()); 194 DCHECK(thread_checker_.CalledOnValidThread());
196 FORWARD_ON_IO_THREAD(SetCdm, render_frame_id_, cdm_id); 195 FORWARD_ON_IO_THREAD(SetCdm, render_frame_id_, cdm_id);
197 } 196 }
198 197
199 AudioPipeline* MediaPipelineProxy::GetAudioPipeline() const { 198 AudioPipeline* MediaPipelineProxy::GetAudioPipeline() const {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 FORWARD_ON_IO_THREAD(Stop); 274 FORWARD_ON_IO_THREAD(Stop);
276 } 275 }
277 276
278 void MediaPipelineProxy::SetPlaybackRate(double playback_rate) { 277 void MediaPipelineProxy::SetPlaybackRate(double playback_rate) {
279 DCHECK(thread_checker_.CalledOnValidThread()); 278 DCHECK(thread_checker_.CalledOnValidThread());
280 FORWARD_ON_IO_THREAD(SetPlaybackRate, playback_rate); 279 FORWARD_ON_IO_THREAD(SetPlaybackRate, playback_rate);
281 } 280 }
282 281
283 } // namespace cma 282 } // namespace cma
284 } // namespace chromecast 283 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698