From eec6ecdb1e249871dd25d04b62fc9ddc03dc8a34 Mon Sep 17 00:00:00 2001 From: "tommi@webrtc.org" Date: Fri, 11 Jul 2014 19:09:59 +0000 Subject: [PATCH] Landing pkasting's webrtc fixes for MSVC level 4 warnings in WebRTC. --- Fixes for re-enabling more MSVC level 4 warnings: webrtc/ edition This contains fixes for the following sorts of issues: * Possibly-uninitialized local variable * Signedness mismatch * Assignment inside conditional This also contains a small number of other cleanups to nearby code. In particular several warning-disables for MSVC are removed because they don't seem to be necessary (either that warning is not enabled or the code does not trigger it). BUG=crbug.com/81439 TEST=none R=henrika@webrtc.org, pkasting@chromium.org Review URL: https://webrtc-codereview.appspot.com/18769004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6667 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/base/nssstreamadapter.cc | 14 +- .../codecs/isac/main/source/isac.c | 4 +- .../main/acm2/acm_generic_codec.cc | 2 +- .../audio_coding/main/acm2/acm_opus.cc | 2 +- .../audio_coding/main/acm2/acm_speex.cc | 2 +- .../audio_processing/agc/digital_agc.c | 2 +- .../modules/interface/module_common_types.h | 26 +- .../modules/rtp_rtcp/source/rtp_rtcp_impl.cc | 2 +- webrtc/modules/rtp_rtcp/source/tmmbr_help.cc | 343 +++++++++--------- webrtc/system_wrappers/source/thread_win.cc | 2 +- webrtc/video_engine/vie_codec_impl.cc | 2 +- webrtc/video_engine/vie_defines.h | 8 - webrtc/voice_engine/channel.cc | 8 +- webrtc/voice_engine/transmit_mixer.cc | 2 +- 14 files changed, 193 insertions(+), 226 deletions(-) diff --git a/webrtc/base/nssstreamadapter.cc b/webrtc/base/nssstreamadapter.cc index 1d06c1c4f..f4b2d3119 100644 --- a/webrtc/base/nssstreamadapter.cc +++ b/webrtc/base/nssstreamadapter.cc @@ -952,17 +952,11 @@ NSSContext *NSSContext::global_nss_context; // Static initialization and shutdown NSSContext *NSSContext::Instance() { if (!global_nss_context) { - NSSContext *new_ctx = new NSSContext(); - - if (!(new_ctx->slot_ = PK11_GetInternalSlot())) { - delete new_ctx; - goto fail; - } - - global_nss_context = new_ctx; + scoped_ptr new_ctx(new NSSContext()); + new_ctx->slot_ = PK11_GetInternalSlot(); + if (new_ctx->slot_) + global_nss_context = new_ctx.release(); } - - fail: return global_nss_context; } diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c b/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c index fa54a8d87..d47eb80b9 100644 --- a/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c +++ b/webrtc/modules/audio_coding/codecs/isac/main/source/isac.c @@ -2243,8 +2243,6 @@ int16_t WebRtcIsac_SetEncSampRate(ISACStruct* ISAC_main_inst, } else { ISACUBStruct* instUB = &(instISAC->instUB); ISACLBStruct* instLB = &(instISAC->instLB); - double bottleneckLB; - double bottleneckUB; int32_t bottleneck = instISAC->bottleneck; int16_t codingMode = instISAC->codingMode; int16_t frameSizeMs = instLB->ISACencLB_obj.new_framelength / @@ -2263,6 +2261,8 @@ int16_t WebRtcIsac_SetEncSampRate(ISACStruct* ISAC_main_inst, instISAC->maxRateBytesPer30Ms = STREAM_SIZE_MAX_30; } else if ((encoder_operational_rate == kIsacSuperWideband) && (instISAC->encoderSamplingRateKHz == kIsacWideband)) { + double bottleneckLB = 0; + double bottleneckUB = 0; if (codingMode == 1) { WebRtcIsac_RateAllocation(bottleneck, &bottleneckLB, &bottleneckUB, &(instISAC->bandwidthKHz)); diff --git a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc index d16d1d388..db776d2e8 100644 --- a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc +++ b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc @@ -838,7 +838,7 @@ int16_t ACMGenericCodec::ProcessFrameVADDTX(uint8_t* bitstream, // Calculate number of samples in 10 ms blocks, and number ms in one frame. int16_t samples_in_10ms = static_cast(freq_hz / 100); int32_t frame_len_ms = static_cast(frame_len_smpl_) * 1000 / freq_hz; - int16_t status; + int16_t status = -1; // Vector for storing maximum 30 ms of mono audio at 48 kHz. int16_t audio[1440]; diff --git a/webrtc/modules/audio_coding/main/acm2/acm_opus.cc b/webrtc/modules/audio_coding/main/acm2/acm_opus.cc index 544c932f3..638c72a91 100644 --- a/webrtc/modules/audio_coding/main/acm2/acm_opus.cc +++ b/webrtc/modules/audio_coding/main/acm2/acm_opus.cc @@ -80,7 +80,7 @@ ACMOpus::ACMOpus(int16_t codec_id) if (codec_id_ != ACMCodecDB::kOpus) { WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceAudioCoding, unique_id_, "Wrong codec id for Opus."); - sample_freq_ = -1; + sample_freq_ = 0xFFFF; bitrate_ = -1; } return; diff --git a/webrtc/modules/audio_coding/main/acm2/acm_speex.cc b/webrtc/modules/audio_coding/main/acm2/acm_speex.cc index 84a0592a4..c4d7628d2 100644 --- a/webrtc/modules/audio_coding/main/acm2/acm_speex.cc +++ b/webrtc/modules/audio_coding/main/acm2/acm_speex.cc @@ -30,7 +30,7 @@ ACMSPEEX::ACMSPEEX(int16_t /* codec_id */) vbr_enabled_(false), encoding_rate_(-1), sampling_frequency_(-1), - samples_in_20ms_audio_(-1) { + samples_in_20ms_audio_(0xFFFF) { return; } diff --git a/webrtc/modules/audio_processing/agc/digital_agc.c b/webrtc/modules/audio_processing/agc/digital_agc.c index 4b169c180..d0f7b10d0 100644 --- a/webrtc/modules/audio_processing/agc/digital_agc.c +++ b/webrtc/modules/audio_processing/agc/digital_agc.c @@ -310,7 +310,7 @@ int32_t WebRtcAgc_ProcessDigital(DigitalAgc_t *stt, const int16_t *in_near, int32_t gain32, delta; int16_t logratio; int16_t lower_thr, upper_thr; - int16_t zeros, zeros_fast, frac; + int16_t zeros = 0, zeros_fast, frac = 0; int16_t decay; int16_t gate, gain_adj; int16_t k, n; diff --git a/webrtc/modules/interface/module_common_types.h b/webrtc/modules/interface/module_common_types.h index e37313c9d..398808f7e 100644 --- a/webrtc/modules/interface/module_common_types.h +++ b/webrtc/modules/interface/module_common_types.h @@ -20,11 +20,6 @@ #include "webrtc/common_types.h" #include "webrtc/typedefs.h" -#ifdef _WIN32 -// Remove warning "new behavior: elements of array will be default initialized". -#pragma warning(disable : 4351) -#endif - namespace webrtc { struct RTPAudioHeader { @@ -34,21 +29,10 @@ struct RTPAudioHeader { uint8_t channel; // number of channels 2 = stereo }; -enum { - kNoPictureId = -1 -}; -enum { - kNoTl0PicIdx = -1 -}; -enum { - kNoTemporalIdx = -1 -}; -enum { - kNoKeyIdx = -1 -}; -enum { - kNoSimulcastIdx = 0 -}; +const int16_t kNoPictureId = -1; +const int16_t kNoTl0PicIdx = -1; +const uint8_t kNoTemporalIdx = 0xFF; +const int kNoKeyIdx = -1; struct RTPVideoHeaderVP8 { void InitRTPVideoHeaderVP8() { @@ -67,7 +51,7 @@ struct RTPVideoHeaderVP8 { // kNoPictureId if PictureID does not exist. int16_t tl0PicIdx; // TL0PIC_IDX, 8 bits; // kNoTl0PicIdx means no value provided. - int8_t temporalIdx; // Temporal layer index, or kNoTemporalIdx. + uint8_t temporalIdx; // Temporal layer index, or kNoTemporalIdx. bool layerSync; // This frame is a layer sync frame. // Disabled if temporalIdx == kNoTemporalIdx. int keyIdx; // 5 bits; kNoKeyIdx means not used. diff --git a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc index 34a08a8e4..349340f5f 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc @@ -85,7 +85,7 @@ ModuleRtpRtcpImpl::ModuleRtpRtcpImpl(const Configuration& configuration) CriticalSectionWrapper::CreateCriticalSection()), default_module_( static_cast(configuration.default_module)), - padding_index_(-1), // Start padding at the first child module. + padding_index_(static_cast(-1)), // Start padding at first child. nack_method_(kNackOff), nack_last_time_sent_full_(0), nack_last_seq_number_sent_(0), diff --git a/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc b/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc index ecdf6b87c..fb1ed625e 100644 --- a/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc +++ b/webrtc/modules/rtp_rtcp/source/tmmbr_help.cc @@ -266,180 +266,177 @@ TMMBRHelp::FindTMMBRBoundingSet(int32_t numCandidates, TMMBRSet& candidateSet) numBoundingSet++; } } - if (numBoundingSet != 1) - { - numBoundingSet = -1; - } - } else - { - // 1. Sort by increasing packetOH - for (int i = candidateSet.sizeOfSet() - 1; i >= 0; i--) - { - for (int j = 1; j <= i; j++) - { - if (candidateSet.PacketOH(j-1) > candidateSet.PacketOH(j)) - { - candidateSet.SwapEntries(j-1, j); - } - } - } - // 2. For tuples with same OH, keep the one w/ the lowest bitrate - for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) - { - if (candidateSet.Tmmbr(i) > 0) - { - // get min bitrate for packets w/ same OH - uint32_t currentPacketOH = candidateSet.PacketOH(i); - uint32_t currentMinTMMBR = candidateSet.Tmmbr(i); - uint32_t currentMinIndexTMMBR = i; - for (uint32_t j = i+1; j < candidateSet.sizeOfSet(); j++) - { - if(candidateSet.PacketOH(j) == currentPacketOH) - { - if(candidateSet.Tmmbr(j) < currentMinTMMBR) - { - currentMinTMMBR = candidateSet.Tmmbr(j); - currentMinIndexTMMBR = j; - } - } - } - // keep lowest bitrate - for (uint32_t j = 0; j < candidateSet.sizeOfSet(); j++) - { - if(candidateSet.PacketOH(j) == currentPacketOH - && j != currentMinIndexTMMBR) - { - candidateSet.ClearEntry(j); - } - } - } - } - // 3. Select and remove tuple w/ lowest tmmbr. - // (If more than 1, choose the one w/ highest OH). - uint32_t minTMMBR = 0; - uint32_t minIndexTMMBR = 0; - for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) - { - if (candidateSet.Tmmbr(i) > 0) - { - minTMMBR = candidateSet.Tmmbr(i); - minIndexTMMBR = i; - break; - } - } - - for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) - { - if (candidateSet.Tmmbr(i) > 0 && candidateSet.Tmmbr(i) <= minTMMBR) - { - // get min bitrate - minTMMBR = candidateSet.Tmmbr(i); - minIndexTMMBR = i; - } - } - // first member of selected list - _boundingSet.SetEntry(numBoundingSet, - candidateSet.Tmmbr(minIndexTMMBR), - candidateSet.PacketOH(minIndexTMMBR), - candidateSet.Ssrc(minIndexTMMBR)); - - // set intersection value - _ptrIntersectionBoundingSet[numBoundingSet] = 0; - // calculate its maximum packet rate (where its line crosses x-axis) - _ptrMaxPRBoundingSet[numBoundingSet] - = _boundingSet.Tmmbr(numBoundingSet) * 1000 - / float(8 * _boundingSet.PacketOH(numBoundingSet)); - numBoundingSet++; - // remove from candidate list - candidateSet.ClearEntry(minIndexTMMBR); - numCandidates--; - - // 4. Discard from candidate list all tuple w/ lower OH - // (next tuple must be steeper) - for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) - { - if(candidateSet.Tmmbr(i) > 0 - && candidateSet.PacketOH(i) < _boundingSet.PacketOH(0)) - { - candidateSet.ClearEntry(i); - numCandidates--; - } - } - - if (numCandidates == 0) - { - // Should be true already:_boundingSet.lengthOfSet = numBoundingSet; - assert(_boundingSet.lengthOfSet() == numBoundingSet); - return numBoundingSet; - } - - bool getNewCandidate = true; - int curCandidateTMMBR = 0; - int curCandidateIndex = 0; - int curCandidatePacketOH = 0; - int curCandidateSSRC = 0; - do - { - if (getNewCandidate) - { - // 5. Remove first remaining tuple from candidate list - for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) - { - if (candidateSet.Tmmbr(i) > 0) - { - curCandidateTMMBR = candidateSet.Tmmbr(i); - curCandidatePacketOH = candidateSet.PacketOH(i); - curCandidateSSRC = candidateSet.Ssrc(i); - curCandidateIndex = i; - candidateSet.ClearEntry(curCandidateIndex); - break; - } - } - } - - // 6. Calculate packet rate and intersection of the current - // line with line of last tuple in selected list - float packetRate - = float(curCandidateTMMBR - - _boundingSet.Tmmbr(numBoundingSet-1))*1000 - / (8*(curCandidatePacketOH - - _boundingSet.PacketOH(numBoundingSet-1))); - - // 7. If the packet rate is equal or lower than intersection of - // last tuple in selected list, - // remove last tuple in selected list & go back to step 6 - if(packetRate <= _ptrIntersectionBoundingSet[numBoundingSet-1]) - { - // remove last tuple and goto step 6 - numBoundingSet--; - _boundingSet.ClearEntry(numBoundingSet); - _ptrIntersectionBoundingSet[numBoundingSet] = 0; - _ptrMaxPRBoundingSet[numBoundingSet] = 0; - getNewCandidate = false; - } else - { - // 8. If packet rate is lower than maximum packet rate of - // last tuple in selected list, add current tuple to selected - // list - if (packetRate < _ptrMaxPRBoundingSet[numBoundingSet-1]) - { - _boundingSet.SetEntry(numBoundingSet, - curCandidateTMMBR, - curCandidatePacketOH, - curCandidateSSRC); - _ptrIntersectionBoundingSet[numBoundingSet] = packetRate; - _ptrMaxPRBoundingSet[numBoundingSet] - = _boundingSet.Tmmbr(numBoundingSet)*1000 - / float(8*_boundingSet.PacketOH(numBoundingSet)); - numBoundingSet++; - } - numCandidates--; - getNewCandidate = true; - } - - // 9. Go back to step 5 if any tuple remains in candidate list - } while (numCandidates > 0); + return (numBoundingSet == 1) ? 1 : -1; } + + // 1. Sort by increasing packetOH + for (int i = candidateSet.sizeOfSet() - 1; i >= 0; i--) + { + for (int j = 1; j <= i; j++) + { + if (candidateSet.PacketOH(j-1) > candidateSet.PacketOH(j)) + { + candidateSet.SwapEntries(j-1, j); + } + } + } + // 2. For tuples with same OH, keep the one w/ the lowest bitrate + for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) + { + if (candidateSet.Tmmbr(i) > 0) + { + // get min bitrate for packets w/ same OH + uint32_t currentPacketOH = candidateSet.PacketOH(i); + uint32_t currentMinTMMBR = candidateSet.Tmmbr(i); + uint32_t currentMinIndexTMMBR = i; + for (uint32_t j = i+1; j < candidateSet.sizeOfSet(); j++) + { + if(candidateSet.PacketOH(j) == currentPacketOH) + { + if(candidateSet.Tmmbr(j) < currentMinTMMBR) + { + currentMinTMMBR = candidateSet.Tmmbr(j); + currentMinIndexTMMBR = j; + } + } + } + // keep lowest bitrate + for (uint32_t j = 0; j < candidateSet.sizeOfSet(); j++) + { + if(candidateSet.PacketOH(j) == currentPacketOH + && j != currentMinIndexTMMBR) + { + candidateSet.ClearEntry(j); + } + } + } + } + // 3. Select and remove tuple w/ lowest tmmbr. + // (If more than 1, choose the one w/ highest OH). + uint32_t minTMMBR = 0; + uint32_t minIndexTMMBR = 0; + for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) + { + if (candidateSet.Tmmbr(i) > 0) + { + minTMMBR = candidateSet.Tmmbr(i); + minIndexTMMBR = i; + break; + } + } + + for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) + { + if (candidateSet.Tmmbr(i) > 0 && candidateSet.Tmmbr(i) <= minTMMBR) + { + // get min bitrate + minTMMBR = candidateSet.Tmmbr(i); + minIndexTMMBR = i; + } + } + // first member of selected list + _boundingSet.SetEntry(numBoundingSet, + candidateSet.Tmmbr(minIndexTMMBR), + candidateSet.PacketOH(minIndexTMMBR), + candidateSet.Ssrc(minIndexTMMBR)); + + // set intersection value + _ptrIntersectionBoundingSet[numBoundingSet] = 0; + // calculate its maximum packet rate (where its line crosses x-axis) + _ptrMaxPRBoundingSet[numBoundingSet] + = _boundingSet.Tmmbr(numBoundingSet) * 1000 + / float(8 * _boundingSet.PacketOH(numBoundingSet)); + numBoundingSet++; + // remove from candidate list + candidateSet.ClearEntry(minIndexTMMBR); + numCandidates--; + + // 4. Discard from candidate list all tuple w/ lower OH + // (next tuple must be steeper) + for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) + { + if(candidateSet.Tmmbr(i) > 0 + && candidateSet.PacketOH(i) < _boundingSet.PacketOH(0)) + { + candidateSet.ClearEntry(i); + numCandidates--; + } + } + + if (numCandidates == 0) + { + // Should be true already:_boundingSet.lengthOfSet = numBoundingSet; + assert(_boundingSet.lengthOfSet() == numBoundingSet); + return numBoundingSet; + } + + bool getNewCandidate = true; + int curCandidateTMMBR = 0; + int curCandidateIndex = 0; + int curCandidatePacketOH = 0; + int curCandidateSSRC = 0; + do + { + if (getNewCandidate) + { + // 5. Remove first remaining tuple from candidate list + for (uint32_t i = 0; i < candidateSet.sizeOfSet(); i++) + { + if (candidateSet.Tmmbr(i) > 0) + { + curCandidateTMMBR = candidateSet.Tmmbr(i); + curCandidatePacketOH = candidateSet.PacketOH(i); + curCandidateSSRC = candidateSet.Ssrc(i); + curCandidateIndex = i; + candidateSet.ClearEntry(curCandidateIndex); + break; + } + } + } + + // 6. Calculate packet rate and intersection of the current + // line with line of last tuple in selected list + float packetRate + = float(curCandidateTMMBR + - _boundingSet.Tmmbr(numBoundingSet-1))*1000 + / (8*(curCandidatePacketOH + - _boundingSet.PacketOH(numBoundingSet-1))); + + // 7. If the packet rate is equal or lower than intersection of + // last tuple in selected list, + // remove last tuple in selected list & go back to step 6 + if(packetRate <= _ptrIntersectionBoundingSet[numBoundingSet-1]) + { + // remove last tuple and goto step 6 + numBoundingSet--; + _boundingSet.ClearEntry(numBoundingSet); + _ptrIntersectionBoundingSet[numBoundingSet] = 0; + _ptrMaxPRBoundingSet[numBoundingSet] = 0; + getNewCandidate = false; + } else + { + // 8. If packet rate is lower than maximum packet rate of + // last tuple in selected list, add current tuple to selected + // list + if (packetRate < _ptrMaxPRBoundingSet[numBoundingSet-1]) + { + _boundingSet.SetEntry(numBoundingSet, + curCandidateTMMBR, + curCandidatePacketOH, + curCandidateSSRC); + _ptrIntersectionBoundingSet[numBoundingSet] = packetRate; + _ptrMaxPRBoundingSet[numBoundingSet] + = _boundingSet.Tmmbr(numBoundingSet)*1000 + / float(8*_boundingSet.PacketOH(numBoundingSet)); + numBoundingSet++; + } + numCandidates--; + getNewCandidate = true; + } + + // 9. Go back to step 5 if any tuple remains in candidate list + } while (numCandidates > 0); + return numBoundingSet; } diff --git a/webrtc/system_wrappers/source/thread_win.cc b/webrtc/system_wrappers/source/thread_win.cc index c68ee1ad7..bcb95e7ba 100644 --- a/webrtc/system_wrappers/source/thread_win.cc +++ b/webrtc/system_wrappers/source/thread_win.cc @@ -159,7 +159,7 @@ void ThreadWindows::Run() { if (set_thread_name_) { WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, id_, "Thread with name:%s started ", name_); - SetThreadName(-1, name_); // -1, set thread name for the calling thread. + SetThreadName(static_cast(-1), name_); // -1 == caller thread. } else { WEBRTC_TRACE(kTraceStateInfo, kTraceUtility, id_, "Thread without name started"); diff --git a/webrtc/video_engine/vie_codec_impl.cc b/webrtc/video_engine/vie_codec_impl.cc index 050958e22..81736d64e 100644 --- a/webrtc/video_engine/vie_codec_impl.cc +++ b/webrtc/video_engine/vie_codec_impl.cc @@ -421,7 +421,7 @@ unsigned int ViECodecImpl::GetDiscardedPackets(const int video_channel) const { ViEChannel* vie_channel = cs.Channel(video_channel); if (!vie_channel) { shared_data_->SetLastError(kViECodecInvalidChannelId); - return -1; + return static_cast(-1); } return vie_channel->DiscardedPackets(); } diff --git a/webrtc/video_engine/vie_defines.h b/webrtc/video_engine/vie_defines.h index eb499fa8f..7bfed465c 100644 --- a/webrtc/video_engine/vie_defines.h +++ b/webrtc/video_engine/vie_defines.h @@ -120,14 +120,6 @@ inline int ChannelId(const int moduleId) { #if defined(_WIN32) #define RENDER_MODULE_TYPE kRenderWindows - // Warning pragmas. - // new behavior: elements of array 'XXX' will be default initialized. - #pragma warning(disable: 4351) - // 'this' : used in base member initializer list. - #pragma warning(disable: 4355) - // Frame pointer register 'ebp' modified by inline assembly code. - #pragma warning(disable: 4731) - // Include libraries. #pragma comment(lib, "winmm.lib") diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc index 72dd51a19..2d4ba5714 100644 --- a/webrtc/voice_engine/channel.cc +++ b/webrtc/voice_engine/channel.cc @@ -3765,7 +3765,7 @@ Channel::PrepareEncodeAndSend(int mixingFrequency) { WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId,_channelId), "Channel::PrepareEncodeAndSend() invalid audio frame"); - return -1; + return 0xFFFFFFFF; } if (channel_state_.Get().input_file_playing) @@ -3819,7 +3819,7 @@ Channel::EncodeAndSend() { WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId,_channelId), "Channel::EncodeAndSend() invalid audio frame"); - return -1; + return 0xFFFFFFFF; } _audioFrame.id_ = _channelId; @@ -3832,7 +3832,7 @@ Channel::EncodeAndSend() { WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_instanceId,_channelId), "Channel::EncodeAndSend() ACM encoding failed"); - return -1; + return 0xFFFFFFFF; } _timeStamp += _audioFrame.samples_per_channel_; @@ -4182,7 +4182,7 @@ Channel::MixOrReplaceAudioWithFile(int mixingFrequency) // Currently file stream is always mono. // TODO(xians): Change the code when FilePlayer supports real stereo. _audioFrame.UpdateFrame(_channelId, - -1, + 0xFFFFFFFF, fileBuffer.get(), fileSamples, mixingFrequency, diff --git a/webrtc/voice_engine/transmit_mixer.cc b/webrtc/voice_engine/transmit_mixer.cc index 76b507f9d..2f1c9dc6c 100644 --- a/webrtc/voice_engine/transmit_mixer.cc +++ b/webrtc/voice_engine/transmit_mixer.cc @@ -1236,7 +1236,7 @@ int32_t TransmitMixer::MixOrReplaceAudioWithFile( // Currently file stream is always mono. // TODO(xians): Change the code when FilePlayer supports real stereo. _audioFrame.UpdateFrame(-1, - -1, + 0xFFFFFFFF, fileBuffer.get(), fileSamples, mixingFrequency,