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

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

Issue 2701613006: [Chromecast] Process streams with different post-processing. (Closed)
Patch Set: Move audio_device_ids to chromecast/media/base Created 3 years, 10 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/media/service/cast_renderer.h" 5 #include "chromecast/media/service/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/base/audio_device_ids.h"
10 #include "chromecast/media/base/video_resolution_policy.h" 11 #include "chromecast/media/base/video_resolution_policy.h"
11 #include "chromecast/media/cdm/cast_cdm_context.h" 12 #include "chromecast/media/cdm/cast_cdm_context.h"
12 #include "chromecast/media/cma/base/balanced_media_task_runner_factory.h" 13 #include "chromecast/media/cma/base/balanced_media_task_runner_factory.h"
13 #include "chromecast/media/cma/base/cma_logging.h" 14 #include "chromecast/media/cma/base/cma_logging.h"
14 #include "chromecast/media/cma/base/demuxer_stream_adapter.h" 15 #include "chromecast/media/cma/base/demuxer_stream_adapter.h"
15 #include "chromecast/media/cma/pipeline/media_pipeline_impl.h" 16 #include "chromecast/media/cma/pipeline/media_pipeline_impl.h"
16 #include "chromecast/media/cma/pipeline/video_pipeline_client.h" 17 #include "chromecast/media/cma/pipeline/video_pipeline_client.h"
17 #include "chromecast/public/media/media_pipeline_backend.h" 18 #include "chromecast/public/media/media_pipeline_backend.h"
18 #include "chromecast/public/media/media_pipeline_device_params.h" 19 #include "chromecast/public/media/media_pipeline_device_params.h"
20 #include "media/audio/audio_device_description.h"
19 #include "media/base/audio_decoder_config.h" 21 #include "media/base/audio_decoder_config.h"
20 #include "media/base/demuxer_stream.h" 22 #include "media/base/demuxer_stream.h"
21 #include "media/base/media_log.h" 23 #include "media/base/media_log.h"
22 #include "media/base/media_resource.h" 24 #include "media/base/media_resource.h"
23 #include "media/base/renderer_client.h" 25 #include "media/base/renderer_client.h"
24 26
25 namespace chromecast { 27 namespace chromecast {
26 namespace media { 28 namespace media {
27 29
28 namespace { 30 namespace {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 // Create pipeline backend. 72 // Create pipeline backend.
71 media_resource_usage_.reset( 73 media_resource_usage_.reset(
72 new MediaResourceTracker::ScopedUsage(media_resource_tracker_)); 74 new MediaResourceTracker::ScopedUsage(media_resource_tracker_));
73 backend_task_runner_.reset(new TaskRunnerImpl()); 75 backend_task_runner_.reset(new TaskRunnerImpl());
74 // TODO(erickung): crbug.com/443956. Need to provide right LoadType. 76 // TODO(erickung): crbug.com/443956. Need to provide right LoadType.
75 LoadType load_type = kLoadTypeMediaSource; 77 LoadType load_type = kLoadTypeMediaSource;
76 MediaPipelineDeviceParams::MediaSyncType sync_type = 78 MediaPipelineDeviceParams::MediaSyncType sync_type =
77 (load_type == kLoadTypeMediaStream) 79 (load_type == kLoadTypeMediaStream)
78 ? MediaPipelineDeviceParams::kModeIgnorePts 80 ? MediaPipelineDeviceParams::kModeIgnorePts
79 : MediaPipelineDeviceParams::kModeSyncPts; 81 : MediaPipelineDeviceParams::kModeSyncPts;
80 MediaPipelineDeviceParams params(sync_type, backend_task_runner_.get()); 82 MediaPipelineDeviceParams params(
83 sync_type, MediaPipelineDeviceParams::kAudioStreamNormal,
84 audio_device_id_ /* name */, backend_task_runner_.get());
85
86 if (audio_device_id_ == kTtsAudioDeviceId ||
87 audio_device_id_ == kSystemAudioDeviceId) {
88 load_type = kLoadTypeLiveSource;
89 }
90
81 std::unique_ptr<MediaPipelineBackend> backend = 91 std::unique_ptr<MediaPipelineBackend> backend =
82 create_backend_cb_.Run(params, audio_device_id_); 92 create_backend_cb_.Run(params, audio_device_id_);
83 93
84 // Create pipeline. 94 // Create pipeline.
85 MediaPipelineClient pipeline_client; 95 MediaPipelineClient pipeline_client;
86 pipeline_client.error_cb = 96 pipeline_client.error_cb =
87 base::Bind(&CastRenderer::OnError, weak_factory_.GetWeakPtr()); 97 base::Bind(&CastRenderer::OnError, weak_factory_.GetWeakPtr());
88 pipeline_client.buffering_state_cb = base::Bind( 98 pipeline_client.buffering_state_cb = base::Bind(
89 &CastRenderer::OnBufferingStateChange, weak_factory_.GetWeakPtr()); 99 &CastRenderer::OnBufferingStateChange, weak_factory_.GetWeakPtr());
90 pipeline_.reset(new MediaPipelineImpl()); 100 pipeline_.reset(new MediaPipelineImpl());
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 } 267 }
258 268
259 void CastRenderer::OnVideoOpacityChange(bool opaque) { 269 void CastRenderer::OnVideoOpacityChange(bool opaque) {
260 DCHECK(task_runner_->BelongsToCurrentThread()); 270 DCHECK(task_runner_->BelongsToCurrentThread());
261 DCHECK(opaque); 271 DCHECK(opaque);
262 client_->OnVideoOpacityChange(opaque); 272 client_->OnVideoOpacityChange(opaque);
263 } 273 }
264 274
265 } // namespace media 275 } // namespace media
266 } // namespace chromecast 276 } // namespace chromecast
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698