OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef CHROMECAST_MEDIA_CMA_BACKEND_ALSA_STREAM_MIXER_ALSA_H_ | 5 #ifndef CHROMECAST_MEDIA_CMA_BACKEND_ALSA_STREAM_MIXER_ALSA_H_ |
6 #define CHROMECAST_MEDIA_CMA_BACKEND_ALSA_STREAM_MIXER_ALSA_H_ | 6 #define CHROMECAST_MEDIA_CMA_BACKEND_ALSA_STREAM_MIXER_ALSA_H_ |
7 | 7 |
8 #include <alsa/asoundlib.h> | 8 #include <alsa/asoundlib.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "chromecast/media/cma/backend/alsa/stream_mixer_alsa_input.h" | 21 #include "chromecast/media/cma/backend/alsa/stream_mixer_alsa_input.h" |
22 #include "chromecast/public/cast_media_shlib.h" | 22 #include "chromecast/public/cast_media_shlib.h" |
23 | 23 |
24 namespace media { | 24 namespace media { |
25 class AudioBus; | 25 class AudioBus; |
26 } // namespace media | 26 } // namespace media |
27 | 27 |
28 namespace chromecast { | 28 namespace chromecast { |
29 namespace media { | 29 namespace media { |
30 class AlsaWrapper; | 30 class AlsaWrapper; |
31 class StreamMixerAlsaInputImpl; | |
32 | 31 |
33 // Mixer implementation. The mixer has one or more input queues; these can be | 32 // Mixer implementation. The mixer has one or more input queues; these can be |
34 // added/removed at any time. When an input source pushes frames to an input | 33 // added/removed at any time. When an input source pushes frames to an input |
35 // queue, the queue should call StreamMixerAlsa::WriteFrames(); this causes | 34 // queue, the queue should call StreamMixerAlsa::WriteFrames(); this causes |
36 // the mixer to attempt to mix and write out as many frames as possible. To do | 35 // the mixer to attempt to mix and write out as many frames as possible. To do |
37 // this, the mixer determines how many frames can be read from all inputs (ie, | 36 // this, the mixer determines how many frames can be read from all inputs (ie, |
38 // it gets the maximum number of frames that can be read from each input, and | 37 // it gets the maximum number of frames that can be read from each input, and |
39 // uses the minimum value). Assuming that all primary inputs have some data | 38 // uses the minimum value). Assuming that all primary inputs have some data |
40 // available, the calculated number of frames are pulled from each input (maybe | 39 // available, the calculated number of frames are pulled from each input (maybe |
41 // resampled, if the input's incoming sample rate is not equal to the mixer's | 40 // resampled, if the input's incoming sample rate is not equal to the mixer's |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 std::unique_ptr<AudioFilterInterface> post_loopback_filter_; | 249 std::unique_ptr<AudioFilterInterface> post_loopback_filter_; |
251 int silence_frames_filtered_ = 0; | 250 int silence_frames_filtered_ = 0; |
252 | 251 |
253 DISALLOW_COPY_AND_ASSIGN(StreamMixerAlsa); | 252 DISALLOW_COPY_AND_ASSIGN(StreamMixerAlsa); |
254 }; | 253 }; |
255 | 254 |
256 } // namespace media | 255 } // namespace media |
257 } // namespace chromecast | 256 } // namespace chromecast |
258 | 257 |
259 #endif // CHROMECAST_MEDIA_CMA_BACKEND_ALSA_STREAM_MIXER_ALSA_H_ | 258 #endif // CHROMECAST_MEDIA_CMA_BACKEND_ALSA_STREAM_MIXER_ALSA_H_ |
OLD | NEW |