NetEq4: Changing the behavior of playout_timestamp_ update

The variable playout_timestamp_ was not updated to the latest decoded
timestamp while comfort noise was played. Instead, it was upadted using
dead reckoning, which caused it to drift away from the timestamps of the
incoming CNG packets. Now it is updated also during comfort noise
playout.

Since the change is only in NetEq4, this change also makes the test
PlaysOutAudioAndVideoInSync use both ACM1/NetEq3 and ACM2/NetEq4.

Re-enabling one NetEq unit test that is no longer failing thanks to this CL.

BUG=2932
R=stefan@webrtc.org, turaj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8799004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5649 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
henrik.lundin@webrtc.org
2014-03-06 10:28:07 +00:00
parent 60ad5fdadf
commit ed865b5d46
3 changed files with 51 additions and 16 deletions

View File

@@ -788,15 +788,14 @@ void NetEqDecodingTest::LongCngWithClockDrift(double drift_factor) {
EXPECT_GE(delay_after, delay_before - 20 * 16);
}
TEST_F(NetEqDecodingTest, DISABLED_ON_ANDROID(LongCngWithClockNegativeDrift)) {
TEST_F(NetEqDecodingTest, DISABLED_ON_ANDROID(LongCngWithNegativeClockDrift)) {
// Apply a clock drift of -25 ms / s (sender faster than receiver).
const double kDriftFactor = 1000.0 / (1000.0 + 25.0);
LongCngWithClockDrift(kDriftFactor);
}
// TODO(hlundin): Re-enable this test and fix the issues to make it pass.
TEST_F(NetEqDecodingTest,
DISABLED_ON_ANDROID(DISABLED_LongCngWithClockPositiveDrift)) {
TEST_F(NetEqDecodingTest, DISABLED_ON_ANDROID(LongCngWithPositiveClockDrift)) {
// Apply a clock drift of +25 ms / s (sender slower than receiver).
const double kDriftFactor = 1000.0 / (1000.0 - 25.0);
LongCngWithClockDrift(kDriftFactor);