Commit Graph

139 Commits

Author SHA1 Message Date
4591fbd09f Use size_t more consistently for packet/payload lengths.
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.

This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.

BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
6ff3ac1db8 Fix problems if first packet into NetEq is rejected
This CL fixes the problem described in issue 4021. In summary, of the
very first packet coming in to NetEq gets rejected because the RTP
payload type is unknown, subsequent GetAudio calls would trigger asserts
(in debug builds). The problem was that the first_packet_ variable was
reset and new_codec_ was set, even though the packet was discarded
further down the line. Now, these variables are modified after the
packet has been verified.

BUG=4021
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7724 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 14:14:49 +00:00
ed91068bf1 Create a NetEq test for when the first incoming payload type is unknown
This test is currently disabled. It triggers an issue where the NetEq
will trigger asserts on subsequent GetAudio calls if the first inserted
packet is rejected, for instance since the payload type is unknown to
NetEq.

BUG=4021
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7723 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 11:01:02 +00:00
40af3a56e4 Revert "Add DCHECK to ensure that NetEq's packet buffer is not empty"
This reverts r7719. It failed to compile in Chromium.

TBR=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7720 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-19 13:46:52 +00:00
6f6ef72950 Add DCHECK to ensure that NetEq's packet buffer is not empty
This DCHECK ensures that one packet was inserted after the buffer was
flushed.

R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7719 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-19 13:02:24 +00:00
966a708b93 Use RtpFileSource in NetEqDecodingTest
This CL removes the dependency on the old NETEQTEST_RTPpacket class
from the NetEqDecodingTest code, and also removes the dependency
from the modules_unittests target to neteq_test_tools.

BUG=2692
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7709 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-17 09:08:38 +00:00
52bb521b47 Update isolate files for Android APK tests.
This should speed up test execution on Android since only
the files needed by the test will be processed (instead
of the whole data + resources directories).

A few files for modules_unittests had to be explicitly added
for Android, since they were previously a part of the
add-whole-directories entries for the resources and data
directories.

BUG=webrtc:3741
TEST=Passing android+android_rel trybots.
R=phoglund@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7694 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-13 08:35:05 +00:00
1431e4dd1c Revert 7675 "Make an AudioEncoder subclass for iSAC"
Above CL did not compile on Android. Followings are links to Android builds

http://chromegw.corp.google.com/i/internal.client.webrtc/builders/Android%20Builder%20%28dbg%29/builds/2648

http://chromegw.corp.google.com/i/internal.client.webrtc/builders/Android%20Clang%20%28dbg%29/builds/2369

http://chromegw.corp.google.com/i/internal.client.webrtc/builders/Android%20ARM64%20%28dbg%29/builds/1320

> Make an AudioEncoder subclass for iSAC
> 
> BUG=3926
> R=henrik.lundin@webrtc.org, kjellander@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/25019004

TBR=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7676 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-11 01:44:13 +00:00
05feff013e Make an AudioEncoder subclass for iSAC
BUG=3926
R=henrik.lundin@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7675 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-10 23:53:08 +00:00
8b2058e733 Remove the state_ member from AudioDecoder
The subclasses that need a state pointer should declare them---with
the right type, not void*, to get rid of all those casts.

Two small but not quite trivial cleanups are included because they
blocked the state_ removal:

  - AudioDecoderG722Stereo now inherits directly from AudioDecoder
    instead of being a subclass of AudioDecoderG722.

  - AudioDecoder now has a CngDecoderInstance member function, which
    is implemented only by AudioDecoderCng. This replaces the previous
    practice of calling AudioDecoder::state() and casting the result
    to a CNG_dec_inst*. It still isn't pretty, but now the blemish is
    plainly visible in the AudioDecoder class declaration.

R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7644 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-06 07:54:31 +00:00
368215dacb Revert 7623 "Remove the state_ member from AudioDecoder"
Breaks Chrome compile:
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(131) : error C3867: 'webrtc::NetEqImpl::InsertPacketInternal': function call missing argument list; use '&webrtc::NetEqImpl::InsertPacketInternal' to create a pointer to member
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(131) : error C3861: 'LOG_FERR1': identifier not found
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(152) : error C3867: 'webrtc::NetEqImpl::InsertPacketInternal': function call missing argument list; use '&webrtc::NetEqImpl::InsertPacketInternal' to create a pointer to member
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(152) : error C3861: 'LOG_FERR1': identifier not found
e:\b\build\slave\win_builder\build\src\third_party\webrtc\modules\audio_coding\neteq\neteq_impl.cc(169) : error C3867: 'webrtc::NetEqImpl::GetAudioInternal': function call missing argument list; use '&webrtc::NetEqImpl::GetAudioInternal' to create a pointer to member
...

