| 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..11e97cf16c687215455d1ae6fcab42287cc839de 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,11 @@ class FilterGroup { | 
|  | 
| const std::unordered_set<std::string> input_types_; | 
| const AudioContentType content_type_; | 
| +  const int channels_; | 
| +  int silence_frames_to_filter_ = 0; | 
| std::vector<StreamMixerAlsa::InputQueue*> active_inputs_; | 
|  | 
| int output_samples_per_second_; | 
| -  ::media::SampleFormat sample_format_; | 
|  | 
| float volume_ = 0.0f; | 
|  | 
| @@ -88,7 +92,7 @@ class FilterGroup { | 
| std::unique_ptr<::media::AudioBus> mixed_; | 
| std::vector<uint8_t> interleaved_; | 
|  | 
| -  std::unique_ptr<AudioFilterInterface> audio_filter_; | 
| +  std::unique_ptr<PostProcessingPipeline> post_processing_pipeline_; | 
| int silence_frames_filtered_; | 
|  | 
| DISALLOW_COPY_AND_ASSIGN(FilterGroup); | 
| @@ -96,4 +100,5 @@ class FilterGroup { | 
|  | 
| }  // namespace media | 
| }  // namespace chromecast | 
| + | 
| #endif  // CHROMECAST_MEDIA_CMA_BACKEND_ALSA_FILTER_GROUP_H_ | 
|  |