codec-amr
AMRCodec.h
1 #pragma once
2 
3 #include <stdint.h>
4 #include <stddef.h>
5 
9 class AMRCodec {
10 public:
11  virtual ~AMRCodec() = default;
12 
21  virtual int encode(const int16_t* pcmSamples, size_t sampleCount,
22  uint8_t* amrData, size_t amrBufferSize) = 0;
23 
32  virtual int decode(const uint8_t* amrData, size_t amrSize,
33  int16_t* pcmSamples, size_t maxSampleCount) = 0;
34 
39  virtual int getSampleRate() const = 0;
40 
45  virtual int getFrameSizeSamples() = 0;
46 
51  virtual int getEncodedFrameSizeBytes() = 0;
52 
53 protected:
54  bool isInitialized = false;
55 };
56 
Base class for AMR codec implementations.
Definition: AMRCodec.h:9
virtual int getFrameSizeSamples()=0
Get the number of samples per frame.
virtual int decode(const uint8_t *amrData, size_t amrSize, int16_t *pcmSamples, size_t maxSampleCount)=0
Decodes AMR format to PCM audio samples.
virtual int getEncodedFrameSizeBytes()=0
Get the size in bytes of one encoded frame.
virtual int encode(const int16_t *pcmSamples, size_t sampleCount, uint8_t *amrData, size_t amrBufferSize)=0
Encodes PCM audio samples to AMR format.
virtual int getSampleRate() const =0
Get sample rate used by the codec.