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

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

Issue 1875623002: Convert //chromecast from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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/cma/base/balanced_media_task_runner_factory.h" 10 #include "chromecast/media/cma/base/balanced_media_task_runner_factory.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 55
56 // Create pipeline backend. 56 // Create pipeline backend.
57 backend_task_runner_.reset(new TaskRunnerImpl()); 57 backend_task_runner_.reset(new TaskRunnerImpl());
58 // TODO(erickung): crbug.com/443956. Need to provide right LoadType. 58 // TODO(erickung): crbug.com/443956. Need to provide right LoadType.
59 LoadType load_type = kLoadTypeMediaSource; 59 LoadType load_type = kLoadTypeMediaSource;
60 MediaPipelineDeviceParams::MediaSyncType sync_type = 60 MediaPipelineDeviceParams::MediaSyncType sync_type =
61 (load_type == kLoadTypeMediaStream) 61 (load_type == kLoadTypeMediaStream)
62 ? MediaPipelineDeviceParams::kModeIgnorePts 62 ? MediaPipelineDeviceParams::kModeIgnorePts
63 : MediaPipelineDeviceParams::kModeSyncPts; 63 : MediaPipelineDeviceParams::kModeSyncPts;
64 MediaPipelineDeviceParams params(sync_type, backend_task_runner_.get()); 64 MediaPipelineDeviceParams params(sync_type, backend_task_runner_.get());
65 scoped_ptr<MediaPipelineBackend> backend = create_backend_cb_.Run(params); 65 std::unique_ptr<MediaPipelineBackend> backend =
66 create_backend_cb_.Run(params);
66 67
67 // Create pipeline. 68 // Create pipeline.
68 MediaPipelineClient pipeline_client; 69 MediaPipelineClient pipeline_client;
69 pipeline_client.error_cb = error_cb; 70 pipeline_client.error_cb = error_cb;
70 pipeline_client.buffering_state_cb = buffering_state_cb; 71 pipeline_client.buffering_state_cb = buffering_state_cb;
71 pipeline_.reset(new MediaPipelineImpl); 72 pipeline_.reset(new MediaPipelineImpl);
72 pipeline_->SetClient(pipeline_client); 73 pipeline_->SetClient(pipeline_client);
73 pipeline_->Initialize(load_type, std::move(backend)); 74 pipeline_->Initialize(load_type, std::move(backend));
74 75
75 // Initialize audio. 76 // Initialize audio.
76 ::media::DemuxerStream* audio_stream = 77 ::media::DemuxerStream* audio_stream =
77 demuxer_stream_provider->GetStream(::media::DemuxerStream::AUDIO); 78 demuxer_stream_provider->GetStream(::media::DemuxerStream::AUDIO);
78 if (audio_stream) { 79 if (audio_stream) {
79 AvPipelineClient audio_client; 80 AvPipelineClient audio_client;
80 audio_client.wait_for_key_cb = waiting_for_decryption_key_cb; 81 audio_client.wait_for_key_cb = waiting_for_decryption_key_cb;
81 audio_client.eos_cb = 82 audio_client.eos_cb =
82 base::Bind(&CastRenderer::OnEos, base::Unretained(this), STREAM_AUDIO); 83 base::Bind(&CastRenderer::OnEos, base::Unretained(this), STREAM_AUDIO);
83 audio_client.playback_error_cb = error_cb; 84 audio_client.playback_error_cb = error_cb;
84 audio_client.statistics_cb = statistics_cb; 85 audio_client.statistics_cb = statistics_cb;
85 scoped_ptr<CodedFrameProvider> frame_provider(new DemuxerStreamAdapter( 86 std::unique_ptr<CodedFrameProvider> frame_provider(new DemuxerStreamAdapter(
86 task_runner_, media_task_runner_factory_, audio_stream)); 87 task_runner_, media_task_runner_factory_, audio_stream));
87 ::media::PipelineStatus status = 88 ::media::PipelineStatus status =
88 pipeline_->InitializeAudio(audio_stream->audio_decoder_config(), 89 pipeline_->InitializeAudio(audio_stream->audio_decoder_config(),
89 audio_client, std::move(frame_provider)); 90 audio_client, std::move(frame_provider));
90 if (status != ::media::PIPELINE_OK) { 91 if (status != ::media::PIPELINE_OK) {
91 init_cb.Run(status); 92 init_cb.Run(status);
92 return; 93 return;
93 } 94 }
94 audio_stream->EnableBitstreamConverter(); 95 audio_stream->EnableBitstreamConverter();
95 } 96 }
96 97
97 // Initialize video. 98 // Initialize video.
98 ::media::DemuxerStream* video_stream = 99 ::media::DemuxerStream* video_stream =
99 demuxer_stream_provider->GetStream(::media::DemuxerStream::VIDEO); 100 demuxer_stream_provider->GetStream(::media::DemuxerStream::VIDEO);
100 if (video_stream) { 101 if (video_stream) {
101 VideoPipelineClient video_client; 102 VideoPipelineClient video_client;
102 // TODO(alokp): Set VideoPipelineClient::natural_size_changed_cb. 103 // TODO(alokp): Set VideoPipelineClient::natural_size_changed_cb.
103 video_client.av_pipeline_client.wait_for_key_cb = 104 video_client.av_pipeline_client.wait_for_key_cb =
104 waiting_for_decryption_key_cb; 105 waiting_for_decryption_key_cb;
105 video_client.av_pipeline_client.eos_cb = 106 video_client.av_pipeline_client.eos_cb =
106 base::Bind(&CastRenderer::OnEos, base::Unretained(this), STREAM_VIDEO); 107 base::Bind(&CastRenderer::OnEos, base::Unretained(this), STREAM_VIDEO);
107 video_client.av_pipeline_client.playback_error_cb = error_cb; 108 video_client.av_pipeline_client.playback_error_cb = error_cb;
108 video_client.av_pipeline_client.statistics_cb = statistics_cb; 109 video_client.av_pipeline_client.statistics_cb = statistics_cb;
109 // TODO(alokp): Change MediaPipelineImpl API to accept a single config 110 // TODO(alokp): Change MediaPipelineImpl API to accept a single config
110 // after CmaRenderer is deprecated. 111 // after CmaRenderer is deprecated.
111 std::vector<::media::VideoDecoderConfig> video_configs; 112 std::vector<::media::VideoDecoderConfig> video_configs;
112 video_configs.push_back(video_stream->video_decoder_config()); 113 video_configs.push_back(video_stream->video_decoder_config());
113 scoped_ptr<CodedFrameProvider> frame_provider(new DemuxerStreamAdapter( 114 std::unique_ptr<CodedFrameProvider> frame_provider(new DemuxerStreamAdapter(
114 task_runner_, media_task_runner_factory_, video_stream)); 115 task_runner_, media_task_runner_factory_, video_stream));
115 ::media::PipelineStatus status = pipeline_->InitializeVideo( 116 ::media::PipelineStatus status = pipeline_->InitializeVideo(
116 video_configs, video_client, std::move(frame_provider)); 117 video_configs, video_client, std::move(frame_provider));
117 if (status != ::media::PIPELINE_OK) { 118 if (status != ::media::PIPELINE_OK) {
118 init_cb.Run(status); 119 init_cb.Run(status);
119 return; 120 return;
120 } 121 }
121 video_stream->EnableBitstreamConverter(); 122 video_stream->EnableBitstreamConverter();
122 } 123 }
123 124
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 DCHECK(!eos_[stream]); 174 DCHECK(!eos_[stream]);
174 eos_[stream] = true; 175 eos_[stream] = true;
175 CMALOG(kLogControl) << __FUNCTION__ << ": eos_audio=" << eos_[STREAM_AUDIO] 176 CMALOG(kLogControl) << __FUNCTION__ << ": eos_audio=" << eos_[STREAM_AUDIO]
176 << " eos_video=" << eos_[STREAM_VIDEO]; 177 << " eos_video=" << eos_[STREAM_VIDEO];
177 if (eos_[STREAM_AUDIO] && eos_[STREAM_VIDEO]) 178 if (eos_[STREAM_AUDIO] && eos_[STREAM_VIDEO])
178 ended_cb_.Run(); 179 ended_cb_.Run();
179 } 180 }
180 181
181 } // namespace media 182 } // namespace media
182 } // namespace chromecast 183 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/media/cast_renderer.h ('k') | chromecast/browser/media/cma_message_filter_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698