virtual bool SetOption(const char * optionName, const char * optionValue) { if (strcasecmp(optionName, UseInBandFEC.m_name) == 0) return SetOptionBoolean(m_control.useInBandFEC, optionValue); if (strcasecmp(optionName, UseDTX.m_name) == 0) return SetOptionBoolean(m_control.useDTX, optionValue); if (strcasecmp(optionName, Complexity.m_name) == 0) return SetOptionUnsigned(m_control.complexity, optionValue, 0, 2); if (strcasecmp(optionName, PacketLossPercentage.m_name) == 0) return SetOptionUnsigned(m_control.packetLossPercentage, optionValue, 0, 100); if (strcasecmp(optionName, PLUGINCODEC_OPTION_TARGET_BIT_RATE) == 0) return SetOptionUnsigned(m_control.bitRate, optionValue, 5000, 40000); if (strcasecmp(optionName, PLUGINCODEC_OPTION_TX_FRAMES_PER_PACKET) == 0) { unsigned frames = m_control.packetSize/m_definition->parm.audio.samplesPerFrame; if (!SetOptionUnsigned(frames, optionValue, 1, m_definition->parm.audio.maxFramesPerPacket)) return false; m_control.packetSize = frames*m_definition->parm.audio.samplesPerFrame; return true; } // Base class sets bit rate and frame time return PluginCodec::SetOption(optionName, optionValue); }
virtual bool SetOption(const char * optionName, const char * optionValue) { if (strcasecmp(optionName, UseInBandFEC.m_name) == 0) return SetOptionBoolean(m_useInBandFEC, optionValue); if (strcasecmp(optionName, UseDTX.m_name) == 0) return SetOptionBoolean(m_useDTX, optionValue); if (strcasecmp(optionName, PLUGINCODEC_OPTION_TARGET_BIT_RATE) == 0) return SetOptionUnsigned(m_bitRate, optionValue, 6000, 510000); // Base class sets bit rate and frame time return PluginCodec<MY_CODEC>::SetOption(optionName, optionValue); }
bool SetOptionBoolean(T & oldValue, const char * optionValue) { bool opt = oldValue != 0; if (!SetOptionBoolean(opt, optionValue)) return false; oldValue = (T)opt; return true; }
virtual bool SetOption(const char * optionName, const char * optionValue) { if (strcasecmp(optionName, UseInBandFEC.m_name) == 0) { if (!SetOptionBoolean(m_useInBandFEC, optionValue)) return false; PTRACE(4, MY_CODEC_LOG, "In band FEC set to " << std::boolalpha << m_useInBandFEC); return true; } // Base class sets bit rate and frame time return PluginCodec<MY_CODEC>::SetOption(optionName, optionValue); }
virtual bool SetOption(const char * optionName, const char * optionValue) { if (strcasecmp(optionName, DynamicPacketLoss.m_name) == 0) { if (!SetOptionUnsigned(m_dynamicPacketLoss, optionValue, 0, 100)) return false; PTRACE(4, MY_CODEC_LOG, "Dynamic packet loss set to " << m_dynamicPacketLoss << '%'); return true; } if (strcasecmp(optionName, UseDTX.m_name) == 0) return SetOptionBoolean(m_useDTX, optionValue); if (strcasecmp(optionName, PLUGINCODEC_OPTION_TARGET_BIT_RATE) == 0) return SetOptionUnsigned(m_bitRate, optionValue, 6000, 510000); // Base class sets bit rate and frame time return OpusPluginCodec::SetOption(optionName, optionValue); }