diff --git a/sflphone-common/src/audio/codecs/alaw.cpp b/sflphone-common/src/audio/codecs/alaw.cpp index 44741d0f1df7cba721605c51c4206d238d73c4bb..f6826269eb889e1eba80029390dc86f6ce329d3a 100644 --- a/sflphone-common/src/audio/codecs/alaw.cpp +++ b/sflphone-common/src/audio/codecs/alaw.cpp @@ -32,13 +32,13 @@ #include "../common.h" #include "audiocodec.h" -class Alaw : public AudioCodec +class Alaw : public sfl::AudioCodec { public: // 8 PCMA A 8000 1 [RFC3551] Alaw (int payload=8) - : AudioCodec (payload, "PCMA") { + : sfl::AudioCodec (payload, "PCMA") { _clockRate = 8000; _frameSize = 160; // samples, 20 ms at 8kHz _channel = 1; diff --git a/sflphone-common/src/audio/codecs/audiocodec.cpp b/sflphone-common/src/audio/codecs/audiocodec.cpp index 05db9abda7c33aea36924f0ae148b5cfacd72094..df7a692419b025193a03bb9a5bf0c245d62dcd60 100644 --- a/sflphone-common/src/audio/codecs/audiocodec.cpp +++ b/sflphone-common/src/audio/codecs/audiocodec.cpp @@ -32,6 +32,8 @@ #include "audiocodec.h" +namespace sfl { + AudioCodec::AudioCodec (uint8 payload, const std::string &codecName) : _codecName (codecName), _clockRate (8000), _channel (1), _bitrate (0.0), _bandwidth (0), _hasDynamicPayload (false), _payload(payload) @@ -110,3 +112,5 @@ double AudioCodec::getBandwidth (void) const { return _bandwidth; } + +} // end namespace sfl diff --git a/sflphone-common/src/audio/codecs/audiocodec.h b/sflphone-common/src/audio/codecs/audiocodec.h index 44b630a939e190db4725b1fc4d3fd31e783b6271..20558f0527127525c1a223cfbc272eafa5052fb9 100644 --- a/sflphone-common/src/audio/codecs/audiocodec.h +++ b/sflphone-common/src/audio/codecs/audiocodec.h @@ -38,7 +38,9 @@ #include "Codec.h" -class AudioCodec : public sfl::Codec // TODO Move into the "sfl" namespace +namespace sfl { + +class AudioCodec : public Codec { public: AudioCodec (uint8 payload, const std::string &codecName); @@ -187,5 +189,6 @@ class AudioCodec : public sfl::Codec // TODO Move into the "sfl" namespace void init (uint8 payloadType, uint32 clockRate); }; +} // end namespace sfl #endif diff --git a/sflphone-common/src/audio/codecs/audiocodecfactory.cpp b/sflphone-common/src/audio/codecs/audiocodecfactory.cpp index 595e7fbadb454fabab147b086a4fb11d92fadb17..e751d1cab51c1576cd592a900e74ee021d8cbe15 100644 --- a/sflphone-common/src/audio/codecs/audiocodecfactory.cpp +++ b/sflphone-common/src/audio/codecs/audiocodecfactory.cpp @@ -108,9 +108,9 @@ AudioCodecFactory::getCodec (AudioCodecType payload) { CodecsMap::iterator iter = _CodecsMap.find (payload); - if (iter!=_CodecsMap.end()) { - return static_cast<AudioCodec *>(iter->second); - } + // FIXME: isn't this static cast pointless? + if (iter != _CodecsMap.end()) + return static_cast<sfl::AudioCodec *>(iter->second); _error ("CodecDescriptor: Error cannont found codec %i in _CodecsMap from codec descriptor", payload); diff --git a/sflphone-common/src/audio/codecs/celtcodec.cpp b/sflphone-common/src/audio/codecs/celtcodec.cpp index 6db7d29fb623620bb610b3be65255ec1d29fb7ff..4ce2b45f201b4934343d9b51d438e797fe5ab3a4 100644 --- a/sflphone-common/src/audio/codecs/celtcodec.cpp +++ b/sflphone-common/src/audio/codecs/celtcodec.cpp @@ -33,11 +33,11 @@ #include <celt/celt.h> -class Celt : public AudioCodec +class Celt : public sfl::AudioCodec { public: - Celt (int payload=115) : AudioCodec (payload, "celt") { + Celt (int payload=115) : sfl::AudioCodec (payload, "celt") { _clockRate = 32000; _frameSize = 320; // fixed frameSize, TODO: support variable size from 64 to 512 diff --git a/sflphone-common/src/audio/codecs/g722.cpp b/sflphone-common/src/audio/codecs/g722.cpp index 0335aea92a7249a8be677f676f4c8c1d2b8b733f..41ec89a9e101dd2ec3b6b7f45566947de22444e4 100644 --- a/sflphone-common/src/audio/codecs/g722.cpp +++ b/sflphone-common/src/audio/codecs/g722.cpp @@ -43,13 +43,13 @@ #define FALSE 0 -class G722 : public AudioCodec +class G722 : public sfl::AudioCodec { public: G722 (int payload=9) - : AudioCodec (payload, "G722") { + : sfl::AudioCodec (payload, "G722") { _clockRate = 16000; _frameSize = 320; // samples, 20 ms at 16kHz _channel = 1; diff --git a/sflphone-common/src/audio/codecs/gsmcodec.cpp b/sflphone-common/src/audio/codecs/gsmcodec.cpp index 8ab18aa41872b16edc4de9bd367cb7878641c200..8be02bc61c5a520f0a639a6a218bdac96459af04 100644 --- a/sflphone-common/src/audio/codecs/gsmcodec.cpp +++ b/sflphone-common/src/audio/codecs/gsmcodec.cpp @@ -39,12 +39,12 @@ extern "C" { * GSM audio codec C++ class (over gsm/gsm.h) */ -class Gsm : public AudioCodec +class Gsm : public sfl::AudioCodec { public: // _payload should be 3 - Gsm (int payload=3) : AudioCodec (payload, "GSM"), _decode_gsmhandle (NULL), _encode_gsmhandle (NULL) { + Gsm (int payload=3) : sfl::AudioCodec (payload, "GSM"), _decode_gsmhandle (NULL), _encode_gsmhandle (NULL) { _clockRate = 8000; _frameSize = 160; // samples, 20 ms at 8kHz _channel = 1; diff --git a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp index 8a22ab9d5ab62b39ceb611d4f2f1dba78addf7c8..e0fcd2a8150eb8e9a18d4247dbaa91953ffd4aab 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp @@ -34,12 +34,12 @@ #include <speex/speex.h> #include <speex/speex_preprocess.h> -class Speex : public AudioCodec +class Speex : public sfl::AudioCodec { public: Speex (int payload=110) - : AudioCodec (payload, "speex"), + : sfl::AudioCodec (payload, "speex"), _speexModePtr (NULL), _speex_dec_bits(), _speex_enc_bits(), diff --git a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp index 3a9cebee7adcda38d224de9ad58b20e5ceb1660c..36a8cd1f42abd4c376f316bf588fa756459e0bc9 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp @@ -33,12 +33,12 @@ #include <cstdio> #include <speex/speex.h> -class Speex : public AudioCodec +class Speex : public sfl::AudioCodec { public: Speex (int payload=112) - : AudioCodec (payload, "speex"), + : sfl::AudioCodec (payload, "speex"), _speexModePtr (NULL), _speex_dec_bits(), _speex_enc_bits(), diff --git a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp index 3969ee94a39d2ddc57d10a7be561b9135350cd64..e4fcd4146280b5b5037ddb6797ae1e7dd7e16c29 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp @@ -33,12 +33,12 @@ #include <cstdio> #include <speex/speex.h> -class Speex : public AudioCodec +class Speex : public sfl::AudioCodec { public: Speex (int payload=111) - : AudioCodec (payload, "speex"), + : sfl::AudioCodec (payload, "speex"), _speexModePtr (NULL), _speex_dec_bits(), _speex_enc_bits(), diff --git a/sflphone-common/src/audio/codecs/ulaw.cpp b/sflphone-common/src/audio/codecs/ulaw.cpp index 3e40b8b8a9861c16e0123bb7c4b5408de4a45ace..56d65717425a1537dd281ad0cf9275ea05c2359d 100644 --- a/sflphone-common/src/audio/codecs/ulaw.cpp +++ b/sflphone-common/src/audio/codecs/ulaw.cpp @@ -34,13 +34,13 @@ #include "../common.h" #include "audiocodec.h" -class Ulaw : public AudioCodec +class Ulaw : public sfl::AudioCodec { public: // 0 PCMU A 8000 1 [RFC3551] Ulaw (int payload=0) - : AudioCodec (payload, "PCMU") { + : sfl::AudioCodec (payload, "PCMU") { _clockRate = 8000; _frameSize = 160; // samples, 20 ms at 8kHz _channel = 1; diff --git a/sflphone-common/src/audio/sound/audiofile.cpp b/sflphone-common/src/audio/sound/audiofile.cpp index 101cc56e3a53e67cbbe42c3b6e080bde3473f3f0..2c5f48eb2ccb8f09b3406dddeeb38163d22a5d26 100644 --- a/sflphone-common/src/audio/sound/audiofile.cpp +++ b/sflphone-common/src/audio/sound/audiofile.cpp @@ -39,6 +39,7 @@ #include "audiofile.h" #include "audio/codecs/audiocodecfactory.h" +#include "audio/codecs/audiocodec.h" #include "audio/samplerateconverter.h" #include "manager.h" @@ -55,7 +56,7 @@ RawFile::~RawFile() // load file in mono format bool -RawFile::loadFile (const std::string& filename, AudioCodec* codec , unsigned int sampleRate=8000) +RawFile::loadFile (const std::string& filename, sfl::AudioCodec* codec , unsigned int sampleRate=8000) { _codec = codec; @@ -453,7 +454,7 @@ bool WaveFile::openExistingWaveFile (const std::string& fileName, int audioSampl } -bool WaveFile::loadFile (const std::string& filename, AudioCodec * /*codec*/, unsigned int sampleRate) +bool WaveFile::loadFile (const std::string& filename, sfl::AudioCodec * /*codec*/, unsigned int sampleRate) { openFile (filename, sampleRate); diff --git a/sflphone-common/src/audio/sound/audiofile.h b/sflphone-common/src/audio/sound/audiofile.h index 857de3aaf5d93aaec44a1f2091ec3fae65766a76..f0d0ff701eac4eda3c86d5be9c5b407f33901667 100644 --- a/sflphone-common/src/audio/sound/audiofile.h +++ b/sflphone-common/src/audio/sound/audiofile.h @@ -37,9 +37,10 @@ #include <fstream> #include "audio/audioloop.h" -#include "audio/codecs/audiocodec.h" -#include "audio/codecs/audiocodecfactory.h" +namespace sfl { +class AudioCodec; +} /** * @brief Abstract interface for file readers @@ -55,7 +56,7 @@ class AudioFile : public AudioLoop * @param sampleRate The sample rate to read it * @return bool True on success */ - virtual bool loadFile (const std::string& filename, AudioCodec *codec , unsigned int sampleRate) = 0; + virtual bool loadFile (const std::string& filename, sfl::AudioCodec *codec , unsigned int sampleRate) = 0; /** * Start the sound file @@ -114,7 +115,7 @@ class RawFile : public AudioFile * @param sampleRate The sample rate to read it * @return bool True on success */ - virtual bool loadFile (const std::string& filename, AudioCodec *codec , unsigned int sampleRate); + virtual bool loadFile (const std::string& filename, sfl::AudioCodec *codec , unsigned int sampleRate); private: // Copy Constructor @@ -127,7 +128,7 @@ class RawFile : public AudioFile std::string _filename; /** Your preferred codec */ - AudioCodec* _codec; + sfl::AudioCodec* _codec; }; @@ -155,7 +156,7 @@ class WaveFile : public AudioFile * @param sampleRate The sample rate to read it * @return bool True on success */ - virtual bool loadFile (const std::string& filename, AudioCodec *codec , unsigned int sampleRate); + virtual bool loadFile (const std::string& filename, sfl::AudioCodec *codec , unsigned int sampleRate); private: diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp index 47a73c936d04f3365c156dbdc5255a29918d6b63..9d14d0eec62b23a2bed247867ecc148c3c830bbf 100644 --- a/sflphone-common/src/iax/iaxvoiplink.cpp +++ b/sflphone-common/src/iax/iaxvoiplink.cpp @@ -302,7 +302,7 @@ IAXVoIPLink::sendAudioFromMic (void) { int maxBytesToGet, availBytesFromMic, bytesAvail, compSize; - AudioCodec *audioCodec = NULL; + sfl::AudioCodec *audioCodec = NULL; IAXCall *currentCall; // We have to update the audio layer type in case we switched @@ -330,7 +330,7 @@ IAXVoIPLink::sendAudioFromMic (void) if (callIsActive) { AudioCodecType codecType = currentCall->getAudioCodec(); - audioCodec = static_cast<AudioCodec *>(currentCall->getAudioCodecFactory().getCodec (codecType)); + audioCodec = static_cast<sfl::AudioCodec *>(currentCall->getAudioCodecFactory().getCodec (codecType)); // Send sound here @@ -708,7 +708,7 @@ std::string IAXVoIPLink::getCurrentCodecName(const CallID& /*id*/) { IAXCall *call = NULL; - AudioCodec *audioCodec = NULL; + sfl::AudioCodec *audioCodec = NULL; std::string name = ""; call = getIAXCall (Manager::instance().getCurrentCallId()); @@ -719,7 +719,7 @@ IAXVoIPLink::getCurrentCodecName(const CallID& /*id*/) } AudioCodecType audioCodecType = call->getAudioCodec(); - audioCodec= static_cast<AudioCodec *>(call->getAudioCodecFactory().getCodec (audioCodecType)); + audioCodec= static_cast<sfl::AudioCodec *>(call->getAudioCodecFactory().getCodec (audioCodecType)); if(audioCodec == NULL) { _error("IAX: Error: Could not load audio codec"); @@ -975,7 +975,7 @@ IAXVoIPLink::iaxHandleVoiceEvent (iax_event* event, IAXCall* call) unsigned char *data; unsigned int size, max, nbInt16; int expandedSize, nbSample_; - AudioCodec *audioCodec; + sfl::AudioCodec *audioCodec; if (!call) { return; @@ -988,7 +988,7 @@ IAXVoIPLink::iaxHandleVoiceEvent (iax_event* event, IAXCall* call) } AudioCodecType audioCodecType = call->getAudioCodec(); - audioCodec = static_cast<AudioCodec *>(call->getAudioCodecFactory().getCodec (audioCodecType)); + audioCodec = static_cast<sfl::AudioCodec *>(call->getAudioCodecFactory().getCodec (audioCodecType)); if (!audioCodec) return; diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp index 84fc65dc922611b65729d549acdecb5383ad61c5..23a2fd5ba15f72e3d7cc1a847459bef36f1d6cef 100644 --- a/sflphone-common/src/managerimpl.cpp +++ b/sflphone-common/src/managerimpl.cpp @@ -2304,7 +2304,7 @@ void ManagerImpl::ringback () void ManagerImpl::ringtone (const AccountID& accountID) { std::string ringchoice; - AudioCodec *codecForTone; + sfl::AudioCodec *codecForTone; int layer, samplerate; bool loadFile; @@ -2344,7 +2344,7 @@ void ManagerImpl::ringtone (const AccountID& accountID) layer = _audiodriver->getLayerType(); samplerate = _audiodriver->getSampleRate(); - codecForTone = static_cast<AudioCodec *>(_audioCodecFactory.getFirstCodecAvailable()); + codecForTone = static_cast<sfl::AudioCodec *>(_audioCodecFactory.getFirstCodecAvailable()); audioLayerMutexUnlock(); diff --git a/sflphone-common/src/sip/sdp.cpp b/sflphone-common/src/sip/sdp.cpp index affb01d96510cf080d63ac8933b18f9a6f3688a6..7e66c344e72f6455761db75582558883187ee603 100644 --- a/sflphone-common/src/sip/sdp.cpp +++ b/sflphone-common/src/sip/sdp.cpp @@ -151,7 +151,7 @@ bool Sdp::hasSessionMedia(void) return listNotEmpty; } -AudioCodec* Sdp::getSessionMedia (void) throw(SdpException) +sfl::AudioCodec* Sdp::getSessionMedia (void) throw(SdpException) { int nbMedia; @@ -178,7 +178,7 @@ AudioCodec* Sdp::getSessionMedia (void) throw(SdpException) codec = mediaList[0]->get_media_codec_list() [0]; - return static_cast<AudioCodec *>(codec); + return static_cast<sfl::AudioCodec *>(codec); } void Sdp::setMediaDescriptorLine (sdpMedia *media, pjmedia_sdp_media** p_med) diff --git a/sflphone-common/src/sip/sdp.h b/sflphone-common/src/sip/sdp.h index 4afeda51ef716fa2bdd6807f92a28fb002b857bc..2f2bdc7e4cb85904856811dcbd241e1da404c5df 100644 --- a/sflphone-common/src/sip/sdp.h +++ b/sflphone-common/src/sip/sdp.h @@ -42,11 +42,14 @@ #include <pj/assert.h> #include <vector> -#include "audio/codecs/audiocodecfactory.h" #include "sdpmedia.h" #include <exception> +namespace sfl { + class AudioCodec; +} + class SdpException : public std::exception { public: @@ -157,7 +160,7 @@ class Sdp /** * Return the codec of the first media after negociation */ - AudioCodec* getSessionMedia (void) throw(SdpException); + sfl::AudioCodec* getSessionMedia (void) throw(SdpException); /* * On building an invite outside a dialog, build the local offer and create the diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp index 98a8befca3deabd5c825f22d1308d668aaced742..69ca116a379611ea90cf572fd1f862a217a3b0c1 100644 --- a/sflphone-common/src/sip/sipvoiplink.cpp +++ b/sflphone-common/src/sip/sipvoiplink.cpp @@ -715,7 +715,7 @@ Call *SIPVoIPLink::newOutgoingCall (const CallID& id, const std::string& toUrl) call->getAudioRtp()->initAudioRtpSession (call); call->getAudioRtp()->initLocalCryptoInfo (call); _info ("UserAgent: Start audio rtp session"); - call->getAudioRtp()->start (static_cast<AudioCodec *>(audiocodec)); + call->getAudioRtp()->start (static_cast<sfl::AudioCodec *>(audiocodec)); } catch (...) { throw VoipLinkException ("Could not start rtp session for early media"); } @@ -1018,7 +1018,7 @@ SIPVoIPLink::offhold (const CallID& id) throw (VoipLinkException) call->getAudioRtp()->initAudioRtpConfig (call); call->getAudioRtp()->initAudioRtpSession (call); - call->getAudioRtp()->start (static_cast<AudioCodec *>(audiocodec)); + call->getAudioRtp()->start (static_cast<sfl::AudioCodec *>(audiocodec)); } catch (SdpException &e) { @@ -1793,7 +1793,7 @@ bool SIPVoIPLink::SIPNewIpToIpCall (const CallID& id, const std::string& to) call->getAudioRtp()->initAudioRtpConfig (call); call->getAudioRtp()->initAudioRtpSession (call); call->getAudioRtp()->initLocalCryptoInfo (call); - call->getAudioRtp()->start (static_cast<AudioCodec *>(audiocodec)); + call->getAudioRtp()->start (static_cast<sfl::AudioCodec *>(audiocodec)); } catch (...) { _debug ("UserAgent: Unable to create RTP Session in new IP2IP call (%s:%d)", __FILE__, __LINE__); } @@ -3509,7 +3509,7 @@ void sdp_media_update_cb (pjsip_inv_session *inv, pj_status_t status) if (!sdpSession) return; - AudioCodec *sessionMedia = sdpSession->getSessionMedia(); + sfl::AudioCodec *sessionMedia = sdpSession->getSessionMedia(); if (!sessionMedia) return; @@ -3530,7 +3530,7 @@ void sdp_media_update_cb (pjsip_inv_session *inv, pj_status_t status) if (audiocodec == NULL) _error ("UserAgent: No audiocodec found"); - call->getAudioRtp()->updateSessionMedia (static_cast<AudioCodec *>(audiocodec)); + call->getAudioRtp()->updateSessionMedia (static_cast<sfl::AudioCodec *>(audiocodec)); } } // FIXME: should this really be std::exception? If so, it should be caught last catch (const SdpException &e) { @@ -4052,7 +4052,7 @@ transaction_request_cb (pjsip_rx_data *rdata) // Init audio rtp session try { _debug ("UserAgent: Create RTP session for this call"); - call->getAudioRtp()->start (static_cast<AudioCodec *>(audiocodec)); + call->getAudioRtp()->start (static_cast<sfl::AudioCodec *>(audiocodec)); } catch (...) { _warn ("UserAgent: Error: Failed to create rtp thread from answer"); }