- fix various build problems
This commit is contained in:
parent
3f9dbda40a
commit
3e87b9e7ec
|
|
@ -26,6 +26,8 @@ set (OPENSSL_INCLUDE ${LIB_PLATFORM}/openssl/1.1/include)
|
|||
message ("Using OpenSSL include files from ${OPENSSL_INCLUDE}")
|
||||
message ("Using OpenSSL libs: ${OPENSSL_SSL} and ${OPENSSL_CRYPTO}")
|
||||
include_directories(${OPENSSL_INCLUDE})
|
||||
message ("Using Opus include files: ${OPUS_INCLUDE}")
|
||||
message ("Using Opus lib: ${OPUS_LIB}")
|
||||
|
||||
# Used defines for our project
|
||||
set (DEFINES -DUSE_OPENSSL)
|
||||
|
|
@ -309,7 +311,7 @@ set (RTPHONE_SOURCES
|
|||
)
|
||||
|
||||
if (USE_OPUS_CODEC)
|
||||
set (DEFINES ${DEFINES} -DUSE_OPUS_CODEC)
|
||||
set (DEFINES ${DEFINES} -DUSE_OPUS_CODEC)
|
||||
endif()
|
||||
|
||||
add_library (rtphone STATIC ${RTPHONE_SOURCES})
|
||||
|
|
@ -363,6 +365,7 @@ target_include_directories(rtphone
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/libs
|
||||
${LIB_PLATFORM}/opus/include
|
||||
${E}/helper
|
||||
${E}/audio
|
||||
${E}/media
|
||||
${L}
|
||||
${L}/ice
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
# include <Windows.h>
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_LINUX)
|
||||
#if defined(TARGET_LINUX) || defined(TARGET_ANDROID)
|
||||
# include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -309,14 +309,14 @@ void OpusCodec::Params::parse(const resip::Data ¶ms)
|
|||
if (paramIter->mName == "usedtx")
|
||||
mUseDtx = paramIter->mValue == "1";
|
||||
else
|
||||
if (paramIter->mName == "useinbandfec")
|
||||
mUseInbandFec = paramIter->mValue == "1";
|
||||
else
|
||||
if (paramIter->mName == "stereo")
|
||||
mStereo = paramIter->mValue == "1";
|
||||
else
|
||||
if (paramIter->mName == "ptime")
|
||||
mPtime = strx::toInt(paramIter->mValue.c_str(), 20);
|
||||
if (paramIter->mName == "useinbandfec")
|
||||
mUseInbandFec = paramIter->mValue == "1";
|
||||
else
|
||||
if (paramIter->mName == "stereo")
|
||||
mStereo = paramIter->mValue == "1";
|
||||
else
|
||||
if (paramIter->mName == "ptime")
|
||||
mPtime = strx::toInt(paramIter->mValue.c_str(), 20);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -406,8 +406,6 @@ OpusCodec::OpusCodec(int samplerate, int channels, int ptime)
|
|||
mEncoderCtx = opus_encoder_create(mSamplerate, mChannels, OPUS_APPLICATION_VOIP, &status);
|
||||
if (OPUS_OK != opus_encoder_ctl(mEncoderCtx, OPUS_SET_COMPLEXITY(OPUS_CODEC_COMPLEXITY)))
|
||||
ICELogError(<< "Failed to set Opus encoder complexity");
|
||||
//if (OPUS_OK != opus_encoder_ctl(mEncoderCtx, OPUS_SET_FORCE_CHANNELS(AUDIO_CHANNELS)))
|
||||
// ICELogCritical(<<"Failed to set channel number in Opus encoder");
|
||||
// Decoder creation is postponed until first packet arriving (because it may use different channel number
|
||||
}
|
||||
|
||||
|
|
@ -521,8 +519,12 @@ int OpusCodec::decode(const void* input, int inputBytes, void* output, int outpu
|
|||
int decoded = opus_decode(mDecoderCtx,
|
||||
reinterpret_cast<const unsigned char *>(input), inputBytes,
|
||||
buffer_decode, nr_of_frames, 0);
|
||||
if (decoded < 0)
|
||||
{
|
||||
ICELogCritical(<< "opus_decode() returned " << decoded);
|
||||
return 0;
|
||||
}
|
||||
|
||||
size_t resampler_processed = 0;
|
||||
opus_int16 *buffer_stereo = nullptr;
|
||||
int buffer_stereo_capacity = buffer_capacity * 2;
|
||||
|
||||
|
|
@ -1150,8 +1152,8 @@ int GsmCodec::plc(int lostFrames, void* output, int outputCapacity)
|
|||
|
||||
G722Codec::G722Codec()
|
||||
{
|
||||
mEncoder = g722_encode_init(NULL, 64000, 0);
|
||||
mDecoder = g722_decode_init(NULL, 64000, 0);
|
||||
mEncoder = g722_encode_init(nullptr, 64000, 0);
|
||||
mDecoder = g722_decode_init(nullptr, 64000, 0);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ CodecList::Settings::EvsSpec CodecList::Settings::EvsSpec::parse(const std::stri
|
|||
{
|
||||
EvsSpec result;
|
||||
|
||||
auto parts = strx::split(spec, "-/");
|
||||
auto parts = strx::split(spec, "-/ ,:");
|
||||
if (parts.size() == 3)
|
||||
{
|
||||
// Payload type number
|
||||
|
|
@ -162,10 +162,10 @@ CodecList::Settings::EvsSpec CodecList::Settings::EvsSpec::parse(const std::stri
|
|||
if (encoding_type == "mime")
|
||||
result.mEncodingType = Encoding_MIME;
|
||||
else
|
||||
if (encoding_type == "g192")
|
||||
result.mEncodingType = Encoding_G192;
|
||||
else
|
||||
throw std::logic_error("Bad EVS codec encoding type");
|
||||
if (encoding_type == "g192")
|
||||
result.mEncodingType = Encoding_G192;
|
||||
else
|
||||
throw std::logic_error("Bad EVS codec encoding type");
|
||||
|
||||
// Bandwidth
|
||||
std::string& bandwidth = parts.back();
|
||||
|
|
@ -196,7 +196,7 @@ CodecList::Settings::OpusSpec CodecList::Settings::OpusSpec::parse(const std::st
|
|||
{
|
||||
OpusSpec result;
|
||||
|
||||
auto parts = strx::split(spec, "-/");
|
||||
auto parts = strx::split(spec, "-/ ,:");
|
||||
if (parts.size() == 3)
|
||||
{
|
||||
result.mPayloadType = strx::toInt(strx::trim(parts.front()).c_str(), -1);
|
||||
|
|
@ -215,7 +215,7 @@ static int findOctetMode(const char* line)
|
|||
|
||||
p += strlen(param_name);
|
||||
char int_buf[8] = {0};
|
||||
int int_buf_offset = 0;
|
||||
size_t int_buf_offset = 0;
|
||||
while (*p && isdigit(*p) && int_buf_offset < sizeof(int_buf))
|
||||
int_buf[int_buf_offset++] = *p++;
|
||||
return atoi(int_buf);
|
||||
|
|
@ -337,8 +337,7 @@ void CodecList::init(const Settings& settings)
|
|||
#if !defined(TARGET_ANDROID) && !defined(TARGET_OPENWRT) && !defined(TARGET_RPI)
|
||||
#if defined(USE_AMR_CODEC)
|
||||
for (int pt: mSettings.mAmrWbPayloadType)
|
||||
mFactoryList.push_back(std::make_shared<AmrWbCodec::CodecFactory>(
|
||||
AmrCodecConfig{mSettings.mWrapIuUP, false, pt}));
|
||||
mFactoryList.push_back(std::make_shared<AmrWbCodec::CodecFactory>(AmrCodecConfig{mSettings.mWrapIuUP, false, pt}));
|
||||
for (int pt: mSettings.mAmrWbOctetPayloadType)
|
||||
mFactoryList.push_back(std::make_shared<AmrWbCodec::CodecFactory>(AmrCodecConfig{mSettings.mWrapIuUP, true, pt}));
|
||||
|
||||
|
|
|
|||
|
|
@ -95,11 +95,11 @@ public:
|
|||
std::vector<OpusSpec> mOpusSpec;
|
||||
|
||||
// Payload type
|
||||
bool contains(int ptype) const;
|
||||
bool contains(int ptype) const;
|
||||
|
||||
// Textual representation - used in logging
|
||||
std::string toString() const;
|
||||
void clear();
|
||||
void clear();
|
||||
|
||||
static Settings DefaultSettings;
|
||||
|
||||
|
|
@ -110,16 +110,17 @@ public:
|
|||
|
||||
CodecList(const Settings& settings);
|
||||
~CodecList();
|
||||
void setSettings(const Settings& settings) {
|
||||
void setSettings(const Settings& settings)
|
||||
{
|
||||
init(settings);
|
||||
}
|
||||
|
||||
int count() const;
|
||||
int count() const;
|
||||
Codec::Factory& codecAt(int index) const;
|
||||
int findCodec(const std::string& name) const;
|
||||
void fillCodecMap(CodecMap& cm);
|
||||
PCodec createCodecByPayloadType(int payloadType);
|
||||
void clear();
|
||||
int findCodec(const std::string& name) const;
|
||||
void fillCodecMap(CodecMap& cm);
|
||||
PCodec createCodecByPayloadType(int payloadType);
|
||||
void clear();
|
||||
|
||||
protected:
|
||||
typedef std::vector<std::shared_ptr<Codec::Factory>> FactoryList;
|
||||
|
|
|
|||
Loading…
Reference in New Issue