> Remove the state_ member from AudioDecoder
> 
> The subclasses that need a state pointer should declare them---with
> the right type, not void*, to get rid of all those casts.
> 
> Two small but not quite trivial cleanups are included because they
> blocked the state_ removal:
> 
>   - AudioDecoderG722Stereo now inherits directly from AudioDecoder
>     instead of being a subclass of AudioDecoderG722.
> 
>   - AudioDecoder now has a CngDecoderInstance member function, which
>     is implemented only by AudioDecoderCng. This replaces the previous
>     practice of calling AudioDecoder::state() and casting the result
>     to a CNG_dec_inst*. It still isn't pretty, but now the blemish is
>     plainly visible in the AudioDecoder class declaration.
> 
> R=henrik.lundin@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/24169005

TBR=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7629 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-05 00:45:58 +00:00
8a232f65dd Revert 7625 "Don't use DCHECK when you need the side effects..."
Reverting since 7623 might depend on this one

> Don't use DCHECK when you need the side effects...
> 
> R=pbos@webrtc.org
> TBR=henrik.lundin@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/32369004

TBR=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7628 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-05 00:43:59 +00:00
b8425bc4f3 Don't use DCHECK when you need the side effects...
R=pbos@webrtc.org
TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7625 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 22:10:18 +00:00
9e525585fd Remove the state_ member from AudioDecoder
The subclasses that need a state pointer should declare them---with
the right type, not void*, to get rid of all those casts.

Two small but not quite trivial cleanups are included because they
blocked the state_ removal:

  - AudioDecoderG722Stereo now inherits directly from AudioDecoder
    instead of being a subclass of AudioDecoderG722.

  - AudioDecoder now has a CngDecoderInstance member function, which
    is implemented only by AudioDecoderCng. This replaces the previous
    practice of calling AudioDecoder::state() and casting the result
    to a CNG_dec_inst*. It still isn't pretty, but now the blemish is
    plainly visible in the AudioDecoder class declaration.

R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7623 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 21:18:47 +00:00
52b42cb069 Fix problem with late packets in NetEq
Since r7255, it could happen that an old packet would block the decoding
process until enough packet was received for the buffer to flush. This
CL fixes that by:
- Partially reverting r7255;
- Remove recent old packets before taking a decision for GetAudio;
- Remove all old packets after a packet has been extracted for decoding;
- Adding tests for reordered packets.

BUG=chrome:423985
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7612 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 14:03:58 +00:00
6de75ca3ed Remove the useless dummy state parameter to WebRtcPcm16b_DecodeW16
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7610 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 13:29:24 +00:00
c78cf97ecb Remove the useless dummy state parameter to WebRtcG711_*
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7609 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 13:23:36 +00:00
721ef633d0 Remove the codec_type_ member from AudioDecoder
It isn't actually required, as evidenced by the comparative ease with
which it can be removed.

R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7606 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 11:51:46 +00:00
b0f4b3da05 Improving error message from neteq_rtpplay
If a packet with unknown RTP payload type is inserted, this CL
will make sure that the error message is a little more detailed
and gives a better understadning of what to do.

BUG=2692
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7603 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-04 08:53:10 +00:00
f9471807a2 Add Opus support to neteq_rtpplay
BUG=2416
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7595 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-03 15:19:58 +00:00
78c222bfae Update all .isolate files for the new format.
R=kjellander@webrtc.org
BUG=

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

Patch from Marc-Antoine Ruel <maruel@chromium.org>.

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7583 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-31 18:08:09 +00:00
decd9306ae AudioEncoder: num_10ms_frames_per_packet -> Num10MsFramesInNextPacket
Rename this accessor function to reflect its new, slightly changed
meaning. The reason for the change is that some codecs (iSAC) vary the
number of 10 ms frames from packet to packet, and so can't return a
truly constant value.

BUG=3926
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7556 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-29 08:38:50 +00:00
663fdd02fd Make an AudioEncoder subclass for Opus
BUG=3926
R=henrik.lundin@webrtc.org, kjellander@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7552 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-29 07:28:36 +00:00
ff8a98e352 Use neteq_unittest_tools in audio_decoder_unittests
With the recent move of RtpFileReader to the rtp_test_utils target
(in r7536), it is now possible to let audio_decoder_unittests depend
on neteq_unittest_tools without breaking the Android build.

