For estimating a delay over a long segment (e.g. a file) this can
throw off the estimate. Better not to add values to the AEC's histogram
until they're reliable.
BUG=
TEST=audiproc, audioproc_unittest
Review URL: http://webrtc-codereview.appspot.com/292004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1035 4adac7df-926f-26a2-2b94-8c16560cd09d
The special cases for packet sizes <= 10 ms (one case for each
sample rate) resulted in reading outside of the pw16_decoded
vector. This is now fixed by making sure that WebRtcSpl_DownsampleFast
gets correct input and output vector lengths.
Review URL: http://webrtc-codereview.appspot.com/295008
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1027 4adac7df-926f-26a2-2b94-8c16560cd09d
Only vie_shared_data.* are refactored, all *_impl.cc are only changed due to changed names of members in ViESharedData. These files will be refactored later, so the indentation in these files might be corrupt at this stage.
References are not changed to pointers at this stage.
Review URL: http://webrtc-codereview.appspot.com/292006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1015 4adac7df-926f-26a2-2b94-8c16560cd09d
Updating the VP8 packetizer class (RtpFormatVp8) and VP8 parser
(in class RTPPayloadParser) to follow the -02 revision of the spec.
See http://tools.ietf.org/html/draft-ietf-payload-vp8-02.
Updating the unit tests, too. Finally, updating the tests to
follow the recommendations from the test team; specifically
including the test code in the webrtc namespace, and omitting
the main function at the end of each test file.
Review URL: http://webrtc-codereview.appspot.com/296003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1013 4adac7df-926f-26a2-2b94-8c16560cd09d
Removed error counting entirely - that's completely managed by googletest now, except for custom call, loopback and simulcast call.
Rewrote remaining tests to use GTest asserts.
Rewrote more tests to use GTest macros. The External Codec module is now in the build by default.
Merge branch 'master' into macro_improvements
Rewrote some more code to use GTest asserts.
The manual standard tests now also go through gtest.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/287002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1004 4adac7df-926f-26a2-2b94-8c16560cd09d
Fixing a bug when creating new NetEQ slave instances in ACM.
The old code called WebRtcNetEQ_GetCurrentDelay() for the
master instance to get a delay value for WebRtcNetEQ_SetExtraDelay().
This is wrong, since WebRtcNetEQ_GetCurrentDelay() reports on the
current total buffer length, while WebRtcNetEQ_SetExtraDelay() is
the extra delay that is desired to in order to sync with video.
The fix includes keeping the extra delay value in a member variable
in the ACMNetEQ class.
Review URL: http://webrtc-codereview.appspot.com/295001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1001 4adac7df-926f-26a2-2b94-8c16560cd09d
Removing WebRtcNetEQ_GetJitterStatistics(),
WebRtcNetEQ_ResetJitterStatistics(), and the associated
struct WebRtcNetEQ_JitterStatistics. The change ripples
through all the way to the VoiceEngine API.
Review URL: http://webrtc-codereview.appspot.com/285002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@998 4adac7df-926f-26a2-2b94-8c16560cd09d
Improved the way we handle different data types (float vs fixed) and reduced the complexity by nearly 50%.
We now have a generic struct for both float and fixed delay estimators and a core struct for the binary spectrum based delay estimator. All wrapper codes (for both fixed and float) are gathered in delay_estimator_wrappers.*.
Moved out the far end history buffer to AEC(M).
Added a union to handle difference types when create.
Review URL: http://webrtc-codereview.appspot.com/277004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@973 4adac7df-926f-26a2-2b94-8c16560cd09d
(1) For generic platforms, code was changed to remove the shifting within loops.
Basically, it's just change a loop from
for() {
sum += (a*b) >> scale;
}
to:
for() {
sum += (a*b);
}
sum >> scale;
Type int64_t is used for sum to make sure no information is not lost.
Performance is about the same as before the change. Bits are not exact,
although in theory the change should have preserved more information. The purpose
of this change is to make the generic code and ARM code bit exact, simpify the code,
while keep the speech quality at least not lower. (Some speech tests might be good.)
(2) For ARM platform, used assembly to optimize the performance. iSAC runs faster
with this change. (Reduced run time of an offline file test from 10.16ms to 8.81ms)
Review URL: http://webrtc-codereview.appspot.com/267014
git-svn-id: http://webrtc.googlecode.com/svn/trunk@972 4adac7df-926f-26a2-2b94-8c16560cd09d
1. added SetImageScaleStatus for testing purposes
2. added getting the codec information from the incoming/outgoing stream of a videochannel to print call information
3. fixed problem with toggling the one of the observers
4. did more clean up of the code style (mostly spacing)
5. renamed the GetVideo* functions properly to SetVideo* to reflect what the function does
Currently only tested on mac. Need to test on win7 & linux before final commit.
Review URL: http://webrtc-codereview.appspot.com/267017
git-svn-id: http://webrtc.googlecode.com/svn/trunk@969 4adac7df-926f-26a2-2b94-8c16560cd09d
Separated new-style tests from old-style tests. Abstracted code for reuse.
Fully separated the new automated tests from the old-style tests. We now have old-style tests running in manual mode, old-style tests running in automated mode and new-style tests that uses input files and make actual video comparisons.
Introduced a small "library" of helper functions in order to move a lot
of stuff out of the original base and codec tests, which have been made
dependent on the new "library" (which is a header file and a source
file). The new-style tests also depends on this "library".
The comparison test flags are now required only when the comparison tests actually runs.
Separated comparison tests into its own test since it seems we will be running classic vie_auto_test using a fake video driver on Linux.
Made tbInterfaces follow Google conventions.
Merge branch 'render_to_file' into vivi_driver
Resolution alignment testing is now optional behind a flag.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/269011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@962 4adac7df-926f-26a2-2b94-8c16560cd09d
Removed TODO from webrtc.gyp since it is done.
Tabs -> spaces.
Tabs -> spaces.
Tabs -> spaces.
Fixed compilation on Windows.
Added missing file.
Merge branch 'master' into fix_mac_modules
Fixed compilation errors for the modules.gyp on Mac. This included some pretty large refactorings.
Please enter the commit message for your changes. Lines starting
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/269005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@957 4adac7df-926f-26a2-2b94-8c16560cd09d
- Compute RMS over a packet's worth of audio to be sent in Channel, rather than the captured audio in TransmitMixer.
- We now use the entire packet rather than the last 10 ms frame.
- Restore functionality to LevelEstimator.
- Fix a bug in the splitting filter.
- Fix a number of bugs in process_test related to a poorly named
AudioFrame member.
- Update the unittest protobuf and float reference output.
- Add audioproc unittests.
- Reenable voe_extended_tests, and add a real function test.
- Use correct minimum level of 127.
TEST=audioproc_unittest, audioproc, voe_extended_test, voe_auto_test
Review URL: http://webrtc-codereview.appspot.com/279003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@950 4adac7df-926f-26a2-2b94-8c16560cd09d
When a Mac goes to sleep, the OS pauses the IO threads. If a
subsequent StopSend/Playout happens, we time out waiting for the IO
threads, but didn't ensure they were shut down.
BUG=
TEST=voe_cmd_test, voe_auto_test
Review URL: http://webrtc-codereview.appspot.com/269013
git-svn-id: http://webrtc.googlecode.com/svn/trunk@949 4adac7df-926f-26a2-2b94-8c16560cd09d
Rewrote the codec test to render to file and do video comparisons.
Refactored the coded tests somewhat. I still need to figure out how to do comparison in the automated case.
Added video analysis to the test. This will make sure that the system output roughly the right thing.
Moved the video metrics library into the test_support library. Made the metrics library available in the automated tests.
Made sure no one passes in too large YUV videos into the autotest.
The standard test's output now gets captured for both the left and right windows.
Wrote a rendering device which just writes the raw frames to file, for analysis. Updated the base standard test to dump its left window output to file. We don't do anything with it yet though.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/249001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@931 4adac7df-926f-26a2-2b94-8c16560cd09d
A single participant is not processed at all. With multiple
participants, we divide-by-2 as before when mixing. Afterwards,
the mixed signal is limited by the AGC to -7 dBFS and then doubled to
restore the original level.
This preserves the level while guaranteeing good saturation protection.
Add a test to voe_auto_test. Hijack and improve the existing mixing test
for this.
TEST=voe_auto_test, voe_cmd_test
Review URL: http://webrtc-codereview.appspot.com/241013
git-svn-id: http://webrtc.googlecode.com/svn/trunk@920 4adac7df-926f-26a2-2b94-8c16560cd09d
Details:
The mixer looks at all the participants desired frequency and concludes the highest desired mixing frequency. This is the frequency that the mixer will mix at. Participants that are always mixed are in a separate list and the function concluding the highest desired mixing frequency did not look at that list and therefore always conclude that the lowest mixing frequency is sufficient.
Review URL: http://webrtc-codereview.appspot.com/277003
git-svn-id: http://webrtc.googlecode.com/svn/trunk@915 4adac7df-926f-26a2-2b94-8c16560cd09d
Changing how the max payload length is calculated. Instead
of handling RTP and FEC header overhead explicitly, call the
MaxDataPayloadLength method which already does it. Avoid redundant code. Had to move MaxDataPayloadLength to the
RTPSenderInterface.
Review URL: http://webrtc-codereview.appspot.com/269002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@901 4adac7df-926f-26a2-2b94-8c16560cd09d
I also fixed compilation on Mac (by enabling exceptions for the NetEqTestTools target). Executing the test fails on Mac, but I assume this is because it checks bit exactness, similar to the issue we had with audio_coding_module (see issue 114)
Review URL: http://webrtc-codereview.appspot.com/255004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@895 4adac7df-926f-26a2-2b94-8c16560cd09d
According to project structure discussed with Andrew. We want to flatten out the hierarchy and minimize the number of GYP files.
No changes at all are being made in the source files; they are just moved.
The only modified files are the GYP file and Android.mk
Kevin: I updated relative paths in Android.mk so please verify it is correct, since I don't know how to build that.
Review URL: http://webrtc-codereview.appspot.com/256006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@894 4adac7df-926f-26a2-2b94-8c16560cd09d
Patch Set 1: Removing blanks at end of lines.
Patch Set 2: Removing tabs.
Patch Set 3: Fixing include-guards.
Patch Set 4-7: Formatting files in the list.
Patch Set 8: Formatting CNG.
Patch Set 9:
* Fixing comments from code review
* Fixing formating in acm_dtmf_playout.cc
* Started fixing formating of acm_g7221.cc. More work needed, so don't spend too much time reviewing.
* Refactored constructor of ACMGenericCodec. Rest of file still to be fixed.
* Fixing break; after return ...; in several files.
Patch Set 10:
* Chaning from reintepret_cast to static_cast in three files, acm_amr.cc, acm_cng.cc and acm_g722.cc
NOTE! Not all files have the right format. That work will continue in separate CLs.
Review URL: http://webrtc-codereview.appspot.com/175002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@881 4adac7df-926f-26a2-2b94-8c16560cd09d
Changing the assignment operator in VCMJitterBuffer to a named
function (CopyFrom) instead, since it is not a straight
assignment. Also fixing two bugs in the jitter copy function.
Bug fix in VCMEncodedFrame: The copy constructor did not
copy _length.
In VCM codec database, make sure that the callback object is
preserved when copying back from secondary to primary decoder.
In VP8 wrapper, adding code to copy the _decodedImage to the
Copy() method.
Bugfix in video_coding_test rtp_player:
The retransmissions where made in reverse order. Now new items are
appended to the end of the LostPackets list, which makes the order
correct when retransmitting.
Handling the case when cloning an unused decoder state:
When the decoder has not successfully decoded a frame yet,
it cannot be cloned. A NULL pointer will be returned all
the way out to VideoCodingModuleImpl::Decode(). When this
happens, the VCM will call Reset() for the dual receiver,
in order to reset the state to kPassive.
Review URL: http://webrtc-codereview.appspot.com/239010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@873 4adac7df-926f-26a2-2b94-8c16560cd09d
call. strncopy will not explicity copy or add a "\0" therefore
strcat did not know where to append the "\n" which was causing
an out of bounds crash.
Because we are checking the length, strcpy should be good enough
as it also copies the "\0". Please note that that I am pre-emptively
adding 2 instead of 1 to the length to take into account of the \n
that will be added later.
Review URL: http://webrtc-codereview.appspot.com/253004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@857 4adac7df-926f-26a2-2b94-8c16560cd09d