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

Unified Diff: chromecast/media/cma/backend/alsa/stream_mixer_alsa.cc

Issue 2771143002: Implement runtime audio post-processing pipeline. See go/cast_audio.json (Closed)
Patch Set: Remove unordered_map of libraries. 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 side-by-side diff with in-line comments
Download patch
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_);

Powered by Google App Engine
This is Rietveld 408576698