BUG=2692
TBR=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7542 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-28 09:47:13 +00:00
a37f1dd6b8 Cleaning up audio_decoder_test.cc and adding ResampleInputAudioFile
This CL contains some cleaning up and refactoring of
audio_decoder_test.cc. A new class ResampleInputAudioFile is created
and used in the tests.

BUG=3926
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7528 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-27 12:58:18 +00:00
580d367b14 Add macros and APIs for webrtc histograms.
BUG=crbug/419657

Code that links system_wrappers.gyp:system_wrappers should either:
- provide implementations for the APIs, or
- link with default implementations in system_wrappers.gyp:system_wrappers_default.

R=andresp@webrtc.org, kjellander@webrtc.org, mflodman@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7508 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-23 12:57:56 +00:00
def1e97ed2 Implement AudioEncoderPcmU/A classes and convert AudioDecoder tests
BUG=3926
R=kjellander@webrtc.org, kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7481 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-21 12:48:29 +00:00
a5ce7bbe17 audio_coding/neteq: Replaced macro WEBRTC_SPL_RSHIFT_W32 with >>
BUG=3348,3353
TESTED=locally on linux and trybots
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7473 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-20 08:24:54 +00:00
81a78930ee New ACM test to trigger audio glitch when switching output sample rate
This CL implements a new unit test. The test is designed to trigger
a problem in ACM where switching the desired output frequency creates
a short discontinuity in the output audio. The problem itself is not
solved in this CL, but the failing test is disabled for now.

BUG=3919
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7443 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-14 10:49:58 +00:00
396a5e0001 WebRtcIsac_Decode et al.: Type encoded data as uint8[], not uint16[]
This patch changes WebRtcIsac_Decode, WebRtcIsac_DecodeRcu, and
WebRtcIsacfix_Decode so that they read the encoded data from a uint8
array instead of a uint16 array.

BUG=909
R=aluebs@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7431 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 11:23:24 +00:00
3f7f899a15 WebRtcIsac_UpdateBwEstimate et al.: Type byte streams as uint8, not uint16
This patch changes the signature of WebRtcIsac_UpdateBwEstimate,
WebRtcIsacfix_UpdateBwEstimate, and WebRtcIsacfix_UpdateBwEstimate1 so
that they expect the encoded data to be uint8 arrays, not uint16,
which is more natural. The implementations of the functions are left
unchanged for now.

BUG=909
R=aluebs@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7430 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 11:07:06 +00:00
1172988c79 Some WebRtcIsac_* and WebRtcIsacfix_* functions: type encoded stream as uint8[]
The affected functions are

  WebRtcIsacfix_ReadFrameLen
  WebRtcIsacfix_GetNewBitStream
  WebRtcIsacfix_ReadBwIndex

and

  WebRtcIsac_ReadFrameLen
  WebRtcIsac_GetNewBitStream
  WebRtcIsac_ReadBwIndex
  WebRtcIsac_GetRedPayload

BUG=909
R=aluebs@webrtc.org, henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7429 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-13 10:53:42 +00:00
c803907d87 Removing useless packets when inserting them (NetEq)
This is to save the buffer.

Some old code may become unnecessary, and will be removed in a separate CL.

BUG=
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7406 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-09 10:49:54 +00:00
5e3d7c78de Change name of a NetEq internal member variable
In the StatisticsCalculator class, the member last_report_timestamp_
was unfortunately named. It's now been changed to
timestamps_since_last_report_, which describes it more accurately.

R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7393 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-08 12:10:53 +00:00
9103953b58 Fix neteq_rtpplay so that empty SSRC is valid
In r7380, the command line flag --ssrc was added to neteq_rtpplay.
However, it was not possible to omit that flag, since the validation
did not accept an empty string. This CL fixes that.

TBR=kwiberg@webrtc.org
BUG=2692

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7382 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 07:18:36 +00:00
7cbc4f969a Set NetEq playout mode through the Config struct
This change opens up the possibility to set the playout mode when
creating the NetEq object. The old methods SetPlayoutMode and
PlayoutMode are still available, but are deprecated.

BUG=3520
R=turaj@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7381 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 06:37:39 +00:00
8b65d511a0 Add an SSRC filter to neteq_rtpplay
This allows the user to set the desired SSRC if the input file
contains multiple streams.

BUG=2692
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7380 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-07 05:30:04 +00:00
4b133da5fd Let RtpFileSource use RtpFileReader
RtpFileSource used to implement it's own RTP dump file reader, but
with this change it simply uses RtpFileReader. One benefit is that
pcap files are now also supported.

