swift
opusencoder.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
4 #include "opusencoder.h"
5 
6 namespace swift::sound::codecs
7 {
8  COpusEncoder::COpusEncoder(int sampleRate, int channels, int application)
9  {
10  int error;
11  opusEncoder = opus_encoder_create(sampleRate, channels, application, &error);
12  }
13 
14  COpusEncoder::~COpusEncoder() { opus_encoder_destroy(opusEncoder); }
15 
16  void COpusEncoder::setBitRate(int bitRate) { opus_encoder_ctl(opusEncoder, OPUS_SET_BITRATE(bitRate)); }
17 
18  QByteArray COpusEncoder::encode(const QVector<qint16> &pcmSamples, int samplesLength, int *encodedLength)
19  {
20  QByteArray encoded(maxDataBytes, 0);
21  int length = opus_encode(opusEncoder, reinterpret_cast<const opus_int16 *>(pcmSamples.data()), samplesLength,
22  reinterpret_cast<unsigned char *>(encoded.data()), maxDataBytes);
23  *encodedLength = length;
24  encoded.truncate(length);
25  return encoded;
26  }
27 } // namespace swift::sound::codecs
QByteArray encode(const QVector< qint16 > &pcmSamples, int samplesLength, int *encodedLength)
Encode.
Definition: opusencoder.cpp:18
COpusEncoder(int sampleRate, int channels, int application=OPUS_APPLICATION_VOIP)
Ctor.
Definition: opusencoder.cpp:8
void setBitRate(int bitRate)
Bit rate.
Definition: opusencoder.cpp:16