// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef REMOTING_CODEC_AUDIO_ENCODER_SPEEX_H_ #define REMOTING_CODEC_AUDIO_ENCODER_SPEEX_H_ #include #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" #include "remoting/codec/audio_encoder.h" struct SpeexBits; namespace remoting { class AudioPacket; class AudioEncoderSpeex : public AudioEncoder { public: AudioEncoderSpeex(); virtual ~AudioEncoderSpeex(); // AudioEncoder implementation. virtual scoped_ptr Encode( scoped_ptr packet) OVERRIDE; private: scoped_ptr speex_bits_; void* speex_state_; int speex_frame_size_; scoped_array leftover_buffer_; // We may have some left-over unencoded frames from the previous AudioPacket. int leftover_frames_; DISALLOW_COPY_AND_ASSIGN(AudioEncoderSpeex); }; } // namespace remoting #endif // REMOTING_CODEC_AUDIO_ENCODER_SPEEX_H_