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

Side by Side Diff: chromecast/media/cma/backend/audio_video_pipeline_device_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 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <limits> 7 #include <limits>
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 17 matching lines...) Expand all
28 #include "base/time/time.h" 28 #include "base/time/time.h"
29 #include "chromecast/base/task_runner_impl.h" 29 #include "chromecast/base/task_runner_impl.h"
30 #include "chromecast/media/cma/base/decoder_buffer_adapter.h" 30 #include "chromecast/media/cma/base/decoder_buffer_adapter.h"
31 #include "chromecast/media/cma/base/decoder_config_adapter.h" 31 #include "chromecast/media/cma/base/decoder_config_adapter.h"
32 #include "chromecast/media/cma/test/frame_segmenter_for_test.h" 32 #include "chromecast/media/cma/test/frame_segmenter_for_test.h"
33 #include "chromecast/public/cast_media_shlib.h" 33 #include "chromecast/public/cast_media_shlib.h"
34 #include "chromecast/public/media/cast_decoder_buffer.h" 34 #include "chromecast/public/media/cast_decoder_buffer.h"
35 #include "chromecast/public/media/decoder_config.h" 35 #include "chromecast/public/media/decoder_config.h"
36 #include "chromecast/public/media/media_pipeline_backend.h" 36 #include "chromecast/public/media/media_pipeline_backend.h"
37 #include "chromecast/public/media/media_pipeline_device_params.h" 37 #include "chromecast/public/media/media_pipeline_device_params.h"
38 #include "chromecast/public/volume_control.h"
39 #include "media/audio/audio_device_description.h"
38 #include "media/base/audio_decoder_config.h" 40 #include "media/base/audio_decoder_config.h"
39 #include "media/base/audio_timestamp_helper.h" 41 #include "media/base/audio_timestamp_helper.h"
40 #include "media/base/decoder_buffer.h" 42 #include "media/base/decoder_buffer.h"
41 #include "media/base/encryption_scheme.h" 43 #include "media/base/encryption_scheme.h"
42 #include "media/base/video_decoder_config.h" 44 #include "media/base/video_decoder_config.h"
43 #include "testing/gtest/include/gtest/gtest.h" 45 #include "testing/gtest/include/gtest/gtest.h"
44 46
45 namespace chromecast { 47 namespace chromecast {
46 namespace media { 48 namespace media {
47 49
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 void set_sync_type(MediaPipelineDeviceParams::MediaSyncType sync_type) { 183 void set_sync_type(MediaPipelineDeviceParams::MediaSyncType sync_type) {
182 sync_type_ = sync_type; 184 sync_type_ = sync_type;
183 } 185 }
184 void set_audio_type(MediaPipelineDeviceParams::AudioStreamType audio_type) { 186 void set_audio_type(MediaPipelineDeviceParams::AudioStreamType audio_type) {
185 audio_type_ = audio_type; 187 audio_type_ = audio_type;
186 } 188 }
187 189
188 void SetUp() override { 190 void SetUp() override {
189 CastMediaShlib::Initialize( 191 CastMediaShlib::Initialize(
190 base::CommandLine::ForCurrentProcess()->argv()); 192 base::CommandLine::ForCurrentProcess()->argv());
193 if (VolumeControl::Initialize) {
194 VolumeControl::Initialize(base::CommandLine::ForCurrentProcess()->argv());
195 }
191 } 196 }
192 197
193 void TearDown() override { 198 void TearDown() override {
194 // Pipeline must be destroyed before finalizing media shlib. 199 // Pipeline must be destroyed before finalizing media shlib.
195 backend_.reset(); 200 backend_.reset();
196 effects_backends_.clear(); 201 effects_backends_.clear();
202 if (VolumeControl::Finalize) {
203 VolumeControl::Finalize();
204 }
197 CastMediaShlib::Finalize(); 205 CastMediaShlib::Finalize();
198 } 206 }
199 207
200 void ConfigureForFile(const std::string& filename); 208 void ConfigureForFile(const std::string& filename);
201 void ConfigureForAudioOnly(const std::string& filename); 209 void ConfigureForAudioOnly(const std::string& filename);
202 void ConfigureForVideoOnly(const std::string& filename, bool raw_h264); 210 void ConfigureForVideoOnly(const std::string& filename, bool raw_h264);
203 211
204 // Pattern loops, waiting >= pattern[i].delay against media clock between 212 // Pattern loops, waiting >= pattern[i].delay against media clock between
205 // pauses, then pausing for >= pattern[i].length against MessageLoop 213 // pauses, then pausing for >= pattern[i].length against MessageLoop
206 // A pause with delay <0 signals to stop sequence and do not loop 214 // A pause with delay <0 signals to stop sequence and do not loop
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 stopped_(false), 617 stopped_(false),
610 ran_playing_playback_checks_(false), 618 ran_playing_playback_checks_(false),
611 backwards_pts_change_(false), 619 backwards_pts_change_(false),
612 pause_pattern_() {} 620 pause_pattern_() {}
613 621
614 AudioVideoPipelineDeviceTest::~AudioVideoPipelineDeviceTest() {} 622 AudioVideoPipelineDeviceTest::~AudioVideoPipelineDeviceTest() {}
615 623
616 void AudioVideoPipelineDeviceTest::Initialize() { 624 void AudioVideoPipelineDeviceTest::Initialize() {
617 // Create the media device. 625 // Create the media device.
618 task_runner_.reset(new TaskRunnerImpl()); 626 task_runner_.reset(new TaskRunnerImpl());
619 MediaPipelineDeviceParams params(sync_type_, audio_type_, task_runner_.get()); 627 MediaPipelineDeviceParams params(
628 sync_type_, audio_type_, task_runner_.get(), AudioContentType::kMedia,
629 ::media::AudioDeviceDescription::kDefaultDeviceId);
620 backend_.reset(CastMediaShlib::CreateMediaPipelineBackend(params)); 630 backend_.reset(CastMediaShlib::CreateMediaPipelineBackend(params));
621 CHECK(backend_); 631 CHECK(backend_);
622 } 632 }
623 633
624 void AudioVideoPipelineDeviceTest::AddPause(base::TimeDelta delay, 634 void AudioVideoPipelineDeviceTest::AddPause(base::TimeDelta delay,
625 base::TimeDelta length) { 635 base::TimeDelta length) {
626 DCHECK_EQ(MediaPipelineDeviceParams::kModeSyncPts, sync_type_); 636 DCHECK_EQ(MediaPipelineDeviceParams::kModeSyncPts, sync_type_);
627 pause_pattern_.push_back(PauseInfo(delay, length)); 637 pause_pattern_.push_back(PauseInfo(delay, length));
628 } 638 }
629 639
630 void AudioVideoPipelineDeviceTest::PauseBeforeEos() { 640 void AudioVideoPipelineDeviceTest::PauseBeforeEos() {
631 if (audio_feeder_) 641 if (audio_feeder_)
632 audio_feeder_->PauseBeforeEos(); 642 audio_feeder_->PauseBeforeEos();
633 if (video_feeder_) 643 if (video_feeder_)
634 video_feeder_->PauseBeforeEos(); 644 video_feeder_->PauseBeforeEos();
635 } 645 }
636 646
637 void AudioVideoPipelineDeviceTest::AddEffectsStreams() { 647 void AudioVideoPipelineDeviceTest::AddEffectsStreams() {
638 for (int i = 0; i < kNumEffectsStreams; ++i) { 648 for (int i = 0; i < kNumEffectsStreams; ++i) {
639 MediaPipelineDeviceParams params( 649 MediaPipelineDeviceParams params(
640 MediaPipelineDeviceParams::kModeIgnorePts, 650 MediaPipelineDeviceParams::kModeIgnorePts,
641 MediaPipelineDeviceParams::kAudioStreamSoundEffects, 651 MediaPipelineDeviceParams::kAudioStreamSoundEffects, task_runner_.get(),
642 task_runner_.get()); 652 AudioContentType::kMedia,
653 ::media::AudioDeviceDescription::kDefaultDeviceId);
643 MediaPipelineBackend* effects_backend = 654 MediaPipelineBackend* effects_backend =
644 CastMediaShlib::CreateMediaPipelineBackend(params); 655 CastMediaShlib::CreateMediaPipelineBackend(params);
645 CHECK(effects_backend); 656 CHECK(effects_backend);
646 effects_backends_.push_back(base::WrapUnique(effects_backend)); 657 effects_backends_.push_back(base::WrapUnique(effects_backend));
647 658
648 MediaPipelineBackend::AudioDecoder* audio_decoder = 659 MediaPipelineBackend::AudioDecoder* audio_decoder =
649 effects_backend->CreateAudioDecoder(); 660 effects_backend->CreateAudioDecoder();
650 audio_decoder->SetConfig(DefaultAudioConfig()); 661 audio_decoder->SetConfig(DefaultAudioConfig());
651 662
652 std::unique_ptr<BufferFeeder> feeder( 663 std::unique_ptr<BufferFeeder> feeder(
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1159 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1149 ConfigureForFile("bear-640x360.webm"); 1160 ConfigureForFile("bear-640x360.webm");
1150 PauseBeforeEos(); 1161 PauseBeforeEos();
1151 AddEffectsStreams(); 1162 AddEffectsStreams();
1152 Start(); 1163 Start();
1153 base::RunLoop().Run(); 1164 base::RunLoop().Run();
1154 } 1165 }
1155 1166
1156 } // namespace media 1167 } // namespace media
1157 } // namespace chromecast 1168 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/media/cma/backend/audio_decoder_wrapper.cc ('k') | chromecast/media/cma/backend/media_pipeline_backend_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698