13 #include <plugins/CodecPlugin.h>
14 #include <opus/opus.h>
17 class AthenaOpusEncoder :
public Encoder {
20 AthenaOpusEncoder(
int sampleRate,
int numChannels);
21 ~AthenaOpusEncoder()
override;
23 virtual void encode(
const QByteArray& decodedBuffer, QByteArray& encodedBuffer)
override;
26 int getComplexity()
const;
27 void setComplexity(
int complexity);
29 int getBitrate()
const;
30 void setBitrate(
int bitrate);
35 int getVBRConstraint()
const;
36 void setVBRConstraint(
int vbrConstraint);
38 int getMaxBandwidth()
const;
39 void setMaxBandwidth(
int maxBandwidth);
41 int getBandwidth()
const;
42 void setBandwidth(
int bandwidth);
44 int getSignal()
const;
45 void setSignal(
int signal);
47 int getApplication()
const;
48 void setApplication(
int application);
50 int getLookahead()
const;
52 int getInbandFEC()
const;
53 void setInbandFEC(
int inBandFEC);
55 int getExpectedPacketLossPercentage()
const;
56 void setExpectedPacketLossPercentage(
int percentage);
64 const int DEFAULT_BITRATE = 128000;
65 const int DEFAULT_COMPLEXITY = 10;
66 const int DEFAULT_APPLICATION = OPUS_APPLICATION_VOIP;
67 const int DEFAULT_SIGNAL = OPUS_AUTO;
69 int _opusSampleRate = 0;
70 int _opusChannels = 0;
71 int _opusExpectedLoss = 0;
74 OpusEncoder* _encoder =
nullptr;