Commit Graph

3672 Commits

Author SHA1 Message Date
9b66d3ba60 MockAudioEncoder: Use a dedicated marker method for test expectations
This makes the sequence of expected calls easier to read. Also, we can
save one line and get rid of a gmock warning by expecting the
MockAudioEncoder object to be destroyed at the end of the test instead
of making a final marker call.

Review URL: https://codereview.webrtc.org/1331793003

Cr-Commit-Position: refs/heads/master@{#9916}
2015-09-10 12:09:49 +00:00
9a78d22822 Revert of Consolidate constructormagic macros with Chromium version and remove Chromium override. (patchset #4 id:60001 of https://codereview.webrtc.org/1316363005/ )
Reason for revert:
Had to revert since FYI bots stopped compiling.  Example failure:

[94/9470] CXX obj\third_party\webrtc\modules\video_processing\main\source\video_processing_sse2.content_analysis_sse2.obj
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\video_coding\codecs\h264\webrtc_h264.h264.obj.rsp /c ..\..\third_party\webrtc\modules\video_coding\codecs\h264\h264.cc /Foobj\third_party\webrtc\modules\video_coding\codecs\h264\webrtc_h264.h264.obj /Fdobj\third_party\webrtc\modules\webrtc_h264.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\base\rtc_base_approved.bitbuffer.obj.rsp /c ..\..\third_party\webrtc\base\bitbuffer.cc /Foobj\third_party\webrtc\base\rtc_base_approved.bitbuffer.obj /Fdobj\third_party\webrtc\base\rtc_base_approved.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\audio_processing\logging\audio_processing.aec_logging_file_handling.obj.rsp /c ..\..\third_party\webrtc\modules\audio_processing\logging\aec_logging_file_handling.cc /Foobj\third_party\webrtc\modules\audio_processing\logging\audio_processing.aec_logging_file_handling.obj /Fdobj\third_party\webrtc\modules\audio_processing.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\webrtc\modules\audio_processing\beamformer\audio_processing.nonlinear_beamformer.obj.rsp /c ..\..\third_party\webrtc\modules\audio_processing\beamformer\nonlinear_beamformer.cc /Foobj\third_party\webrtc\modules\audio_processing\beamformer\audio_processing.nonlinear_beamformer.obj /Fdobj\third_party\webrtc\modules\audio_processing.cc.pdb
e:\b\build\slave\win\build\src\base\macros.h(28) : error C2220: warning treated as error - no 'object' file generated
e:\b\build\slave\win\build\src\base\macros.h(28) : warning C4005: 'DISALLOW_COPY_AND_ASSIGN' : macro redefinition
        e:\b\build\slave\win\build\src\third_party\webrtc\base\constructormagic.h(27) : see previous definition of 'DISALLOW_COPY_AND_ASSIGN'

Original issue's description:
> Consolidate constructormagic macros with Chromium version and remove Chromium override.
>
> Part of work removing dependency on Chromium's base.
>
> Only adds "= delete". From https://codereview.chromium.org/1151443003 :
> "This will guarantee the error to be at compile time, and not rely on the call visibility (private)."
>
> In consequence of that change, fixed an illegal copy and removed a bunch of unused variables.
>
> BUG=chromium:468375 (in particular comment #37)
> NOTRY=true
>
> Committed: https://crrev.com/0de8ff488d92e0bc6b7b65662898ff5e955cda93
> Cr-Commit-Position: refs/heads/master@{#9913}

TBR=andrew@webrtc.org,henrikg@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:468375 (in particular comment #37)

Review URL: https://codereview.webrtc.org/1330283002

Cr-Commit-Position: refs/heads/master@{#9914}
2015-09-10 08:42:03 +00:00
0de8ff488d Consolidate constructormagic macros with Chromium version and remove Chromium override.
Part of work removing dependency on Chromium's base.

Only adds "= delete". From https://codereview.chromium.org/1151443003 :
"This will guarantee the error to be at compile time, and not rely on the call visibility (private)."

In consequence of that change, fixed an illegal copy and removed a bunch of unused variables.

BUG=chromium:468375 (in particular comment #37)
NOTRY=true

Review URL: https://codereview.webrtc.org/1316363005

Cr-Commit-Position: refs/heads/master@{#9913}
2015-09-10 06:43:49 +00:00
11e498545b GN: Fix iOS build.
This makes it possible to run GN for the iOS build, which is being
worked on for Chromium.

For the command below to work https://codereview.chromium.org/1314413006/
needs to be rolled into WebRTC.

TESTED=gn gen out/Default --args="build_with_chromium=false target_os=\"ios\""
BUG=chromium:459705
R=dpranke@chromium.org

Review URL: https://codereview.webrtc.org/1309663007 .

Cr-Commit-Position: refs/heads/master@{#9912}
2015-09-09 20:22:40 +00:00
942a699f14 AudioEncoderOpusTest.PacketLossRateOptimized: Fix bug and make prettier
Fix bug 4981, which caused the second half (decreasing loss rates) to
not test anything. In the process, the test is changed slightly to
make it less dependent on the exact rounding behavior of doubles (by
not testing exactly at the the points where the effective loss rate
goes through a step---just very very close). A bunch of symbolic
constants are also replaced with easy-to-read literal numbers.

BUG=4981

Review URL: https://codereview.webrtc.org/1316673010

Cr-Commit-Position: refs/heads/master@{#9908}
2015-09-09 13:43:04 +00:00
77d22fa014 Merge two files with AudioEncoderOpus tests
Merge the contents of audio_encoder_mutable_opus_test.cc into
audio_encoder_opus_unittest.cc, since they're now both testing
AudioEncoderOpus.

(While preparing this CL, I noted a bug in the PacketLossRateOptimized
test. This CL leaves that test essentially unchanged; I've posted bug
4981 about the problem.)

Review URL: https://codereview.webrtc.org/1319713004

Cr-Commit-Position: refs/heads/master@{#9906}
2015-09-09 11:38:37 +00:00
c99ebc1490 Remove AudioEncoder methods SetMaxBitrate and SetMaxPayloadSize
And the corresponding ACM methods SetISACMaxRate and
SetISACMaxPayloadSize. They were only used in tests.

Review URL: https://codereview.webrtc.org/1311533010

Cr-Commit-Position: refs/heads/master@{#9903}
2015-09-09 07:54:10 +00:00
b04965ccf8 Hooked up RtcEventLog. It lives in Voice Engine and pointers are propagated to ACM and Call.
An option was added to voe_cmd_test to make a RtcEventLog dump.

BUG=webrtc:4741

Review URL: https://codereview.webrtc.org/1267683002

Cr-Commit-Position: refs/heads/master@{#9901}
2015-09-09 07:09:49 +00:00
3f5f1c2ad3 Change return type of AudioEncoder::SetMaxPlaybackRate to void
There's no point in returning a status code, since the max playback rate
is only a suggestion that the encoder is free to disregard.

Review URL: https://codereview.webrtc.org/1332573003

Cr-Commit-Position: refs/heads/master@{#9900}
2015-09-09 06:15:41 +00:00
e9e7896293 Turn webrtc::Vad into a pure virtual interface
Review URL: https://codereview.webrtc.org/1317243005

Cr-Commit-Position: refs/heads/master@{#9899}
2015-09-09 06:04:57 +00:00
233bd87d45 Add RemoteEstimatorProxy for capturing receive times
For use when send-side bandwidth estimation is enabled.

Receive times need to be captured, buffered and then sent using
TransportFeedback RTCP messaged back to the send side.

BUG=webrtc:4173

Review URL: https://codereview.webrtc.org/1290813008

Cr-Commit-Position: refs/heads/master@{#9898}
2015-09-08 20:25:20 +00:00
12cfc9b4da Fold AudioEncoderMutable into AudioEncoder
It makes more sense to combine the two interfaces, since there wasn't
a clear line separating them. The result is a combined interface with
just over a dozen methods, half of which need to be implemented by
every subclass, while the other half have sensible (and trivial)
default implementations and are implemented only by the few subclasses
that need non-default behavior.

Review URL: https://codereview.webrtc.org/1322973004

Cr-Commit-Position: refs/heads/master@{#9894}
2015-09-08 12:57:59 +00:00
c3aa12d5f2 Add utility class for unwrapping 16 bit sequence numbers
Unwrap uint16_t to int64_t, based on delta and last sequence number.
This can make application logic, putting packets in maps etc, much
simpler.

BUG=

Review URL: https://codereview.webrtc.org/1209623002

Cr-Commit-Position: refs/heads/master@{#9887}
2015-09-08 10:43:22 +00:00
caa5f4b3d2 Update to the neteq_rtpplay utility to support RtcEventLog input files.
This CL adds support for simulating neteq using stored RTP packets as well as calls to GetAudio from an RtcEventLog, using the stored timestamps.
The type of the input file is detected automatically.
BUG=webrtc:4741

Review URL: https://codereview.webrtc.org/1316903002

Cr-Commit-Position: refs/heads/master@{#9886}
2015-09-08 10:28:53 +00:00
7f6a6fc0b2 Enabling spatial layers in VP9Impl. Filter layers in the loopback test.
Handling the case when encoder drops only the higher layer.
Added options to screenshare loopback test to discard high temporal or spatial layers (to view the lower layers).

Review URL: https://codereview.webrtc.org/1287643002

Cr-Commit-Position: refs/heads/master@{#9883}
2015-09-08 09:40:36 +00:00
81db11aa50 copy-red: Fill an rtc::Buffer with bytes the easy way
The easy way also happens to be more efficient if we have to
reallocate, but that's a minor concern here.

Review URL: https://codereview.webrtc.org/1327053002

Cr-Commit-Position: refs/heads/master@{#9876}
2015-09-08 03:14:40 +00:00
86d907cffd Refactor the AudioDevice for iOS and improve the performance and stability
This CL contains major modifications of the audio output parts for WebRTC on iOS:
- general code cleanup
- improves thread handling (added thread checks, remove critical section, atomic ops etc.)
- reduces loopback latency of iPhone 6 from ~90ms to ~60ms ;-)
- improves selection of audio parameters on iOS
- reduces complexity by removing complex and redundant delay estimates
- now instead uses fixed delay estimates if for some reason the SW EAC must be used
- adds AudioFineBuffer to compensate for differences in native output buffer size and
  the 10ms size used by WebRTC. Same class as is used today on Android and we have unit tests for
  this class (the old code was buggy and we have several issue reports of crashes related to it)

Similar improvements will be done for the recording sid as well in a separate CL.
I will also add support for 48kHz in an upcoming CL since that will improve Opus performance.

BUG=webrtc:4796,webrtc:4817,webrtc:4954, webrtc:4212
TEST=AppRTC demo and iOS modules_unittests using --gtest_filter=AudioDevice*
R=pbos@webrtc.org, tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1254883002 .

Cr-Commit-Position: refs/heads/master@{#9875}
2015-09-07 14:10:10 +00:00
110443c1ec Fix for frame resolution in encoded frame callback.
Scaled resolution for down scaled frames by the quality scaler is not used.

BUG=webrtc:4966
R=pbos@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1317463005 .

Cr-Commit-Position: refs/heads/master@{#9873}
2015-09-07 13:04:00 +00:00
d5ae6ae6b5 Fix ScreenCapturerWinGdi to handle DesktopFrameWin::Create() errors.
DesktopFrameWin::Create() may return nullptr when it fails to allocate
windows bitmap. ScreenCapturerWinGdi wasn't handling that case properly.

BUG=527660

Review URL: https://codereview.webrtc.org/1309143007

Cr-Commit-Position: refs/heads/master@{#9865}
2015-09-05 01:38:15 +00:00
242d6384c4 VP9 codec controls for screensharing
Telling the encoder to adjust the parameters for the screen content.
Also, telling the encoder to skip the encoding of very flat/low content blocks. For now only for screensharing. (number 8 in VP8E_SET_STATIC_THRESHOLD is correct)

Review URL: https://codereview.webrtc.org/1308753006

Cr-Commit-Position: refs/heads/master@{#9860}
2015-09-04 13:13:29 +00:00
318673cf5a Update SendTimeHistory to store complete PacketInfo, not just send time
This will be used for the send side bitrate estimation. Storing various
meta-data about packets that can be retreived when arrival time feeback
arrives.

BUG=webrtc:4173

Review URL: https://codereview.webrtc.org/1288033008

Cr-Commit-Position: refs/heads/master@{#9859}
2015-09-04 11:43:23 +00:00
c8a1cccd0a Fixed base time in TransportFeedback message writing.
Value was incorrectly truncated to 16 bits when serializing the message.
Fixed, with added regression tests.

BUG=

Review URL: https://codereview.webrtc.org/1294393002

Cr-Commit-Position: refs/heads/master@{#9858}
2015-09-04 11:38:17 +00:00
b6b0b9268e Rate limit the low bandwidth / min bitrate warning to once every 10 seconds.
R=terelius@webrtc.org

Review URL: https://codereview.webrtc.org/1320763003

Cr-Commit-Position: refs/heads/master@{#9855}
2015-09-04 10:05:02 +00:00
be9b7b6881 Make sure ByteReader and ByteWriter classes (and their specializations) don't perform operations that have implementation-specific or undefined behavior.
Pitfalls:

* Left shift of signed integer has undefined behavior
* Right-shift of signed integer has platform-specific behavior is value is negative
* Cast from unsigned to signed has undefined behavior if value is negative

BUG=webrtc:4824

Review URL: https://codereview.webrtc.org/1226993003

Cr-Commit-Position: refs/heads/master@{#9854}
2015-09-04 08:07:01 +00:00
9743d076ac Reland "Adding unittests to AudioConferenceMixer."
Previous code review, see
https://codereview.chromium.org/1257583011/

Did not pass Mac bots since vector(size_t n) needs copy ctor before C++11.

BUG=

Review URL: https://codereview.webrtc.org/1303273004

Cr-Commit-Position: refs/heads/master@{#9851}
2015-09-03 20:17:20 +00:00
7fabd46a89 Don't set V bit in flexible mode
BUG=webrtc:4914

Review URL: https://codereview.webrtc.org/1291163007

Cr-Commit-Position: refs/heads/master@{#9848}
2015-09-03 11:42:37 +00:00
4df08ff374 GN: Fix compilation with NaCl toolchain
BUG=512899
TBR=kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1327853002

Cr-Commit-Position: refs/heads/master@{#9846}
2015-09-02 21:22:48 +00:00
6aae75728a On FATAL, log which unsupported encoder the caller wanted us to create
Hopefully, this will make it easier to figure out what's wrong the
next time this happens.

BUG=526478

Review URL: https://codereview.webrtc.org/1313073008

Cr-Commit-Position: refs/heads/master@{#9844}
2015-09-02 12:05:06 +00:00
098c1de578 Fixes for PNaCl build of remoting client plugin with GN.
1. Added support for PNaCl in base.
2. Separated parts of desktop_capture module that need to be
   compiled for PNaCl.

BUG=512899
R=jiayl@chromium.org, jiayl@webrtc.org

Review URL: https://codereview.webrtc.org/1323453003 .

Cr-Commit-Position: refs/heads/master@{#9836}
2015-09-01 18:36:50 +00:00
05f71fcb61 NetEq: Fixing a corner case with depleted sync buffer
In some cases, the number of samples (per channel) in NetEq's sync
buffer could fall below the allowed minimum (5 samples for narrowband,
scaling for other rates). If the number of samples extracted from the
buffer was smaller than the desired number, an error is
returned. However, if the decoder returns fewer samples than expected,
it could happen that the sync buffer level falls under the minimum,
but enough samples are extracted. This triggered an assert. With this
change, the minimum level of the sync buffer is always enforced.

A test is implemented to trigger the problem. It made the assert fire
without this fix, but it now passes.

BUG=webrtc:4840
R=minyue@webrtc.org

Review URL: https://codereview.webrtc.org/1324453002 .

Cr-Commit-Position: refs/heads/master@{#9828}
2015-09-01 09:52:06 +00:00
521875a9a4 Use RtcpPacket to send APP in RtcpSender
BUG=webrtc:2450
R=asapersson@webrtc.org

Review URL: https://codereview.webrtc.org/1311453002 .

Cr-Commit-Position: refs/heads/master@{#9827}
2015-09-01 08:11:36 +00:00
e551f12a41 Revert "Adding unittests to AudioConferenceMixer."
This reverts commit 22c2729607964aa38d6cb4e521994453b6a271c4.

TBR=henrik.lundin@webrtc.org,
BUG=

Review URL: https://codereview.webrtc.org/1326583002 .

Cr-Commit-Position: refs/heads/master@{#9826}
2015-09-01 07:54:49 +00:00
22c2729607 Adding unittests to AudioConferenceMixer.
Unit tests around AudioConferenceMixer was severely missing. This CL is to add some tests.

BUG=
R=ajm@chromium.org, andrew@webrtc.org

Review URL: https://codereview.webrtc.org/1257583011 .

Cr-Commit-Position: refs/heads/master@{#9825}
2015-09-01 07:33:37 +00:00
b7306ae6fe Revert "Avoiding size_t in MIPS."
This reverts commit 32e2f461b13c530d34f9c434e7e76da6ff3eda83.

BUG=526716
TBR=minyue@webrtc.org

Review URL: https://codereview.webrtc.org/1314873004 .

Cr-Commit-Position: refs/heads/master@{#9824}
2015-08-31 18:44:05 +00:00
32e2f461b1 Avoiding size_t in MIPS.
TBR=pkasting@chromium.org

BUG=526716

Review URL: https://codereview.webrtc.org/1310553008 .

Cr-Commit-Position: refs/heads/master@{#9823}
2015-08-31 15:40:17 +00:00
0f4b3731c3 Stylizing AudioConferenceMixer.
Cleaning AudioConferenceMixer APIs to match Chromium style guide.

Main changes:
1. change all mutable references to pointers
2. add const to all non-mutable references
3. add const to as many methods as possible

BUG=
R=andrew@webrtc.org

Review URL: https://codereview.webrtc.org/1311733003 .

Cr-Commit-Position: refs/heads/master@{#9821}
2015-08-31 14:04:44 +00:00
ca28fdcf9f Use RtcpPacket to send XR (RTRR, DLRR, VOIP) in RtcpSender
BUG=webrtc:2450
R=asapersson@webrtc.org

Review URL: https://codereview.webrtc.org/1304123003 .

Cr-Commit-Position: refs/heads/master@{#9820}
2015-08-31 12:01:08 +00:00
c92c23d99a Roll chromium_revision f8d6ba9..a28d8d5 (337800:346100)
Relevant changes:
* src/buildtools: ecc8e25..565d04e
* src/testing/gmock: 2976396..0421b6f
* src/testing/gtest: 23574bf..9855a87
* src/third_party/android_tools: 21f4bcb..4238a28
* src/third_party/boringssl/src: de24aad..12fe1b2
* src/third_party/icu: c81a1a3..6b3ce81
* src/third_party/libjpeg_turbo: f4631b6..631e2dd
* src/third_party/libsrtp: 9c53f85..502e81a
* src/third_party/libvpx: aa9b5f1..a208eca
* src/third_party/libyuv: 6dde4f1..3c4f573
* src/third_party/openmax_dl: 22bb108..2eb98d8
* src/tools/grit: 1dac9ae..15d48e3
* src/tools/gyp: 5122240..6ee91ad
* src/tools/swarming_client: b39a448..2866a22
Details: f8d6ba9..a28d8d5/DEPS

Clang version changed 245402:245965
Details: f8d6ba9..a28d8d5/tools/clang/scripts/update.sh

BUG=None
R=glaznev@webrtc.org
TBR=glaznev@chromium.org, henrika@chromium.org

Review URL: https://codereview.webrtc.org/1308693010 .

Cr-Commit-Position: refs/heads/master@{#9818}
2015-08-31 09:30:29 +00:00
3c4ef29140 NetEq: Allow negative shift in BackgroundNoise::SaveParameters
This change allows a shift factor to be negative.  This is the way it
was in the old (NetEq3) code; see
4d363ae305/webrtc/modules/audio_coding/neteq/bgn_update.c,
lines 183-188.

Some input signals can lead to negative shifts, and would then trigger
an assert. The assert is now removed.

BUG=webrtc:4840
R=minyue@webrtc.org

Review URL: https://codereview.webrtc.org/1315833003 .

Cr-Commit-Position: refs/heads/master@{#9816}
2015-08-31 08:18:45 +00:00
1380e266ff Convert some more things to size_t.
These changes stem from requests by Andrew on https://codereview.webrtc.org/1228823002/ to eliminate some "return -1"s and change to using asserts plus returning size_ts.  I then also converted the relevant connected bits.

This also cleans up a bunch of style issues, e.g. no spaces around operators.

BUG=chromium:81439
TEST=none
R=andrew@webrtc.org, henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

Review URL: https://codereview.webrtc.org/1305983003 .

Cr-Commit-Position: refs/heads/master@{#9813}
2015-08-29 00:31:15 +00:00
f42376c601 Wire up currently-received video codec to stats.
BUG=webrtc:1844, webrtc:4808
R=mflodman@webrtc.org, pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1315413002

Cr-Commit-Position: refs/heads/master@{#9810}
2015-08-28 14:35:40 +00:00
9e69abf85e Added logging using the raw variant of the new aec logging macros
Replaced the wav file dumping functionality in aec_core.c with the newly added corresponding macros

Added macros for logging of AEC internal data

BUG=

Review URL: https://codereview.webrtc.org/1272403003

Cr-Commit-Position: refs/heads/master@{#9808}
2015-08-28 11:41:30 +00:00
98f3cc54da NetEq: Removing two asserts
These asserts cover error cases that are also handled by the code
after the assert. Should not have both assert and error handling.

BUG=webrtc:4840

Review URL: https://codereview.webrtc.org/1321023002

Cr-Commit-Position: refs/heads/master@{#9804}
2015-08-28 08:12:26 +00:00
1e346b20c4 NetEq: Minor follow-up fix in StatisticsCalculator
This change follows the recommendation of a post-commit comment in
r9778:
https://codereview.webrtc.org/1296633002/diff/100001/webrtc/modules/audio_coding/neteq/statistics_calculator.cc#newcode198

TBR=pkasting@chromium.org

Review URL: https://codereview.webrtc.org/1319953002

Cr-Commit-Position: refs/heads/master@{#9803}
2015-08-27 20:41:10 +00:00
116c84e1b0 NetEq: Fixing a bug that caused rtc::checked_cast to trigger
This is a bug that was introduced in
https://codereview.webrtc.org/1230503003, where the variable "int
temp_bufsize" was changed to a size_t. If the packet buffer was
flushed while inserting a packet, temp_bufsize became negative, which
was tested later in an if-statement. Now, with size_t instead, it
would just become very large, and the if-statement would never see a
negative value. The effect was that the packet size in samples could
be updated with a very large positive number, causing an overflow
which triggered rtc::checked_cast in
StatisticsCalculator::GetNetworkStatistics, line 220.

Also adding a test to reproduce the crash. Without the fix, the test
results in the above mentioned checked_cast to trigger. With the fix,
everything works fine.

BUG=chromium:525260

Review URL: https://codereview.webrtc.org/1307893004

Cr-Commit-Position: refs/heads/master@{#9802}
2015-08-27 20:14:54 +00:00
9c3efd0052 Reland: Implement NetEq's CurrentDelay function
This was not implemented before. It returns the current total delay
(packet buffer and sync buffer) of NetEq. This is the same information
that was already available in
NetEqNetworkStatistics::current_buffer_size_ms, that can be obtained
through NetEq::NetworkStatistics(). But, since the current delay is a
key metric of NetEq, it is convenient to have it available in a
simpler way.

This is a re-landing of r9359,
https://webrtc-codereview.appspot.com/51149004, which was reverted in
r9360. The refactoring made in r9669 facilitated the relanding.

TBR=minyue@webrtc.org

Review URL: https://codereview.webrtc.org/1313873003

Cr-Commit-Position: refs/heads/master@{#9801}
2015-08-27 20:12:27 +00:00
a567bf3292 Rename local variable to avoid shadowing
See comment here: https://codereview.webrtc.org/1208993010/diff/180001/webrtc/modules/audio_coding/codecs/isac/audio_encoder_isac_t_impl.h#newcode189

TBR=minyue@webrtc.org

Review URL: https://codereview.webrtc.org/1315333003

Cr-Commit-Position: refs/heads/master@{#9800}
2015-08-27 18:17:40 +00:00
4376648df0 AudioDecoder: Replace Init() with Reset()
The Init() method was previously used to initialize and reset
decoders, and returned an error code. The new Reset() method is used
for reset only; the constructor is now responsible for fully
initializing the AudioDecoder.

Reset() doesn't return an error code; it turned out that none of the
functions it ended up calling could actually fail, so this CL removes
their error return codes as well.

R=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1319683002 .

Cr-Commit-Position: refs/heads/master@{#9798}
2015-08-27 13:22:21 +00:00
d83df50e95 Use RtcpPacket to send TMMBN in RtcpSender
BUG=webrtc:2450

Review URL: https://codereview.webrtc.org/1302403002

Cr-Commit-Position: refs/heads/master@{#9793}
2015-08-27 08:05:12 +00:00
2f20fbec1d Fix MIPS compile.
BUG=chromium:524885
TEST=none
TBR=turaj

Review URL: https://codereview.webrtc.org/1316843003 .

Cr-Commit-Position: refs/heads/master@{#9790}
2015-08-26 21:38:55 +00:00