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

Side by Side Diff: chromecast/browser/media/cast_renderer.cc

Issue 2016053003: Add audio_device_id in mojo media ServiceFactory CreateRenderer api. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Minor change based on the comment Created 4 years, 5 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/browser/media/cast_renderer.h" 5 #include "chromecast/browser/media/cast_renderer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/single_thread_task_runner.h" 8 #include "base/single_thread_task_runner.h"
9 #include "chromecast/base/task_runner_impl.h" 9 #include "chromecast/base/task_runner_impl.h"
10 #include "chromecast/media/cdm/cast_cdm_context.h" 10 #include "chromecast/media/cdm/cast_cdm_context.h"
(...skipping 14 matching lines...) Expand all
25 namespace media { 25 namespace media {
26 26
27 namespace { 27 namespace {
28 // Maximum difference between audio frame PTS and video frame PTS 28 // Maximum difference between audio frame PTS and video frame PTS
29 // for frames read from the DemuxerStream. 29 // for frames read from the DemuxerStream.
30 const base::TimeDelta kMaxDeltaFetcher(base::TimeDelta::FromMilliseconds(2000)); 30 const base::TimeDelta kMaxDeltaFetcher(base::TimeDelta::FromMilliseconds(2000));
31 } // namespace 31 } // namespace
32 32
33 CastRenderer::CastRenderer( 33 CastRenderer::CastRenderer(
34 const CreateMediaPipelineBackendCB& create_backend_cb, 34 const CreateMediaPipelineBackendCB& create_backend_cb,
35 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner) 35 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
36 const std::string& audio_device_id)
36 : create_backend_cb_(create_backend_cb), 37 : create_backend_cb_(create_backend_cb),
37 task_runner_(task_runner), 38 task_runner_(task_runner),
39 audio_device_id_(audio_device_id),
38 client_(nullptr), 40 client_(nullptr),
39 cast_cdm_context_(nullptr), 41 cast_cdm_context_(nullptr),
40 media_task_runner_factory_( 42 media_task_runner_factory_(
41 new BalancedMediaTaskRunnerFactory(kMaxDeltaFetcher)), 43 new BalancedMediaTaskRunnerFactory(kMaxDeltaFetcher)),
42 weak_factory_(this) { 44 weak_factory_(this) {
43 CMALOG(kLogControl) << __FUNCTION__ << ": " << this; 45 CMALOG(kLogControl) << __FUNCTION__ << ": " << this;
44 } 46 }
45 47
46 CastRenderer::~CastRenderer() { 48 CastRenderer::~CastRenderer() {
47 CMALOG(kLogControl) << __FUNCTION__ << ": " << this; 49 CMALOG(kLogControl) << __FUNCTION__ << ": " << this;
(...skipping 10 matching lines...) Expand all
58 // Create pipeline backend. 60 // Create pipeline backend.
59 backend_task_runner_.reset(new TaskRunnerImpl()); 61 backend_task_runner_.reset(new TaskRunnerImpl());
60 // TODO(erickung): crbug.com/443956. Need to provide right LoadType. 62 // TODO(erickung): crbug.com/443956. Need to provide right LoadType.
61 LoadType load_type = kLoadTypeMediaSource; 63 LoadType load_type = kLoadTypeMediaSource;
62 MediaPipelineDeviceParams::MediaSyncType sync_type = 64 MediaPipelineDeviceParams::MediaSyncType sync_type =
63 (load_type == kLoadTypeMediaStream) 65 (load_type == kLoadTypeMediaStream)
64 ? MediaPipelineDeviceParams::kModeIgnorePts 66 ? MediaPipelineDeviceParams::kModeIgnorePts
65 : MediaPipelineDeviceParams::kModeSyncPts; 67 : MediaPipelineDeviceParams::kModeSyncPts;
66 MediaPipelineDeviceParams params(sync_type, backend_task_runner_.get()); 68 MediaPipelineDeviceParams params(sync_type, backend_task_runner_.get());
67 std::unique_ptr<MediaPipelineBackend> backend = 69 std::unique_ptr<MediaPipelineBackend> backend =
68 create_backend_cb_.Run(params); 70 create_backend_cb_.Run(params, audio_device_id_);
69 71
70 // Create pipeline. 72 // Create pipeline.
71 MediaPipelineClient pipeline_client; 73 MediaPipelineClient pipeline_client;
72 pipeline_client.error_cb = 74 pipeline_client.error_cb =
73 base::Bind(&CastRenderer::OnError, weak_factory_.GetWeakPtr()); 75 base::Bind(&CastRenderer::OnError, weak_factory_.GetWeakPtr());
74 pipeline_client.buffering_state_cb = base::Bind( 76 pipeline_client.buffering_state_cb = base::Bind(
75 &CastRenderer::OnBufferingStateChange, weak_factory_.GetWeakPtr()); 77 &CastRenderer::OnBufferingStateChange, weak_factory_.GetWeakPtr());
76 pipeline_.reset(new MediaPipelineImpl()); 78 pipeline_.reset(new MediaPipelineImpl());
77 pipeline_->SetClient(pipeline_client); 79 pipeline_->SetClient(pipeline_client);
78 pipeline_->Initialize(load_type, std::move(backend)); 80 pipeline_->Initialize(load_type, std::move(backend));
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 client_->OnVideoNaturalSizeChange(size); 237 client_->OnVideoNaturalSizeChange(size);
236 } 238 }
237 239
238 void CastRenderer::OnVideoOpacityChange(bool opaque) { 240 void CastRenderer::OnVideoOpacityChange(bool opaque) {
239 DCHECK(task_runner_->BelongsToCurrentThread()); 241 DCHECK(task_runner_->BelongsToCurrentThread());
240 client_->OnVideoOpacityChange(opaque); 242 client_->OnVideoOpacityChange(opaque);
241 } 243 }
242 244
243 } // namespace media 245 } // namespace media
244 } // namespace chromecast 246 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/media/cast_renderer.h ('k') | chromecast/browser/media/media_pipeline_backend_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698