1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #ifndef API_AUDIO_AUDIO_MIXER_H_
- #define API_AUDIO_AUDIO_MIXER_H_
- #include <memory>
- #include "api/audio/audio_frame.h"
- #include "rtc_base/ref_count.h"
- namespace webrtc {
- class AudioMixer : public rtc::RefCountInterface {
- public:
-
- class Source {
- public:
- enum class AudioFrameInfo {
- kNormal,
- kMuted,
-
-
-
- kError,
- };
-
-
-
- virtual AudioFrameInfo GetAudioFrameWithInfo(int sample_rate_hz,
- AudioFrame* audio_frame) = 0;
-
- virtual int Ssrc() const = 0;
-
-
- virtual int PreferredSampleRate() const = 0;
- virtual ~Source() {}
- };
-
-
- virtual bool AddSource(Source* audio_source) = 0;
-
-
- virtual void RemoveSource(Source* audio_source) = 0;
-
-
-
-
-
-
-
-
- virtual void Mix(size_t number_of_channels,
- AudioFrame* audio_frame_for_mixing) = 0;
- protected:
-
-
- ~AudioMixer() override {}
- };
- }
- #endif
|