You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
967 B
C++

/*
* * Project 25 IMBE Encoder/Decoder Fixed-Point implementation
* * Developed by Pavel Yazev E-mail: pyazev@gmail.com
* * Version 1.0 (c) Copyright 2009
* */
/* -*- c++ -*- */
#ifndef INCLUDED_IMBE_VOCODER_H
#define INCLUDED_IMBE_VOCODER_H
#include <cstdint>
class imbe_vocoder_impl;
class imbe_vocoder
{
public:
imbe_vocoder(void); // constructor
~imbe_vocoder(); // destructor
// imbe_encode compresses 160 samples (in unsigned int format)
// outputs u[] vectors as frame_vector[]
void imbe_encode(int16_t *frame_vector, int16_t *snd);
// imbe_decode decodes IMBE codewords (frame_vector),
// outputs the resulting 160 audio samples (snd)
void imbe_decode(int16_t *frame_vector, int16_t *snd);
void encode_4400(int16_t *snd, uint8_t *imbe);
void decode_4400(int16_t *snd, uint8_t *imbe);
const IMBE_PARAM* param(void);
private:
imbe_vocoder_impl *Impl;
};
#endif /* INCLUDED_IMBE_VOCODER_H */