33
33
#include "audiocodec.h"
34
35
using std::ptrdiff_t;
38
AudioCodec::AudioCodec(uint8_t payload, const std::string &codecName,
39
int clockRate, int frameSize, unsigned channels) :
39
AudioCodec::AudioCodec(uint8_t payload, const std::string &codecName, uint32_t clockRate, unsigned frameSize, uint8_t channels) :
40
40
codecName_(codecName),
41
41
clockRate_(clockRate),
42
clockRateCur_(clockRate),
44
channelsCur_(channels),
43
45
frameSize_(frameSize),
49
51
AudioCodec::AudioCodec(const AudioCodec& c) :
50
52
codecName_(c.codecName_),
51
53
clockRate_(c.clockRate_),
54
clockRateCur_(c.clockRateCur_),
55
channels_(c.channels_),
56
channelsCur_(c.channelsCur_),
53
57
frameSize_(c.frameSize_),
54
58
bitrate_(c.bitrate_),
55
59
payload_(c.payload_),
56
60
hasDynamicPayload_(c.hasDynamicPayload_)
59
// Mono only, subclasses must implement multichannel support
60
int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &dst, unsigned char *buf, size_t buffer_size)
62
return decode(dst[0].data(), buf, buffer_size);
65
// Mono only, subclasses must implement multichannel support
66
int AudioCodec::encode(unsigned char *dst, std::vector<std::vector<SFLAudioSample> > &src, size_t buffer_size)
68
return encode(dst, src[0].data(), buffer_size);
63
int AudioCodec::decode(SFLAudioSample *, unsigned char *, size_t)
70
int AudioCodec::encode(unsigned char *, SFLAudioSample *, size_t)
78
// Mono only, subclasses must implement multichannel support
79
int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t* data, size_t len)
81
return decode(pcm[0].data(), const_cast<uint8_t*>(data), len);
84
// Mono only, subclasses must implement multichannel support
85
size_t AudioCodec::encode(const std::vector<std::vector<SFLAudioSample> > &pcm, uint8_t *data, size_t len)
87
return encode(data, const_cast<SFLAudioSample*>(pcm[0].data()), len);
90
int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &pcm)
71
96
std::string AudioCodec::getMimeSubtype() const