NetEQ now checks for too early CNG packets, and modifies the CNG
sample counter to jump forward in time if needed to combat clock
drift.
Adding a new unittest to reproduce and solve the issue. The
unittest LongCngWithClockDrift verifies that the buffer delay
before and after a long CNG period is almost constant. The test
introduces a clock drift of 25 ms/s.
BUG=http://code.google.com/p/webrtc/issues/detail?id=88
TEST=neteq_unittests NetEqDecodingTest.LongCngWithClockDrift
Review URL: https://webrtc-codereview.appspot.com/372002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1547 4adac7df-926f-26a2-2b94-8c16560cd09d
As part of style this CL includes changing the input aggressiveness mode from int16_t to int. No other style changes made.
Impact on:
- Audio Processing: Changed return value on MapSetting().
- Function test in audio_conference_mixer already uses int. No action.
- NetEq: Function pointer changes and input parameter changes in SetVADMode() and SetVADModeInternal().
- Audio Coding: Uses enum ACMVADMode which is type independent.
- VAD: Two unit tests.
TESTS=vad_unittests, neteq_unittests, audioproc_unittest
Review URL: https://webrtc-codereview.appspot.com/373001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1544 4adac7df-926f-26a2-2b94-8c16560cd09d
Impact on NetEq function pointers. Other components already treat the output as int. These are:
* audio_processing
* funtion test in audio_conference_mixer
* audio_coding
TEST=vad_unittests, neteq_unittests
Review URL: https://webrtc-codereview.appspot.com/367003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1503 4adac7df-926f-26a2-2b94-8c16560cd09d
Make the program look for the ptypes.txt file in the default trunk
path, if the path to the executable indicates that it sits in the
trunk/out/Debug folder.
Changing PT for CNG-WB to 98
Remove warnings when building NetEQ with NETEQ_DELAY_LOGGING
Review URL: https://webrtc-codereview.appspot.com/339003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1497 4adac7df-926f-26a2-2b94-8c16560cd09d
Simple initialization of the allocated memory for the image buffer avoids reading uninitialized data in some special cases.
This fix is only intended for Linux, since the test is known to fail on Windows. But since we're currently only running Valgrind on Linux, this will give us improved control over memory issues.
BUG=
TEST=tools/valgrind-webrtc/webrtc_tests.sh -t cmdline out/Debug/video_processing_unittests
Review URL: http://webrtc-codereview.appspot.com/349012
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1493 4adac7df-926f-26a2-2b94-8c16560cd09d
10198: Out-of-bounds read in acm_isac.cc
10251: Unintended sign extension in acm_resampler.cc
10273: Uninitialized pointer field in acm_amr.cc
10274: Uninitialized pointer field in acm_amrwb.cc
10275: Uninitialized scalar field in acm_dtmf_detection.cc
10276: Uninitialized pointer field in acm_g722.cc
10277: Uninitialized pointer field in acm_g7221.cc
10278: Uninitialized pointer field in acm_g7221c.cc
10279: Uninitialized pointer field in acm_g729.cc
10280: Uninitialized pointer field in acm_g7291.cc
10281: Uninitialized pointer scalar in acm_generic_codec.cc
10282: Uninitialized pointer field in acm_gsmfr.cc
10283: Uninitialized scalar field in acm_isac.cc
10284: Uninitialized pointer field in acm_opus.cc
10285: Uninitialized scalar field in acm_resampler.cc
10286: Uninitialized pointer field in acm_speex.cc
10287: Uninitialized scalar field in audio_coding_module_impl.cc
10581: Unintended sign extension in audio_coding_module_impl.cc
Additional change: removed unused function and member from ACMResampler.
Review URL: https://webrtc-codereview.appspot.com/343016
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1471 4adac7df-926f-26a2-2b94-8c16560cd09d
Performance verified on a few 32 kHz files.
BUG=
TEST=audioproc, audioproc_unittest
Updated output_data_float.pb
Changes in SWB tests (3, 6, 9 and 12) as
Running test 3 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
Actual: 1363
Expected: test->max_output_average()
Which is: 1386
Running test 6 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
Actual: 2070
Expected: test->max_output_average()
Which is: 2109
Running test 9 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
Actual: 1314
Expected: test->max_output_average()
Which is: 1336
Running test 12 of 12...
src/modules/audio_processing/test/unit_test.cc:1182: Failure
Value of: max_output_average
Actual: 2049
Expected: test->max_output_average()
Which is: 2085
Review URL: https://webrtc-codereview.appspot.com/344013
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1465 4adac7df-926f-26a2-2b94-8c16560cd09d
For consistency and as part of style, the return value of WebRtcVad_Init() has been changed to int.
Impact:
1) audio_processing, audio_coding, a test in CNG, functionTest in audio_conference_mixer, a test in net_eq all used int values. Hence, unaffected.
2) Function pointers in net_eq changed.
3) The VADInit in neteq/dsp.c boiled down to typecast into int anyhow, which now is removed.
TEST=vad_unittests, neteq_unittests
Review URL: https://webrtc-codereview.appspot.com/355003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1453 4adac7df-926f-26a2-2b94-8c16560cd09d
This change introduces a new algorithm for aggregating small
partitions into packets. The algorithm is based on a tree-search
to find an optimal allocation of the packets, such that the
difference in size between packets is minimized.
The new method is used when partition aggregation is allowed and
balanced packets are requested. Otherwise, the old method is used.
The new method is implemented using the new classes
Vp8PartitionAggregator and PartitionTreeNode. Both classes have
dedicated unit tests.
In order to facilitate the new algorithm, the packetizer was
redesigned to calculate all packet sizes when the first packet is
extracted. The information about all packets is stored in a packet
queue structure, which is then popped for each packet extracted.
Finally, a bug in the old packetizer algorithm was fixed. The bug
caused a +/-1 error in packet sizes when balanced packets were
produced. The unit test were updated accordingly.
TEST=rtp_rtcp_unittests: PartitionTreeNode.* Vp8PartitionAggregator.* RtpFormatVp8Test.*
Review URL: https://webrtc-codereview.appspot.com/345008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1447 4adac7df-926f-26a2-2b94-8c16560cd09d