chromium/remoting/protocol/audio_pump.h

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef REMOTING_PROTOCOL_AUDIO_PUMP_H_
#define REMOTING_PROTOCOL_AUDIO_PUMP_H_

#include <memory>

#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/memory/weak_ptr.h"
#include "base/threading/thread_checker.h"
#include "remoting/protocol/audio_stream.h"

namespace base {
class SingleThreadTaskRunner;
}  // namespace base

namespace remoting {

class AudioEncoder;
class AudioPacket;

namespace protocol {

class AudioStub;
class AudioSource;

// AudioPump is responsible for fetching audio data from the AudioCapturer and
// encoding it before passing it to the AudioStub for delivery to the client.
// Audio data will be downmixed to stereo if needed. Audio is captured and
// encoded on the audio thread and then passed to AudioStub on the network
// thread.
class AudioPump : public AudioStream {};

}  // namespace protocol
}  // namespace remoting

#endif  // REMOTING_PROTOCOL_AUDIO_PUMP_H_