diff options
author | bodamnam <bodamnam@google.com> | 2022-12-29 06:39:26 +0000 |
---|---|---|
committer | bodamnam <bodamnam@google.com> | 2023-01-09 11:28:59 +0000 |
commit | ccded3626d5b8245e562fd8b54d4f3b5c4b5558d (patch) | |
tree | 13c57ade76e9204a572a88c9cd75c5345117aec8 /service/src/com/android/telephony/imsmedia | |
parent | 922329a1741dd053aec0920a0a7d7fa922d2b223 (diff) | |
download | ImsMedia-ccded3626d5b8245e562fd8b54d4f3b5c4b5558d.tar.gz |
Fix the clang warning
Bug: 261801535
Bug: 261801393
Test: atest ImsMediaNativeTests
Change-Id: I17d10032a8242a151083a66e7c73902ccb96be9e
Diffstat (limited to 'service/src/com/android/telephony/imsmedia')
37 files changed, 240 insertions, 267 deletions
diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/BaseStreamGraph.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/BaseStreamGraph.cpp index 9977da7e..c1b218b8 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/BaseStreamGraph.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/BaseStreamGraph.cpp @@ -22,7 +22,6 @@ BaseStreamGraph::BaseStreamGraph(BaseSessionCallback* callback, int localFd) : mLocalFd(localFd), mGraphState(kStreamStateIdle) { - IMLOGD0("[BaseStreamGraph]"); std::unique_ptr<StreamScheduler> scheduler(new StreamScheduler()); mScheduler = std::move(scheduler); @@ -35,9 +34,7 @@ BaseStreamGraph::BaseStreamGraph(BaseSessionCallback* callback, int localFd) : BaseStreamGraph::~BaseStreamGraph() { deleteNodes(); - setState(kStreamStateIdle); - IMLOGD0("[~BaseStreamGraph]"); } void BaseStreamGraph::setLocalFd(int localFd) @@ -133,6 +130,7 @@ void BaseStreamGraph::RemoveNode(BaseNode* pNode) mScheduler->DeRegisterNode(pNode); } + pNode->DisconnectNodes(); delete pNode; } @@ -140,7 +138,7 @@ ImsMediaResult BaseStreamGraph::startNodes() { ImsMediaResult ret = ImsMediaResult::RESULT_NOT_READY; - while (mListNodeToStart.size() > 0) + while (!mListNodeToStart.empty()) { BaseNode* pNode = mListNodeToStart.front(); @@ -170,7 +168,7 @@ ImsMediaResult BaseStreamGraph::stopNodes() { mScheduler->Stop(); - while (mListNodeStarted.size() > 0) + while (!mListNodeStarted.empty()) { BaseNode* pNode = mListNodeStarted.front(); @@ -189,17 +187,12 @@ ImsMediaResult BaseStreamGraph::stopNodes() void BaseStreamGraph::deleteNodes() { - if (mListNodeStarted.size() > 0) - { - stop(); - } - - if (mListNodeStarted.size() > 0) + if (!mListNodeStarted.empty()) { IMLOGE1("[deleteNodes] error node remained[%d]", mListNodeStarted.size()); } - while (mListNodeToStart.size() > 0) + while (!mListNodeToStart.empty()) { BaseNode* pNode = mListNodeToStart.front(); diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/StreamScheduler.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/StreamScheduler.cpp index 4fb0ffcb..fb070f1e 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/StreamScheduler.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/StreamScheduler.cpp @@ -210,14 +210,7 @@ void* StreamScheduler::run() break; } - if (mlistSourceNode.size() > 0) - { - mConditionMain.wait_timeout(RUN_WAIT_TIMEOUT / 2); - } - else - { - mConditionMain.wait_timeout(RUN_WAIT_TIMEOUT / 2); - } + mConditionMain.wait_timeout(RUN_WAIT_TIMEOUT / 2); } mConditionExit.signal(); diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp index a7c962da..afe8c064 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioJitterBuffer.cpp @@ -19,10 +19,10 @@ #include <ImsMediaTimer.h> #include <ImsMediaTrace.h> -#define AUDIO_JITTER_BUFFER_MIN_SIZE 3 -#define AUDIO_JITTER_BUFFER_MAX_SIZE 9 -#define AUDIO_JITTER_BUFFER_START_SIZE 4 -#define GET_SEQ_GAP(a, b) ((uint16_t)a - (uint16_t)b) +#define AUDIO_JITTER_BUFFER_MIN_SIZE (3) +#define AUDIO_JITTER_BUFFER_MAX_SIZE (9) +#define AUDIO_JITTER_BUFFER_START_SIZE (4) +#define GET_SEQ_GAP(a, b) ((uint16_t)(a) - (uint16_t)(b)) AudioJitterBuffer::AudioJitterBuffer() { diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioManager.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioManager.cpp index 96f3ca5a..d5bee8a8 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioManager.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioManager.cpp @@ -456,18 +456,10 @@ void AudioManager::ResponseHandler::processEvent( // TODO : add implementation break; case kAudioMediaInactivityInd: - parcel.writeInt32(event); - parcel.writeInt32(static_cast<int>(paramA)); // type - AudioManager::getInstance()->sendResponse(sessionId, parcel); - break; case kAudioPacketLossInd: - parcel.writeInt32(event); - parcel.writeInt32(static_cast<int>(paramA)); // loss rate - AudioManager::getInstance()->sendResponse(sessionId, parcel); - break; case kAudioJitterInd: parcel.writeInt32(event); - parcel.writeInt32(static_cast<int>(paramA)); // jitter + parcel.writeInt32(static_cast<int>(paramA)); AudioManager::getInstance()->sendResponse(sessionId, parcel); break; case kAudioTriggerAnbrQueryInd: diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioSession.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioSession.cpp index ddce5b95..e9b4a07b 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioSession.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/AudioSession.cpp @@ -628,8 +628,6 @@ void AudioSession::onEvent(int32_t type, uint64_t param1, uint64_t param2) "AUDIO_RESPONSE_EVENT", kAudioJitterInd, mSessionId, param1); break; case kAudioTriggerAnbrQueryInd: - /** TODO: add implementation */ - break; case kAudioDtmfReceivedInd: /** TODO: add implementation */ break; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp index 3eee302a..7fa02b5a 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/MediaQualityAnalyzer.cpp @@ -24,14 +24,14 @@ #include <AudioConfig.h> #include <stdlib.h> -#define DEFAULT_PARAM -1 -#define DEFAULT_INACTIVITY_TIME 5 -#define CALL_QUALITY_MONITORING_TIME 5 -#define MAX_NUM_PACKET_STORED 500 -#define DELETE_ALL 65536 -#define TIMER_INTERVAL 1000 // 1 sec -#define STOP_TIMEOUT 1000 // 1 sec -#define MESSAGE_PROCESSING_INTERVAL 20000 // 20 msec +#define DEFAULT_PARAM (-1) +#define DEFAULT_INACTIVITY_TIME (5) +#define CALL_QUALITY_MONITORING_TIME (5) +#define MAX_NUM_PACKET_STORED (500) +#define DELETE_ALL (65536) +#define TIMER_INTERVAL (1000) // 1 sec +#define STOP_TIMEOUT (1000) // 1 sec +#define MESSAGE_PROCESSING_INTERVAL (20000) // 20 msec MediaQualityAnalyzer::MediaQualityAnalyzer() { diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioPlayer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioPlayer.cpp index 8077dd79..a95b17f2 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioPlayer.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioPlayer.cpp @@ -30,9 +30,9 @@ #include <ImsMediaAudioPlayer.h> #include <utils/Errors.h> -#define AAUDIO_STATE_TIMEOUT_NANO 100 * 1000000L -#define DEFAULT_SAMPLING_RATE 8000 -#define CODEC_TIMEOUT_NANO 100000 +#define AAUDIO_STATE_TIMEOUT_NANO (100 * 1000000L) +#define DEFAULT_SAMPLING_RATE (8000) +#define CODEC_TIMEOUT_NANO (100000) using namespace android; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioSource.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioSource.cpp index 8fa30f54..066e769e 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioSource.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/android/ImsMediaAudioSource.cpp @@ -27,10 +27,10 @@ #include <utils/Errors.h> #include <thread> -#define AAUDIO_STATE_TIMEOUT_NANO 100 * 1000000L -#define NUM_FRAMES_PER_SEC 50 -#define DEFAULT_SAMPLING_RATE 8000 -#define CODEC_TIMEOUT_NANO 100000 +#define AAUDIO_STATE_TIMEOUT_NANO (100 * 1000000L) +#define NUM_FRAMES_PER_SEC (50) +#define DEFAULT_SAMPLING_RATE (8000) +#define CODEC_TIMEOUT_NANO (100000) using namespace android; @@ -101,28 +101,26 @@ void ImsMediaAudioSource::SetEvsBandwidth(kEvsBandwidth evsBandwidth) bool ImsMediaAudioSource::Start() { char kMimeType[128] = {'\0'}; - int amrBitrate; + int amrBitrate = 0; // TODO: Integration with libEVS is required. ImsMediaAudioUtil::ConvertEvsBandwidthToStr(mEvsBandwidth, mEvsbandwidthStr, MAX_EVS_BW_STRLEN); - if (mCodecType == kAudioCodecAmr) + switch (mCodecType) { - sprintf(kMimeType, "audio/3gpp"); - amrBitrate = ImsMediaAudioUtil::ConvertAmrModeToBitrate(mMode); - } - else if (mCodecType == kAudioCodecAmrWb) - { - sprintf(kMimeType, "audio/amr-wb"); - amrBitrate = ImsMediaAudioUtil::ConvertAmrWbModeToBitrate(mMode); - } - else if (mCodecType == kAudioCodecEvs) - { - // TODO: Integration with libEVS is required. - sprintf(kMimeType, "audio/evs"); - } - else - { - return false; + case kAudioCodecAmr: + sprintf(kMimeType, "audio/3gpp"); + amrBitrate = ImsMediaAudioUtil::ConvertAmrModeToBitrate(mMode); + break; + case kAudioCodecAmrWb: + sprintf(kMimeType, "audio/amr-wb"); + amrBitrate = ImsMediaAudioUtil::ConvertAmrWbModeToBitrate(mMode); + break; + case kAudioCodecEvs: + // TODO: Integration with libEVS is required. + sprintf(kMimeType, "audio/evs"); + break; + default: + return false; } openAudioStream(); @@ -415,9 +413,6 @@ void ImsMediaAudioSource::openAudioStream() AAudioStreamBuilder_setErrorCallback(builder, audioErrorCallback, this); AAudioStreamBuilder_setPrivacySensitive(builder, true); - int numFramesPerSec = 0; - mPtime == 0 ? numFramesPerSec = NUM_FRAMES_PER_SEC : numFramesPerSec = 1000 / mPtime; - // open stream result = AAudioStreamBuilder_openStream(builder, &mAudioStream); AAudioStreamBuilder_delete(builder); diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/DtmfEncoderNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/DtmfEncoderNode.cpp index bf2141d5..95ef224e 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/DtmfEncoderNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/audio/nodes/DtmfEncoderNode.cpp @@ -162,7 +162,7 @@ void* DtmfEncoderNode::run() break; } - uint16_t nPeriod = 0; + uint32_t nPeriod = 0; uint8_t pbPayload[BUNDLE_DTMF_DATA_MAX]; uint32_t nPayloadSize; uint32_t nTimestamp = ImsMediaTimer::GetTimeInMilliSeconds(); @@ -245,7 +245,7 @@ uint32_t DtmfEncoderNode::calculateDtmfDuration(uint32_t duration) bool DtmfEncoderNode::SendDTMFEvent(uint8_t digit, uint32_t duration) { - uint16_t nPeriod = 0; + uint32_t nPeriod = 0; uint8_t pbPayload[BUNDLE_DTMF_DATA_MAX]; uint32_t nPayloadSize; uint32_t nTimestamp = 0; @@ -253,20 +253,6 @@ bool DtmfEncoderNode::SendDTMFEvent(uint8_t digit, uint32_t duration) uint32_t nDTMFDuration = calculateDtmfDuration(duration); uint32_t nDTMFRetransmitDuration = mRetransmitDuration * (mAudioFrameDuration / mPtime); -#if 0 - // support bundling... - int32_t nFrameBundlingSize = 1; - if (nFrameBundlingSize > 1) { - uint32_t nBundlingDuration; - uint8_t nRemainedTime; - nBundlingDuration = nFrameBundlingSize * AUDIO_FRAME_DURATION_INTERVAL; - nRemainedTime = nDTMFRetransmitDuration % nBundlingDuration; - if (nRemainedTime > 0) { - nDTMFRetransmitDuration += (nBundlingDuration - nRemainedTime); - } - } -#endif - // make and send DTMF packet for (nPeriod = mAudioFrameDuration; nPeriod < nDTMFDuration; nPeriod += mAudioFrameDuration) { @@ -321,7 +307,7 @@ bool DtmfEncoderNode::convertSignal(uint8_t digit, uint8_t& signal) } uint32_t DtmfEncoderNode::MakeDTMFPayload( - uint8_t* pbPayload, uint8_t digit, bool bEnd, uint8_t nVolume, uint16_t nPeriod) + uint8_t* pbPayload, uint8_t digit, bool bEnd, uint8_t nVolume, uint32_t nPeriod) { // Event: 8 bits pbPayload[0] = digit; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/BaseStreamGraph.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/BaseStreamGraph.h index 956f8631..c7b18e00 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/BaseStreamGraph.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/BaseStreamGraph.h @@ -33,12 +33,12 @@ class BaseStreamGraph protected: virtual ImsMediaResult create(RtpConfig* config) = 0; virtual ImsMediaResult update(RtpConfig* config) = 0; - virtual void AddNode(BaseNode* pNode, bool bReverse = true); - virtual void RemoveNode(BaseNode* pNode); - virtual ImsMediaResult startNodes(); - virtual ImsMediaResult stopNodes(); - virtual void deleteNodes(); - virtual BaseNode* findNode(kBaseNodeId id); + void AddNode(BaseNode* pNode, bool bReverse = true); + void RemoveNode(BaseNode* pNode); + ImsMediaResult startNodes(); + ImsMediaResult stopNodes(); + void deleteNodes(); + BaseNode* findNode(kBaseNodeId id); public: /** diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/ImsMediaDefine.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/ImsMediaDefine.h index 97c9ed8b..5ed3fdb0 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/ImsMediaDefine.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/ImsMediaDefine.h @@ -23,13 +23,13 @@ #define DEFAULT_MTU 1500 #define SEQ_ROUND_QUARD 655 // 1% of FFFF -#define USHORT_SEQ_ROUND_COMPARE(a, b) \ - (((a >= b) && ((b >= SEQ_ROUND_QUARD) || ((a <= 0xffff - SEQ_ROUND_QUARD)))) || \ - ((a <= SEQ_ROUND_QUARD) && (b >= 0xffff - SEQ_ROUND_QUARD))) +#define USHORT_SEQ_ROUND_COMPARE(a, b) \ + ((((a) >= (b)) && (((b) >= SEQ_ROUND_QUARD) || (((a) <= 0xffff - SEQ_ROUND_QUARD)))) || \ + (((a) <= SEQ_ROUND_QUARD) && ((b) >= 0xffff - SEQ_ROUND_QUARD))) #define TS_ROUND_QUARD 3000 #define USHORT_TS_ROUND_COMPARE(a, b) \ - (((a >= b) && ((b >= TS_ROUND_QUARD) || ((a <= 0xffff - TS_ROUND_QUARD)))) || \ - ((a <= TS_ROUND_QUARD) && (b >= 0xffff - TS_ROUND_QUARD))) + (((a) >= (b) && (b) >= TS_ROUND_QUARD) || ((a) <= 0xffff - TS_ROUND_QUARD) || \ + ((a) <= TS_ROUND_QUARD && (b) >= 0xffff - TS_ROUND_QUARD)) using namespace android::telephony::imsmedia; @@ -381,13 +381,13 @@ enum ImsMediaTextMsgResponse kTextSessionClosed, }; -#define UNDEFINED_SOCKET_FD -1 -#define T140_BUFFERING_TIME 300 -#define RTT_MAX_CHAR_PER_SEC 30 // ATIS_GTT : 30 characters per second -#define RTT_MAX_UNICODE_UTF8 4 -#define MAX_RTT_LEN RTT_MAX_CHAR_PER_SEC* RTT_MAX_UNICODE_UTF8 -#define T140_MAX_CHUNK 1 -#define PAYLOADENCODER_TEXT_MAX_REDUNDANT_INTERVAL 16383 +#define UNDEFINED_SOCKET_FD (-1) +#define T140_BUFFERING_TIME (300) +#define RTT_MAX_CHAR_PER_SEC (30) // ATIS_GTT : 30 characters per second +#define RTT_MAX_UNICODE_UTF8 (4) +#define MAX_RTT_LEN (RTT_MAX_CHAR_PER_SEC * RTT_MAX_UNICODE_UTF8) +#define T140_MAX_CHUNK (1) +#define PAYLOADENCODER_TEXT_MAX_REDUNDANT_INTERVAL (16383) struct EventParamOpenSession { @@ -583,9 +583,13 @@ struct tRtpHeaderExtensionInfo } tRtpHeaderExtensionInfo& operator=(const tRtpHeaderExtensionInfo& extension) { - nDefinedByProfile = extension.nDefinedByProfile; - nLength = extension.nLength; - nExtensionData = extension.nExtensionData; + if (this != &extension) + { + nDefinedByProfile = extension.nDefinedByProfile; + nLength = extension.nLength; + nExtensionData = extension.nExtensionData; + } + return *this; } }; @@ -614,9 +618,13 @@ public: } RtpAddress& operator=(const RtpAddress& address) { - memset(this->ipAddress, 0, MAX_IP_LEN); - std::strncpy(this->ipAddress, address.ipAddress, MAX_IP_LEN); - this->port = address.port; + if (this != &address) + { + memset(this->ipAddress, 0, MAX_IP_LEN); + std::strncpy(this->ipAddress, address.ipAddress, MAX_IP_LEN); + this->port = address.port; + } + return *this; } bool operator==(const RtpAddress& address) diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadDecoderNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadDecoderNode.h index a1c58bbe..1cbd94a7 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadDecoderNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadDecoderNode.h @@ -65,7 +65,7 @@ private: kRtpPyaloadHeaderMode mEvsPayloadHeaderMode; kEvsBitrate mEvsMode; int32_t mCoreEvsMode; - int32_t mEvsOffset; + int8_t mEvsOffset; int32_t EvsChAOffset; }; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadEncoderNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadEncoderNode.h index c37c1d40..de991c17 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadEncoderNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/AudioRtpPayloadEncoderNode.h @@ -44,7 +44,7 @@ private: int32_t mCodecType; bool mOctetAligned; - uint32_t mPtime; + int8_t mPtime; uint8_t mPayload[MAX_AUDIO_PAYLOAD_SIZE]; bool mFirstFrame; uint32_t mTimestamp; @@ -56,7 +56,7 @@ private: ImsMediaBitWriter mBWPayload; kEvsBandwidth mEvsBandwidth; kEvsCodecMode mEvsCodecMode; - int32_t mEvsOffset; + int8_t mEvsOffset; int8_t mSendCMR; kEvsBitrate mEvsMode; int32_t mCoreEvsMode; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfEncoderNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfEncoderNode.h index 913f190d..ad1dacc4 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfEncoderNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfEncoderNode.h @@ -45,18 +45,18 @@ private: uint32_t calculateDtmfDuration(uint32_t duration); bool convertSignal(uint8_t digit, uint8_t& signal); uint32_t MakeDTMFPayload( - uint8_t* pbPayload, uint8_t nEvent, bool bEnd, uint8_t nVolume, uint16_t nPeriod); + uint8_t* pbPayload, uint8_t nEvent, bool bEnd, uint8_t nVolume, uint32_t nPeriod); ImsMediaCondition mConditionDtmf; ImsMediaCondition mConditionExit; std::mutex mMutex; std::list<uint8_t> mListDtmfDigit; bool mStopDtmf; - uint32_t mSamplingRate; // audio sampling rate + int8_t mSamplingRate; // audio sampling rate uint32_t mDuration; // msec unit, duration of one DTMF tone uint32_t mRetransmitDuration; // msec unit, duration of retransmitting the last packet uint32_t mVolume; // Volume of DTMF, 0~63, default value is 10. uint32_t mAudioFrameDuration; - uint32_t mPtime; + int8_t mPtime; }; #endif // DTMFENCODERNODE_H_INCLUDED diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfSenderNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfSenderNode.h index 5551dd98..b2a2e522 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfSenderNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/DtmfSenderNode.h @@ -37,7 +37,7 @@ public: private: uint32_t mNextTime; uint32_t mPrevTime; - uint32_t mPtime; // msec unit, interval between dtmf packets + int8_t mPtime; // msec unit, interval between dtmf packets }; #endif // DTMFSENDERNODE_H_INCLUDED diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h index 0c3468ad..2266c981 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioPlayerNode.h @@ -49,9 +49,9 @@ private: uint32_t mMode; ImsMediaCondition mCondition; bool mFirstFrame; - int32_t mEvsChannelAwOffset; + int8_t mEvsChannelAwOffset; kEvsBandwidth mEvsBandwidth; - int32_t mSamplingRate; + int8_t mSamplingRate; int32_t mEvsPayloadHeaderMode; }; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioSourceNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioSourceNode.h index 4b05167e..28a224e5 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioSourceNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/audio/nodes/IAudioSourceNode.h @@ -62,10 +62,10 @@ public: int32_t mCodecType; uint32_t mCodecMode; uint32_t mRunningCodecMode; - uint32_t mPtime; + int8_t mPtime; kEvsBandwidth mEvsBandwidth; - int32_t mSamplingRate; - int32_t mEvsChAwOffset; + int8_t mSamplingRate; + int8_t mEvsChAwOffset; }; #endif diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/BaseNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/BaseNode.h index 132b87a3..156d16f1 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/BaseNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/BaseNode.h @@ -22,8 +22,8 @@ #include <BaseSessionCallback.h> #include <StreamSchedulerCallback.h> -#define MAX_AUDIO_PAYLOAD_SIZE 1500 -#define MAX_FRAME_IN_PACKET (MAX_AUDIO_PAYLOAD_SIZE - 1) / 32 +#define MAX_AUDIO_PAYLOAD_SIZE (1500) +#define MAX_FRAME_IN_PACKET ((MAX_AUDIO_PAYLOAD_SIZE - 1) / 32) enum kBaseNodeState { @@ -95,6 +95,11 @@ public: void ConnectRearNode(BaseNode* pRearNode); /** + * @brief Disconnect nodes connected to rear and front + */ + void DisconnectNodes(); + + /** * @brief Empty the data queue * */ diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpDecoderNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpDecoderNode.h index 90bb6fb9..2c460868 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpDecoderNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpDecoderNode.h @@ -71,17 +71,17 @@ private: IRtpSession* mRtpSession; RtpAddress mLocalAddress; RtpAddress mPeerAddress; - uint32_t mSamplingRate; - int32_t mRtpPayloadTx; - int32_t mRtpPayloadRx; - int32_t mRtpTxDtmfPayload; - int32_t mRtpRxDtmfPayload; - int32_t mDtmfSamplingRate; + int8_t mSamplingRate; + int8_t mRtpPayloadTx; + int8_t mRtpPayloadRx; + int8_t mRtpTxDtmfPayload; + int8_t mRtpRxDtmfPayload; + int8_t mDtmfSamplingRate; int32_t mCvoValue; uint32_t mReceivingSSRC; uint32_t mInactivityTime; uint32_t mNoRtpTime; - int32_t mRedundantPayload; + int8_t mRedundantPayload; uint32_t mArrivalTime; ImsMediaSubType mSubtype; #if (defined(DEBUG_JITTER_GEN_SIMULATION_LOSS) || defined(DEBUG_JITTER_GEN_SIMULATION_DUPLICATE)) diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpEncoderNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpEncoderNode.h index 47f76fb7..15dde732 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpEncoderNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/RtpEncoderNode.h @@ -73,15 +73,15 @@ private: bool mMark; uint32_t mPrevTimestamp; uint32_t mDTMFTimestamp; - uint32_t mSamplingRate; - int32_t mRtpPayloadTx; - int32_t mRtpPayloadRx; - int32_t mRtpTxDtmfPayload; - int32_t mRtpRxDtmfPayload; - int32_t mDtmfSamplingRate; + int8_t mSamplingRate; + int8_t mRtpPayloadTx; + int8_t mRtpPayloadRx; + int8_t mRtpTxDtmfPayload; + int8_t mRtpRxDtmfPayload; + int8_t mDtmfSamplingRate; int32_t mCvoValue; - int32_t mRedundantPayload; - int32_t mRedundantLevel; + int8_t mRedundantPayload; + int8_t mRedundantLevel; tRtpHeaderExtensionInfo mRtpExtension; }; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/SocketWriterNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/SocketWriterNode.h index 594fa1ad..a79662ba 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/SocketWriterNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/nodes/SocketWriterNode.h @@ -36,9 +36,25 @@ public: uint32_t timestamp, bool mark, uint32_t nSeqNum, ImsMediaSubType nDataType = ImsMediaSubType::MEDIASUBTYPE_UNDEFINED, uint32_t arrivalTime = 0); + + /** + * @brief Set the local socket file descriptor + */ void SetLocalFd(int fd); - void SetLocalAddress(const RtpAddress address); - void SetPeerAddress(const RtpAddress address); + + /** + * @brief Set the local ip address and port number + */ + void SetLocalAddress(const RtpAddress& address); + + /** + * @brief Set the peer ip address and port number + */ + void SetPeerAddress(const RtpAddress& address); + + /** + * @brief Set the protocol type defined as kProtocolType + */ void SetProtocolType(kProtocolType type) { mProtocolType = type; } private: @@ -47,7 +63,7 @@ private: kProtocolType mProtocolType; RtpAddress mLocalAddress; RtpAddress mPeerAddress; - int32_t mDscp; + int8_t mDscp; bool mSocketOpened; bool mDisableSocket; }; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRendererNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRendererNode.h index face0e4b..aa968ca4 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRendererNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRendererNode.h @@ -39,7 +39,7 @@ public: private: char mBuffer[MAX_RTT_LEN + 1]; int32_t mCodecType; - int32_t mRedundantRevel; + int8_t mRedundantLevel; bool mBOMReceived; uint16_t mLastPlayedSeq; uint32_t mLossWaitTime; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRtpPayloadEncoderNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRtpPayloadEncoderNode.h index 6813db0b..83ec6df5 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRtpPayloadEncoderNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextRtpPayloadEncoderNode.h @@ -42,8 +42,8 @@ private: void EncodeT140(uint8_t* data, uint32_t size, uint32_t timestamp, bool bMark); int32_t mCodecType; - uint8_t mRedundantPayload; - int32_t mRedundantLevel; + int8_t mRedundantPayload; + int8_t mRedundantLevel; bool mKeepRedundantLevel; uint8_t mPayload[MAX_RTT_LEN]; uint32_t mLastTimestampSent; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextSourceNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextSourceNode.h index ede72d61..48f86bb7 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextSourceNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/text/nodes/TextSourceNode.h @@ -48,7 +48,7 @@ private: void SendBOM(); int32_t mCodecType; - int32_t mRedundantLevel; + int8_t mRedundantLevel; int32_t mRedundantCount; int32_t mTimeLastSent; int32_t mBitrate; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaCondition.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaCondition.h index cec47057..738d51be 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaCondition.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/utils/ImsMediaCondition.h @@ -20,37 +20,38 @@ #include <stdint.h> #include <pthread.h> -/** - * @class ImsMediaCondition - * @brief Event class - */ class ImsMediaCondition { -private: - pthread_mutex_t* mMutex; - pthread_cond_t* mCondition; - uint32_t mWaitFlag; - uint32_t mSignalFlag; - uint32_t mWaitCount; - uint32_t mSignalCount; - -private: - ImsMediaCondition(const ImsMediaCondition& objRHS); - ImsMediaCondition& operator=(const ImsMediaCondition& objRHS); - public: ImsMediaCondition(); ~ImsMediaCondition(); + + /** + * @brief Wait the current thread + * + */ void wait(); - /* - *@param nRelativeTime : unit msec + + /** + * @brief Wait the current thread until the timer expired + * + * @param time The relative time in milliseconds unit + * @return true Returned when the timer expires + * @return false Returned when the thread is stopped by signal */ - bool wait_timeout(int64_t nRelativeTime); + bool wait_timeout(int64_t time); void signal(); void reset(); private: void IncCount(uint32_t* pnCount); + + pthread_mutex_t* mMutex; + pthread_cond_t* mCondition; + uint32_t mWaitFlag; + uint32_t mSignalFlag; + uint32_t mWaitCount; + uint32_t mSignalCount; }; #endif // IMS_MEDIA_CONDITION_H diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/android/ImsMediaCamera.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/android/ImsMediaCamera.h index 9e91eb3c..7da26597 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/android/ImsMediaCamera.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/android/ImsMediaCamera.h @@ -41,18 +41,30 @@ public: ACameraDevice* mDevice; std::string mId; int32_t mFacing; - bool mAvailable; // free to use ( no other apps are using - bool mOwner; // we are the owner of the camera - explicit CameraId(const char* id) : + bool mAvailable; + bool mOwner; + explicit CameraId(const char* id = NULL) : mDevice(NULL), mFacing(ACAMERA_LENS_FACING_FRONT), mAvailable(false), mOwner(false) { - mId = id; + mId = (id != NULL) ? id : ""; } - explicit CameraId() { CameraId(""); } + CameraId& operator=(const CameraId& camera) + { + if (this != &camera) + { + mDevice = camera.mDevice; + mId = camera.mId; + mFacing = camera.mFacing; + mAvailable = camera.mAvailable; + mOwner = camera.mOwner; + } + + return *this; + } }; template <typename T> @@ -68,8 +80,12 @@ public: RangeValue() { min = max = static_cast<T>(0); } RangeValue& operator=(const RangeValue& rangeValue) { - min = rangeValue.min; - max = rangeValue.max; + if (this != &rangeValue) + { + min = rangeValue.min; + max = rangeValue.max; + } + return *this; } diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoRendererNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoRendererNode.h index 1dc3ac54..d32f901c 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoRendererNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoRendererNode.h @@ -98,7 +98,7 @@ private: int32_t mCodecType; uint32_t mWidth; uint32_t mHeight; - uint32_t mSamplingRate; + int8_t mSamplingRate; int32_t mCvoValue; uint8_t mConfigBuffer[MAX_CONFIG_INDEX][MAX_CONFIG_LEN]; uint32_t mConfigLen[MAX_CONFIG_INDEX]; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoSourceNode.h b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoSourceNode.h index 618063ab..7a6c2ed4 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoSourceNode.h +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/include/video/nodes/IVideoSourceNode.h @@ -63,7 +63,7 @@ protected: uint32_t mHeight; uint32_t mFramerate; uint32_t mBitrate; - uint32_t mSamplingRate; + int8_t mSamplingRate; uint32_t mIntraInterval; android::String8 mImagePath; uint32_t mDeviceOrientation; diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/BaseNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/BaseNode.cpp index 095d426a..ddb45534 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/BaseNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/BaseNode.cpp @@ -55,16 +55,6 @@ BaseNode::BaseNode(BaseSessionCallback* callback) BaseNode::~BaseNode() { - while (!mListFrontNodes.empty()) - { - DisconnectFrontNode(mListFrontNodes.back()); - } - - while (!mListRearNodes.empty()) - { - DisconnectRearNode(mListRearNodes.back()); - } - ClearDataQueue(); mNodeState = kNodeStateStopped; } @@ -92,6 +82,19 @@ void BaseNode::ConnectRearNode(BaseNode* pRearNode) pRearNode->mListFrontNodes.push_back(this); } +void BaseNode::DisconnectNodes() +{ + while (!mListFrontNodes.empty()) + { + DisconnectFrontNode(mListFrontNodes.back()); + } + + while (!mListRearNodes.empty()) + { + DisconnectRearNode(mListRearNodes.back()); + } +} + void BaseNode::ClearDataQueue() { mDataQueue.Clear(); diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/SocketWriterNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/SocketWriterNode.cpp index 36cd96da..98ef9ee0 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/SocketWriterNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/nodes/SocketWriterNode.cpp @@ -29,7 +29,7 @@ SocketWriterNode::~SocketWriterNode() { if (mSocket != NULL) { - Stop(); + IMLOGE0("[~SocketWriterNode] socket is not closed"); } } @@ -169,12 +169,12 @@ void SocketWriterNode::SetLocalFd(int fd) mLocalFd = fd; } -void SocketWriterNode::SetLocalAddress(const RtpAddress address) +void SocketWriterNode::SetLocalAddress(const RtpAddress& address) { mLocalAddress = address; } -void SocketWriterNode::SetPeerAddress(const RtpAddress address) +void SocketWriterNode::SetPeerAddress(const RtpAddress& address) { mPeerAddress = address; }
\ No newline at end of file diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp index 4eb709fa..5289795d 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/text/nodes/TextRendererNode.cpp @@ -20,7 +20,7 @@ #include <ImsMediaTrace.h> /** Maximum waiting time when packet loss found */ -#define TEXT_LOSS_MAX_WAITING_TIME 1000 +#define TEXT_LOSS_MAX_WAITING_TIME (1000) TextRendererNode::TextRendererNode(BaseSessionCallback* callback) : JitterBufferControlNode(callback, IMS_MEDIA_TEXT) @@ -81,7 +81,7 @@ void TextRendererNode::SetConfig(void* config) TextConfig* pConfig = reinterpret_cast<TextConfig*>(config); mCodecType = pConfig->getCodecType(); - mRedundantRevel = pConfig->getRedundantLevel(); + mRedundantLevel = pConfig->getRedundantLevel(); } bool TextRendererNode::IsSameConfig(void* config) @@ -94,7 +94,7 @@ bool TextRendererNode::IsSameConfig(void* config) TextConfig* pConfig = reinterpret_cast<TextConfig*>(config); return (mCodecType == pConfig->getCodecType() && - mRedundantRevel == pConfig->getRedundantLevel()); + mRedundantLevel == pConfig->getRedundantLevel()); } void TextRendererNode::ProcessData() diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaSocket.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaSocket.cpp index 6492c549..0b92abd9 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaSocket.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaSocket.cpp @@ -89,7 +89,7 @@ ImsMediaSocket::~ImsMediaSocket() void ImsMediaSocket::SetLocalEndpoint(const char* ipAddress, const uint32_t port) { - std::strcpy(mLocalIP, ipAddress); + std::strncpy(mLocalIP, ipAddress, strlen(ipAddress)); mLocalPort = port; if (strstr(mLocalIP, ":") == NULL) @@ -104,7 +104,7 @@ void ImsMediaSocket::SetLocalEndpoint(const char* ipAddress, const uint32_t port void ImsMediaSocket::SetPeerEndpoint(const char* ipAddress, const uint32_t port) { - std::strcpy(mPeerIP, ipAddress); + std::strncpy(mPeerIP, ipAddress, strlen(ipAddress)); mPeerPort = port; if (strstr(mPeerIP, ":") == NULL) diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaTimer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaTimer.cpp index 34ea349e..4fd45938 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaTimer.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/utils/ImsMediaTimer.cpp @@ -243,6 +243,11 @@ void ImsMediaTimer::GetNtpTime(IMNtpTime* pNtpTime) pNtpTime->ntpHigh32Bits = stAndrodTp.tv_sec + 2208988800UL; pNtpTime->ntpLow32Bits = (unsigned int)(stAndrodTp.tv_usec * 4294UL); } + else + { + pNtpTime->ntpHigh32Bits = 0; + pNtpTime->ntpLow32Bits = 0; + } } /*! @@ -262,7 +267,7 @@ uint32_t ImsMediaTimer::GetRtpTsFromNtpTs(IMNtpTime* initNtpTimestamp, uint32_t /* SPR #1256 BEGIN */ timeDiffHigh32Bits = currentNtpTs.ntpHigh32Bits - initNtpTimestamp->ntpHigh32Bits; timeDiffLow32Bits = - (currentNtpTs.ntpLow32Bits / 4294UL) - (initNtpTimestamp->ntpLow32Bits / 4294UL); + (currentNtpTs.ntpLow32Bits / 4294) - (initNtpTimestamp->ntpLow32Bits / 4294); /*! timeDiffHigh32Bits should always be positive */ timeDiff = (timeDiffHigh32Bits * 1000) + timeDiffLow32Bits / 1000; return timeDiff * (samplingRate / 1000); diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp index 8b2fd067..2bf0129e 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/VideoJitterBuffer.cpp @@ -21,14 +21,14 @@ #include <ImsMediaVideoUtil.h> #include <ImsMediaTimer.h> -#define DEFAULT_MAX_SAVE_FRAME_NUM 5 -#define DEFAULT_IDR_FRAME_CHECK_INTRERVAL 3 -#define DEFAULT_VIDEO_JITTER_IDR_WAIT_DELAY 200 -#define RTCPNACK_SEQ_INCREASE(seq) (seq == 0xffff ? 0 : seq + 1) -#define RTCPNACK_SEQ_ROUND_COMPARE(a, b) ((a > b) && (a > 0xfff0) && (b < 0x000f)) -#define DEFAULT_PACKET_LOSS_MONITORING_TIME 5 // sec -#define PACKET_LOSS_RATIO 2 // percentage -#define BITRATE_ADAPTIVE_RATIO 0.1f // ratio +#define DEFAULT_MAX_SAVE_FRAME_NUM (5) +#define DEFAULT_IDR_FRAME_CHECK_INTRERVAL (3) +#define DEFAULT_VIDEO_JITTER_IDR_WAIT_DELAY (200) +#define RTCPNACK_SEQ_INCREASE(seq) ((seq) == 0xffff ? 0 : (seq) + 1) +#define RTCPNACK_SEQ_ROUND_COMPARE(a, b) (((a) > (b)) && ((a) > 0xfff0) && ((b) < 0x000f)) +#define DEFAULT_PACKET_LOSS_MONITORING_TIME (5) // sec +#define PACKET_LOSS_RATIO (2) // percentage +#define BITRATE_ADAPTIVE_RATIO (0.1f) // ratio VideoJitterBuffer::VideoJitterBuffer() : BaseJitterBuffer() @@ -514,11 +514,8 @@ bool VideoJitterBuffer::Get(ImsMediaSubType* subtype, uint8_t** ppData, uint32_t uint32_t nCurrTime = ImsMediaTimer::GetTimeInMilliSeconds(); - if (mLastPlayedTimestamp == 0 || mLastPlayedTime == 0) - { - bValidPacket = true; - } - else if (pEntry->nTimestamp == mLastPlayedTimestamp) + if (mLastPlayedTimestamp == 0 || mLastPlayedTime == 0 || + pEntry->nTimestamp == mLastPlayedTimestamp) { bValidPacket = true; } @@ -672,42 +669,21 @@ uint32_t VideoJitterBuffer::GetCount() bool VideoJitterBuffer::CheckHeader(uint8_t* pbBuffer) { - bool ret = false; - switch (mCodecType) + if (pbBuffer == NULL) { - case kVideoCodecAvc: - // check start code - if ((pbBuffer[0] == 0x00 && pbBuffer[1] == 0x00 && pbBuffer[2] == 0x00) || - (pbBuffer[0] == 0x00 && pbBuffer[1] == 0x00 && pbBuffer[2] == 0x01)) - { - ret = true; - } - else - { - ret = false; - } - break; - case kVideoCodecHevc: /* [HEVC] check H.265 start code */ - // check start code - if ((pbBuffer[0] == 0x00 && pbBuffer[1] == 0x00 && pbBuffer[2] == 0x00) || - (pbBuffer[0] == 0x00 && pbBuffer[1] == 0x00 && pbBuffer[2] == 0x01)) - { - ret = true; - } - else - { - ret = false; - } - break; - default: - ret = true; - IMLOGE1("[CheckHeader] Invalid video codec type %u", mCodecType); + return false; } - IMLOGD_PACKET5(IM_PACKET_LOG_JITTER, "[CheckHeader] ret[%u] %02X %02X %02X %02X ", ret, - pbBuffer[0], pbBuffer[1], pbBuffer[2], pbBuffer[3]); - - return ret; + // check start code + if ((pbBuffer[0] == 0x00 && pbBuffer[1] == 0x00 && pbBuffer[2] == 0x00) || + (pbBuffer[0] == 0x00 && pbBuffer[1] == 0x00 && pbBuffer[2] == 0x01)) + { + return true; + } + else + { + return false; + } } void VideoJitterBuffer::RemovePacketFromLostList(uint16_t seqNum, bool bRemoveOldPacket) diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp index 355ae4d5..e1cfe771 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/android/ImsMediaCamera.cpp @@ -237,8 +237,8 @@ bool ImsMediaCamera::OpenCamera() else { IMLOGW0("[OpenCamera] Unsupported ACAMERA_SENSOR_INFO_EXPOSURE_TIME_RANGE"); - mExposureRange.min = mExposureRange.max = 0l; - mExposureTime = 0l; + mExposureRange.min = mExposureRange.max = 0L; + mExposureTime = 0L; } status = ACameraMetadata_getConstEntry(metadataObj, ACAMERA_SENSOR_INFO_SENSITIVITY_RANGE, &val); @@ -606,25 +606,8 @@ void ImsMediaCamera::OnDeviceError(ACameraDevice* dev, int err) std::string id(ACameraDevice_getId(dev)); IMLOGE2("[OnDeviceError] CameraDevice %s is in error %#x", id.c_str(), err); PrintCameraDeviceError(err); - - CameraId& cam = gCameraIds[id]; - - switch (err) - { - case ERROR_CAMERA_IN_USE: - cam.mAvailable = false; - cam.mOwner = false; - break; - case ERROR_CAMERA_SERVICE: - case ERROR_CAMERA_DEVICE: - case ERROR_CAMERA_DISABLED: - case ERROR_MAX_CAMERAS_IN_USE: - cam.mAvailable = false; - cam.mOwner = false; - break; - default: - IMLOGD1("[OnDeviceError] Unknown Camera Device Error: %#x", err); - } + gCameraIds[id].mAvailable = false; + gCameraIds[id].mOwner = false; } // CaptureSession state callbacks @@ -839,9 +822,12 @@ public: } DisplayDimension& operator=(const DisplayDimension& other) { - w_ = other.w_; - h_ = other.h_; - portrait_ = other.portrait_; + if (this != &other) + { + w_ = other.w_; + h_ = other.h_; + portrait_ = other.portrait_; + } return (*this); } diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp index 6ab4c832..ee906c57 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoRendererNode.cpp @@ -26,7 +26,7 @@ using namespace android::telephony::imsmedia; -#define DEFAULT_UNDEFINED -1 +#define DEFAULT_UNDEFINED (-1) IVideoRendererNode::IVideoRendererNode(BaseSessionCallback* callback) : JitterBufferControlNode(callback, IMS_MEDIA_VIDEO) diff --git a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoSourceNode.cpp b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoSourceNode.cpp index ec939f52..6a4362a4 100644 --- a/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoSourceNode.cpp +++ b/service/src/com/android/telephony/imsmedia/lib/libimsmedia/core/video/nodes/IVideoSourceNode.cpp @@ -22,7 +22,7 @@ using namespace android::telephony::imsmedia; -#define DEFAULT_UNDEFINE -1 +#define DEFAULT_UNDEFINE (-1) IVideoSourceNode::IVideoSourceNode(BaseSessionCallback* callback) : BaseNode(callback) |