Chromium Code Reviews| Index: chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc |
| diff --git a/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc b/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc |
| index 35d25ccefcb3a339f23a7e1af4240487ea40649a..59cf0c6ceb48fff777eff42126d5846f7800a089 100644 |
| --- a/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc |
| +++ b/chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc |
| @@ -20,10 +20,11 @@ |
| #include "base/threading/platform_thread.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "chromecast/base/chromecast_switches.h" |
| +#include "chromecast/base/serializers.h" |
|
kmackay
2017/03/24 22:15:54
Is serializers.h used?
bshaya
2017/03/24 22:55:49
Done.
|
| #include "chromecast/media/base/audio_device_ids.h" |
| #include "chromecast/media/cma/backend/alsa/alsa_wrapper.h" |
| -#include "chromecast/media/cma/backend/alsa/audio_filter_factory.h" |
| #include "chromecast/media/cma/backend/alsa/filter_group.h" |
| +#include "chromecast/media/cma/backend/alsa/post_processing_pipeline_parser.h" |
| #include "chromecast/media/cma/backend/alsa/stream_mixer_alsa_input_impl.h" |
| #include "media/audio/audio_device_description.h" |
| #include "media/base/audio_bus.h" |
| @@ -215,25 +216,35 @@ StreamMixerAlsa::StreamMixerAlsa() |
| ? kLowSampleRateCutoff |
| : 0; |
| + // Read post-processing configuration file |
| + PostProcessingPipelineParser pipeline_parser; |
| + pipeline_parser.Initialize(); |
| + |
| // Create filter groups. |
| // TODO(bshaya): Switch to filter groups based on AudioContentType. |
| filter_groups_.push_back(base::MakeUnique<FilterGroup>( |
| std::unordered_set<std::string>( |
| {::media::AudioDeviceDescription::kCommunicationsDeviceId}), |
| - AudioFilterFactory::COMMUNICATION_AUDIO_FILTER, |
| - AudioContentType::kMedia)); |
| + AudioContentType::kMedia, kNumOutputChannels, |
| + pipeline_parser.GetPipelineByDeviceId( |
| + ::media::AudioDeviceDescription::kCommunicationsDeviceId))); |
| filter_groups_.push_back(base::MakeUnique<FilterGroup>( |
| std::unordered_set<std::string>({kAlarmAudioDeviceId}), |
| - AudioFilterFactory::ALARM_AUDIO_FILTER, AudioContentType::kAlarm)); |
| + AudioContentType::kAlarm, kNumOutputChannels, |
| + pipeline_parser.GetPipelineByDeviceId(kAlarmAudioDeviceId))); |
| filter_groups_.push_back(base::MakeUnique<FilterGroup>( |
| std::unordered_set<std::string>({kTtsAudioDeviceId}), |
| - AudioFilterFactory::TTS_AUDIO_FILTER, AudioContentType::kCommunication)); |
| + AudioContentType::kCommunication, kNumOutputChannels, |
| + pipeline_parser.GetPipelineByDeviceId(kTtsAudioDeviceId))); |
| filter_groups_.push_back(base::MakeUnique<FilterGroup>( |
| std::unordered_set<std::string>( |
| {::media::AudioDeviceDescription::kDefaultDeviceId, |
| kLocalAudioDeviceId, ""}), |
| - AudioFilterFactory::MEDIA_AUDIO_FILTER, AudioContentType::kMedia)); |
| + AudioContentType::kMedia, kNumOutputChannels, |
| + pipeline_parser.GetPipelineByDeviceId( |
| + ::media::AudioDeviceDescription::kDefaultDeviceId))); |
| + // TODO(bshaya): Add support for final mix AudioPostProcessor. |
| DefineAlsaParameters(); |
| } |
| @@ -499,8 +510,7 @@ void StreamMixerAlsa::Start() { |
| // Initialize filters |
| for (auto&& filter_group : filter_groups_) { |
| - filter_group->Initialize(output_samples_per_second_, |
| - ::media::SampleFormat::kSampleFormatS32); |
| + filter_group->Initialize(output_samples_per_second_); |
| } |
| RETURN_REPORT_ERROR(PcmPrepare, pcm_); |