All NetEq test tools that use RtpFileSource are updated.

BUG=2692
R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7367 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-02 08:19:38 +00:00
7ee24a7906 WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
We have to fix both at once, since there's a macro that calls one of
them or the other.

BUG=909
R=andrew@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, minyue@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=7266

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7285 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-24 10:31:02 +00:00
38344ed280 Move thread_annotations.h to webrtc/base/.
R=andresp@webrtc.org, mflodman@webrtc.org
BUG=

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7283 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-24 06:05:00 +00:00
a3c4d4dd2c Revert 7266 "WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type en..."
This was causing apparently legitimate failures on the following bots:
http://chromegw/i/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/2599
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28KK%20Nexus5%29%28dbg%29/builds/2023
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28JB%20Nexus7.2%29%28dbg%29/builds/1825
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28KK%20Nexus5%29/builds/2013
http://chromegw/i/client.webrtc/builders/Android%20Tests%20%28JB%20Nexus7.2%29/builds/1795

> WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
> 
> We have to fix both at once, since there's a macro that calls one of
> them or the other.
> 
> BUG=909
> R=andrew@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, minyue@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/19229004

TBR=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7267 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 01:32:57 +00:00
8c5740b485 WebRtcIsac_Encode and WebRtcIsacfix_Encode: Type encoded stream as uint8_t
We have to fix both at once, since there's a macro that calls one of
them or the other.

BUG=909
R=andrew@webrtc.org, bjornv@webrtc.org, henrik.lundin@webrtc.org, minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7266 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 23:04:14 +00:00
612171527e Ensure that NetEq recovers after a large timestamp jump
Before this change it could happen that a large jump in timestamp (a
jump not correlated to wall-clock change) caused the audio to go silent
without recovering. The reason was that all incoming packets after the
jump were considered too old compared to the last decoded packet, and
were deleted. With CL changes two things:

1. If the only available packet in the buffer is an old packet, NetEq
will do Expand instead of immediate reset. This is to avoid that one
late packet triggers a reset.

2. Old packets are discarded only when the decision to decode a packet
has been taken. This is to allow the buffer to grow and eventually
flush if no decodable packet has been found for some time.

This CL also includes a new unit test for this situation.

BUG=3785
R=minyue@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7255 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 08:30:07 +00:00
5ca6008236 Creating a test helper class TimestampJumpRtpGenerator
This class provides a way to test with an RTP sequence that make an
arbitrary jump in the timestamp series.

R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7236 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-19 07:14:31 +00:00
5422e724d3 Modifying NetEqExternalDecoderTest
This change is in preparation for extending the test with another
fixture that inherits from NetEqExternalDecoderTest.

R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7213 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-17 15:09:08 +00:00
76ba7caae8 Re-enable neteq_performance_unittest.cc for android.
BUG=3770
R=kjellander@webrtc.org
TBR=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7181 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-15 12:29:50 +00:00
47658f1269 Mark all virtual overrides in the hierarchy of AudioPacketizationCallback,
RTPStream, and NetEq as such.  Also mark all other virtual overrides in the same
files.

This will make further changes to these classes safer by ensuring that the
compile breaks if the base class changes and not all overrides are fixed.

This also deletes ACMTest.cc, which existed solely to define ~ACMTest(), which
was marked pure virtual in the header.  (Pure virtual destructors still need a
definition.)  Because there is another pure virtual method in this class, the
class is already abstract, so there's no benefit to making the desturctor pure.
Making it non-pure allows removing the separate source file.

BUG=none
TEST=none
R=henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7144 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-10 22:14:59 +00:00
f6ab6f86e7 Rename Audio[Multi]Vector.CopyFrom to .CopyTo
The name of the copy method was confusing. This change makes the
code easier to read where the method is used.

R=kwiberg@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7059 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 10:58:43 +00:00
3c0aae17f0 Change gflags and gmock includes to be full paths.
This will fix PRESUBMIT warnings developers will get due to
r7014 and r7020.

Also some minor style cleanup in:
webrtc/modules/audio_coding/main/test/RTPFile.cc
webrtc/modules/audio_coding/neteq/test/RTPjitter.cc

BUG=
R=henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7058 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 09:55:40 +00:00
7825b1abf9 Add support for multi-channel DTMF tone generation
This CL opens up support for DTMF tones to be played to multi-channel
outputs. The same tones are replicated across all channels. Unit tests
are updated.

Also adding a new method AudioMultiVector::CopyChannel.

BUG=crbug/407114
R=tina.legrand@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7056 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 07:39:21 +00:00