| Index: chromecast/media/cma/backend/alsa/filter_group.h
|
| diff --git a/chromecast/media/cma/backend/alsa/filter_group.h b/chromecast/media/cma/backend/alsa/filter_group.h
|
| index 7db908c10aad6f643d28a19a729537ef81220a03..e2375e7b8a07c284432dca6aa152b9120961f9d5 100644
|
| --- a/chromecast/media/cma/backend/alsa/filter_group.h
|
| +++ b/chromecast/media/cma/backend/alsa/filter_group.h
|
| @@ -13,7 +13,7 @@
|
| #include <vector>
|
|
|
| #include "base/macros.h"
|
| -#include "chromecast/media/cma/backend/alsa/audio_filter_factory.h"
|
| +#include "base/values.h"
|
| #include "chromecast/media/cma/backend/alsa/stream_mixer_alsa.h"
|
| #include "chromecast/public/volume_control.h"
|
|
|
| @@ -24,6 +24,8 @@ class AudioBus;
|
| namespace chromecast {
|
| namespace media {
|
|
|
| +class PostProcessingPipeline;
|
| +
|
| // FilterGroup contains state for an AudioFilter.
|
| // It takes multiple StreamMixerAlsa::InputQueues,
|
| // mixes them, and processes them.
|
| @@ -37,16 +39,17 @@ class FilterGroup {
|
| // entry in |input_types| to be processed by this group.
|
| // |filter_type| is passed to AudioFilterFactory to create an AudioFilter.
|
| FilterGroup(const std::unordered_set<std::string>& input_types,
|
| - AudioFilterFactory::FilterType filter_type,
|
| - AudioContentType content_type);
|
| + AudioContentType content_type,
|
| + int channels,
|
| + const base::ListValue* filter_list);
|
| ~FilterGroup();
|
|
|
| AudioContentType content_type() const { return content_type_; }
|
|
|
| void set_volume(float volume) { volume_ = volume; }
|
|
|
| - // Sets the sample rate and format in the AudioFilter.
|
| - void Initialize(int output_samples_per_second, ::media::SampleFormat format);
|
| + // Sets the sample rate of the post-processors.
|
| + void Initialize(int output_samples_per_second);
|
|
|
| // Returns |true| if this FilterGroup is appropriate to process |input|.
|
| bool CanProcessInput(StreamMixerAlsa::InputQueue* input);
|
| @@ -74,10 +77,10 @@ class FilterGroup {
|
|
|
| const std::unordered_set<std::string> input_types_;
|
| const AudioContentType content_type_;
|
| + const int channels_;
|
| std::vector<StreamMixerAlsa::InputQueue*> active_inputs_;
|
|
|
| int output_samples_per_second_;
|
| - ::media::SampleFormat sample_format_;
|
|
|
| float volume_ = 0.0f;
|
|
|
| @@ -88,12 +91,12 @@ class FilterGroup {
|
| std::unique_ptr<::media::AudioBus> mixed_;
|
| std::vector<uint8_t> interleaved_;
|
|
|
| - std::unique_ptr<AudioFilterInterface> audio_filter_;
|
| - int silence_frames_filtered_;
|
| + std::unique_ptr<PostProcessingPipeline> post_processing_pipeline_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(FilterGroup);
|
| };
|
|
|
| } // namespace media
|
| } // namespace chromecast
|
| +
|
| #endif // CHROMECAST_MEDIA_CMA_BACKEND_ALSA_FILTER_GROUP_H_
|
|
|