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

Side by Side Diff: chromecast/media/cma/backend/multizone_backend_unittest.cc

Issue 2712883006: [Chromecast] Add new volume control API to CastMediaShlib (Closed)
Patch Set: rebase Created 3 years, 9 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 <stdint.h> 5 #include <stdint.h>
6 #include <stdlib.h> 6 #include <stdlib.h>
7 7
8 #include <algorithm> 8 #include <algorithm>
9 #include <limits> 9 #include <limits>
10 #include <memory> 10 #include <memory>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/command_line.h" 14 #include "base/command_line.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/memory/ref_counted.h" 16 #include "base/memory/ref_counted.h"
17 #include "base/message_loop/message_loop.h" 17 #include "base/message_loop/message_loop.h"
18 #include "base/run_loop.h" 18 #include "base/run_loop.h"
19 #include "base/threading/thread_checker.h" 19 #include "base/threading/thread_checker.h"
20 #include "base/threading/thread_task_runner_handle.h" 20 #include "base/threading/thread_task_runner_handle.h"
21 #include "base/time/time.h" 21 #include "base/time/time.h"
22 #include "chromecast/base/task_runner_impl.h" 22 #include "chromecast/base/task_runner_impl.h"
23 #include "chromecast/media/cma/base/decoder_buffer_adapter.h" 23 #include "chromecast/media/cma/base/decoder_buffer_adapter.h"
24 #include "chromecast/media/cma/base/decoder_config_adapter.h" 24 #include "chromecast/media/cma/base/decoder_config_adapter.h"
25 #include "chromecast/public/cast_media_shlib.h" 25 #include "chromecast/public/cast_media_shlib.h"
26 #include "chromecast/public/media/cast_decoder_buffer.h" 26 #include "chromecast/public/media/cast_decoder_buffer.h"
27 #include "chromecast/public/media/decoder_config.h" 27 #include "chromecast/public/media/decoder_config.h"
28 #include "chromecast/public/media/media_pipeline_backend.h" 28 #include "chromecast/public/media/media_pipeline_backend.h"
29 #include "chromecast/public/media/media_pipeline_device_params.h" 29 #include "chromecast/public/media/media_pipeline_device_params.h"
30 #include "chromecast/public/volume_control.h"
31 #include "media/audio/audio_device_description.h"
30 #include "media/base/audio_decoder_config.h" 32 #include "media/base/audio_decoder_config.h"
31 #include "media/base/decoder_buffer.h" 33 #include "media/base/decoder_buffer.h"
32 #include "testing/gtest/include/gtest/gtest.h" 34 #include "testing/gtest/include/gtest/gtest.h"
33 35
34 namespace chromecast { 36 namespace chromecast {
35 namespace media { 37 namespace media {
36 38
37 class MultizoneBackendTest; 39 class MultizoneBackendTest;
38 40
39 namespace { 41 namespace {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 float>; // playback rate 131 float>; // playback rate
130 132
131 class MultizoneBackendTest : public testing::TestWithParam<TestParams> { 133 class MultizoneBackendTest : public testing::TestWithParam<TestParams> {
132 public: 134 public:
133 MultizoneBackendTest(); 135 MultizoneBackendTest();
134 ~MultizoneBackendTest() override; 136 ~MultizoneBackendTest() override;
135 137
136 void SetUp() override { 138 void SetUp() override {
137 srand(12345); 139 srand(12345);
138 CastMediaShlib::Initialize(base::CommandLine::ForCurrentProcess()->argv()); 140 CastMediaShlib::Initialize(base::CommandLine::ForCurrentProcess()->argv());
141 if (VolumeControl::Initialize) {
142 VolumeControl::Initialize(base::CommandLine::ForCurrentProcess()->argv());
143 }
139 } 144 }
140 145
141 void TearDown() override { 146 void TearDown() override {
142 // Pipeline must be destroyed before finalizing media shlib. 147 // Pipeline must be destroyed before finalizing media shlib.
143 audio_feeder_.reset(); 148 audio_feeder_.reset();
144 effects_feeders_.clear(); 149 effects_feeders_.clear();
150 if (VolumeControl::Finalize) {
151 VolumeControl::Finalize();
152 }
145 CastMediaShlib::Finalize(); 153 CastMediaShlib::Finalize();
146 } 154 }
147 155
148 void AddEffectsStreams(); 156 void AddEffectsStreams();
149 157
150 void Initialize(int sample_rate, float playback_rate); 158 void Initialize(int sample_rate, float playback_rate);
151 void Start(); 159 void Start();
152 void OnEndOfStream(); 160 void OnEndOfStream();
153 161
154 private: 162 private:
(...skipping 27 matching lines...) Expand all
182 next_push_playback_timestamp_(kNoTimestamp) { 190 next_push_playback_timestamp_(kNoTimestamp) {
183 CHECK(!eos_cb_.is_null()); 191 CHECK(!eos_cb_.is_null());
184 } 192 }
185 193
186 void BufferFeeder::Initialize(float playback_rate) { 194 void BufferFeeder::Initialize(float playback_rate) {
187 original_playback_rate_ = playback_rate_ = playback_rate; 195 original_playback_rate_ = playback_rate_ = playback_rate;
188 MediaPipelineDeviceParams params( 196 MediaPipelineDeviceParams params(
189 MediaPipelineDeviceParams::kModeIgnorePts, 197 MediaPipelineDeviceParams::kModeIgnorePts,
190 effects_only_ ? MediaPipelineDeviceParams::kAudioStreamSoundEffects 198 effects_only_ ? MediaPipelineDeviceParams::kAudioStreamSoundEffects
191 : MediaPipelineDeviceParams::kAudioStreamNormal, 199 : MediaPipelineDeviceParams::kAudioStreamNormal,
192 task_runner_.get()); 200 task_runner_.get(), AudioContentType::kMedia,
201 ::media::AudioDeviceDescription::kDefaultDeviceId);
193 backend_.reset(CastMediaShlib::CreateMediaPipelineBackend(params)); 202 backend_.reset(CastMediaShlib::CreateMediaPipelineBackend(params));
194 CHECK(backend_); 203 CHECK(backend_);
195 204
196 decoder_ = backend_->CreateAudioDecoder(); 205 decoder_ = backend_->CreateAudioDecoder();
197 CHECK(decoder_); 206 CHECK(decoder_);
198 ASSERT_TRUE(decoder_->SetConfig(config_)); 207 ASSERT_TRUE(decoder_->SetConfig(config_));
199 decoder_->SetDelegate(this); 208 decoder_->SetDelegate(this);
200 209
201 ASSERT_TRUE(backend_->Initialize()); 210 ASSERT_TRUE(backend_->Initialize());
202 ASSERT_TRUE(backend_->SetPlaybackRate(playback_rate)); 211 ASSERT_TRUE(backend_->SetPlaybackRate(playback_rate));
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 ::testing::Values(0.5f, 0.99f, 1.0f, 1.01f, 2.0f))); 402 ::testing::Values(0.5f, 0.99f, 1.0f, 1.01f, 2.0f)));
394 403
395 INSTANTIATE_TEST_CASE_P( 404 INSTANTIATE_TEST_CASE_P(
396 Optional, 405 Optional,
397 MultizoneBackendTest, 406 MultizoneBackendTest,
398 testing::Combine(::testing::Values(64000, 88200, 96000), 407 testing::Combine(::testing::Values(64000, 88200, 96000),
399 ::testing::Values(0.5f, 0.99f, 1.0f, 1.01f, 2.0f))); 408 ::testing::Values(0.5f, 0.99f, 1.0f, 1.01f, 2.0f)));
400 409
401 } // namespace media 410 } // namespace media
402 } // namespace chromecast 411 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cma/backend/media_pipeline_backend_wrapper.cc ('k') | chromecast/media/service/cast_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698