1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef REMOTING_CODEC_AUDIO_DECODER_SPEEX_H_ 6 #define REMOTING_CODEC_AUDIO_DECODER_SPEEX_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "remoting/codec/audio_decoder.h" 11 12 struct SpeexBits; 13 struct SpeexCallback; 14 struct SpeexStereoState; 15 16 namespace remoting { 17 18 class AudioPacket; 19 20 class AudioDecoderSpeex : public AudioDecoder { 21 public: 22 AudioDecoderSpeex(); 23 virtual ~AudioDecoderSpeex(); 24 25 // AudioDecoder implementation. 26 virtual scoped_ptr<AudioPacket> Decode( 27 scoped_ptr<AudioPacket> packet) OVERRIDE; 28 29 private: 30 scoped_ptr<SpeexBits> speex_bits_; 31 void* speex_state_; 32 int speex_frame_size_; 33 SpeexStereoState* speex_stereo_state_; 34 scoped_ptr<SpeexCallback> speex_callback_; 35 36 DISALLOW_COPY_AND_ASSIGN(AudioDecoderSpeex); 37 }; 38 39 } // namespace remoting 40 41 #endif // REMOTING_CODEC_AUDIO_DECODER_SPEEX_H_ 42