Separate Simple Backend creation from initialization.
[chromium-blink-merge.git] / remoting / codec / audio_decoder_speex.h
blob55b97c7c0e0eaf45fc07cca03df201a5b6fa73f4
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.
5 #ifndef REMOTING_CODEC_AUDIO_DECODER_SPEEX_H_
6 #define REMOTING_CODEC_AUDIO_DECODER_SPEEX_H_
8 #include "base/basictypes.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "remoting/codec/audio_decoder.h"
12 struct SpeexBits;
13 struct SpeexCallback;
14 struct SpeexStereoState;
16 namespace remoting {
18 class AudioPacket;
20 class AudioDecoderSpeex : public AudioDecoder {
21 public:
22 AudioDecoderSpeex();
23 virtual ~AudioDecoderSpeex();
25 // AudioDecoder implementation.
26 virtual scoped_ptr<AudioPacket> Decode(
27 scoped_ptr<AudioPacket> packet) OVERRIDE;
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_;
36 DISALLOW_COPY_AND_ASSIGN(AudioDecoderSpeex);
39 } // namespace remoting
41 #endif // REMOTING_CODEC_AUDIO_DECODER_SPEEX_H_