Babel
Epitech's C++ VoIP project
|
Go to the documentation of this file.
5 #ifndef BABEL_ICODEC_HPP
6 #define BABEL_ICODEC_HPP
16 virtual int encode(
const std::int16_t *pcm,
unsigned char *data) = 0;
19 virtual int encode(
const float *pcm,
unsigned char *data) = 0;
25 virtual int decode(
const unsigned char *data, std::int16_t *pcm, std::int32_t dataSize) = 0;
28 virtual int decode(
const unsigned char *data,
float *pcm) = 0;
31 [[nodiscard]]
virtual std::int32_t
getBitrate()
const = 0;
34 virtual void setBitrate(std::int32_t bitrate) = 0;
37 [[nodiscard]]
virtual int getChannel()
const = 0;
60 #endif //BABEL_ICODEC_HPP
virtual void setFrameSize(int frameSize)=0
sets the number of samples per channel Possible values are 120/480/960 (default)/1920/2880
virtual void setChannel(int channel)=0
sets the channel
virtual int getChannel() const =0
get the channels
virtual void setBitrate(std::int32_t bitrate)=0
Sets the bitrate.
virtual ~ICodec()=default
virtual int getApplication() const =0
get the application type
virtual std::int32_t getBitrate() const =0
get the bitrate
virtual int encode(const std::int16_t *pcm, unsigned char *data)=0
Encodes exactly one frame of audio data.
Definition: IAudioManager.hpp:13
virtual int getFrameSize() const =0
get the frame size
virtual void setApplication(int application)=0
sets the Opus application mode Possible values are OPUS_APPLICATION_AUDIO (default) OPUS_APPLICATION_...
virtual int decode(const unsigned char *data, std::int16_t *pcm, std::int32_t dataSize)=0
Decodes exactly one frame of audio data.