Two filter functions were called wrongly, which made us read from uninitialized values.
Added short comment.
No style changes. The tests will be revisited and extended during an upcoming refactor.
signal_processing_unittests now pass Valgrind.
TEST=signal_processing_unittests
Review URL: https://webrtc-codereview.appspot.com/344015
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1466 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
You might overrun the 32 byte fixed-size string "receiveCodec.plname" by copying "payloadName" without checking the length.
Note: This defect has an elevated risk because the source argument is a parameter of the current function.
Review URL: http://webrtc-codereview.appspot.com/352009
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1428 4adac7df-926f-26a2-2b94-8c16560cd09d
When targeting 32-bit Linux, we need to pass -msse2 to gcc to compile
SSE2 intrinsics. However, -msse2 also gives gcc license to automatically
generate SSE2 instructions wherever it pleases. This will crash our code
on processors without SSE2 support.
This change breaks the files with SSE2 intrinsics into separate targets,
such that we can limit the scope of -msse2 to where it's needed.
We no longer need to employ the WEBRTC_USE_SSE2 define; the build system
decides when SSE2 is supported and compiles the appropriate files.
TBR=bjornv@webrtc.org
TEST=audioproc (performance testing), audioproc_unittest, video_processing_unittests, build on Linux (targeting ia32/x64, with disable_sse2==0/1), Mac, Windows
Review URL: http://webrtc-codereview.appspot.com/352008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1425 4adac7df-926f-26a2-2b94-8c16560cd09d
If no frame has been decoded the jitter buffer might generate huge
erroneous NACK lists.
Adds a couple of new jitter buffer unittests (some ported from
jitter_buffer_test.cc).
Adds a test to the VCM robustness tests.
BUG=226
TEST=VCMRobustnessTest, TestJitterBufferFull, TestNackListFull, TestNackBeforeDecode, TestNormalOperation
Review URL: http://webrtc-codereview.appspot.com/352002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1412 4adac7df-926f-26a2-2b94-8c16560cd09d
Made internal function LogOfEnergy() more efficient.
Includes
- Name change "vector" -> "data"
- Complete refactor of LogOfEnergy()
- Removed lint warning
Major changes:
* Removed unnecessary variables
* Reduced number of shifts
* Removed one norm calculation
TEST=vad_unittests, audioproc_unittest
Review URL: http://webrtc-codereview.appspot.com/347004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1407 4adac7df-926f-26a2-2b94-8c16560cd09d
In addition to our naming guidelines, this will cause these files to get parsed by Sonar, and to make searching/grepping the source using file extensions easier in the future.
BUG=
TEST=Compiling on Linux.
Review URL: http://webrtc-codereview.appspot.com/348005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1405 4adac7df-926f-26a2-2b94-8c16560cd09d