Commit Graph

4101 Commits

Author SHA1 Message Date
4f43fcfd49 Renamed new EncodeInternal to EncodeImpl to ensure proper backwards compatibility.
Renamed the new variant of EncodeInternal to EncodeImpl, so that
subclasses implementing one of the EncodeInternal don't need to
explicitly contain 'using AudioEncoder::EncodeInternal' to avoid their
implementation hiding the other variant of EncodeInternal. This causes
a warning (treated as an error) when building using GCC.

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

Cr-Commit-Position: refs/heads/master@{#11868}
2016-03-04 08:54:38 +00:00
88950cfbf9 Moved the file aec_resampler.c to be built using C++.
The steps involved were:
1) Change file name to .cc from .c.
2) Update the build files accordingly.
3) Remove the extern header file inclusion.
4) Change the casts in aec_resampler.cc to static_cast
   and reinterpret_cast.

The changes are bitexact.

The CL will be followed with another CL where a proper (webrtc) namespace is introduced. The reason for not having it in this CL is that this was missed in the corresponding
CL that did the above for aec_core.c, ..., and if the
namespaces in all the aec_core -related files can be changed
at the same time that will simplify things.

BUG=webrtc:5201

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

Cr-Commit-Position: refs/heads/master@{#11867}
2016-03-04 08:12:43 +00:00
0023fdffd0 Remove the ID from AcmReceiver
This is an artifact from the past, and is no longer used.

R=ivoc@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11866}
2016-03-04 07:05:45 +00:00
0197363d18 A bitexactness test for the highpass filter in the
audio processing module.

The test also adds a new helper class called
VectorBasedAudioFrame that is intended to be
reused for the bitexactness tests for the other
submodules.

BUG=webrtc:1091

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

Cr-Commit-Position: refs/heads/master@{#11864}
2016-03-03 19:21:55 +00:00
fc4ff2d92c Fixed Aec handle index in EchoCancellationImpl
that was not updated as it should.

The bug caused no negative impact at all apart
from a missed check that the Aec handles above
index 0 were not null. That check is, however,
done elsewhere so there was no negative impact
of this bug.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11863}
2016-03-03 19:20:32 +00:00
ab12c47160 Modifies SDK and iOS detection for helper method that needs iOS 9+
BUG=NONE
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11861}
2016-03-03 16:00:00 +00:00
a2abdf2fbe Remove usage of fmaf in IntelligibilityEnhancer
This produces bit-exact output and doesn't have the performance sensitivity to vectorisation, giving a complexity decrease of the IntelligibilityEnhancer of about 30x in my local machine.
This performance issue was put in evidence by this CL: https://codereview.webrtc.org/1693823004/

BUG=590998

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

Cr-Commit-Position: refs/heads/master@{#11851}
2016-03-03 02:36:55 +00:00
4aee2a928f Add android specific audio mute function.
R=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11849}
2016-03-02 21:02:11 +00:00
0e73934694 Remove webrtc/test/webrtc_test_common.gyp
Move the "webrtc_test_common" target to test.gyp and rename
it to "test_common".

Move all tests in "webrtc_test_common_unittests" (which
wasn't run on the bots) into "test_support_unittests".

NOTRY=True
NOPRESUBMIT=True

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

Cr-Commit-Position: refs/heads/master@{#11848}
2016-03-02 18:46:25 +00:00
7b19b08c18 Reland "Calculating ERLE in AEC more properly."
The original CL (https://codereview.webrtc.org/1644133002/) had an error in the unittest and did not get landed. This CL is to reland it,

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11844}
2016-03-02 14:56:56 +00:00
7ecc163d42 Report all packets to bitrate probing.
Allows probing with audio packets to finish, preventing a busy loop for
high-bitrate audio-only calls.

BUG=chromium:589931, webrtc:5506
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11840}
2016-03-02 13:22:33 +00:00
b65f3e39d7 [cleanup] Remove unused fields/functions from rtcp module.
Removed fields are initialized but unused.
Removed functions are not called, sometimes are not defined.

BUG=webrtc:5565
R=asapersson@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11839}
2016-03-02 12:26:19 +00:00
e065fcf9a9 Replace scoped_ptr with unique_ptr in webrtc/modules/video_*/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11836}
2016-03-02 09:01:16 +00:00
b0fdfea9e8 Add stats (histograms) for vp8 screenshare layers
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11830}
2016-03-01 13:51:20 +00:00
92931b15d8 Replace scoped_ptr with unique_ptr in webrtc/modules/remote_bitrate_estimator/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11829}
2016-03-01 13:32:39 +00:00
dc29780722 Re-enable DCHECKs for increasing timestamps in paced_sender
This reverts https://codereview.webrtc.org/1618333002

BUG=webrtc:5452

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

Cr-Commit-Position: refs/heads/master@{#11824}
2016-03-01 08:47:03 +00:00
10a029e952 Changed AudioEncoder::Encode to take an rtc::Buffer* instead of uint8_t* and a maximum size.
For backwards compatibility, I've added kept the old interface to
Encode() and EncodeInternal and created default implementations of both
variants of EncodeInternal(), each calling the other. At least one of
the variants must be implemented in a subclass or we'll run out of stack
and explode. Would be nice if we could catch that before runtime. :/

The new interface to EncodeInternal() is protected, since it should
never be called from the outside.

Was unable to mark the old EncodeInternal() as RTC_DEPRECATED, since the
default implementaion of the new variant needs to call it to work around
old implementations. The old Encode() variant is deprecated, at least.

Added a test for backwards compatibility in audio_encoder_unittest.cc.
For the added test I broke out MockEncodeHelper from
audio_encoder_copy_red_unittest.cc and renamed it MockAudioEncoderHelper.

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

Cr-Commit-Position: refs/heads/master@{#11823}
2016-03-01 08:41:39 +00:00
c9bbbe454f Revert "Calculating ERLE in AEC more properly."
This reverts commit 944744b25c76810e576516d2f676b1d9105e302f.

NOTRY=True
TBR=peah@webrtc.org,kjellander@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11817}
2016-02-29 14:20:54 +00:00
3f55dea259 Replace scoped_ptr with unique_ptr in webrtc/modules/video_coding/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11814}
2016-02-29 13:52:06 +00:00
a4f31bd03a TMMBRSet become vector<rtcp::TmmbItem>
this is a slice of https://codereview.webrtc.org/1474693002/
All TMMBRSet functions intentionally left unchanged. Goal to make them obsolete, not to clear.

BUG=webrtc:5565

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

Cr-Commit-Position: refs/heads/master@{#11813}
2016-02-29 13:26:05 +00:00
739fcb989d Cleanup of webrtc::VideoFrame.
Delete EqualsFrame method, used only by tests. Delete one of the
CreateFrame methods. Drop return value for CreateEmptyFrame, CreateFrame
and CopyFrame.

BUG=webrtc:5426

Committed: https://crrev.com/208019637bfed975f8f13b16d40b90e200763cd6
Cr-Commit-Position: refs/heads/master@{#11783}

R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11811}
2016-02-29 12:11:57 +00:00
944744b25c Calculating ERLE in AEC more properly.
The audio level of the AEC's output level was calculated before overlapping add, and therefore, a compensation was needed. The compensation is multiplying the level by 2 since, before overlapping add, the level is roughly halved due to windowing.

This had to be that way because the level was calculated in frequency domain and the signal after overlapping add has only its time domain representation.

The level calculation has been updated to work on time domain signal and therefore the problem is not there any longer.

This CL is to put the calculation of the AEC output level after overlapping add and remove the compensation.

BUG=
R=peah@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11810}
2016-02-29 12:09:07 +00:00
f3ed9d75dd Remove thread checker from CongestionController.
R=terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11808}
2016-02-29 09:42:21 +00:00
7e937e951c Remove workaround for Opus DTX noise pumping issue.
A workaround for Opus DTX noise pumping issue was made according upon this
https://codereview.webrtc.org/1422213003

Recently, Opus has fixed this problem internally, and hence the workaround is not needed any longer.

This CL removes this workaround.

BUG=586175
R=flim@webrtc.org, tina.legrand@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11805}
2016-02-29 09:24:25 +00:00
0a00759780 Fix the stereo support in IntelligibilityEnhancer
Review URL: https://codereview.webrtc.org/1729753003

Cr-Commit-Position: refs/heads/master@{#11795}
2016-02-27 01:17:44 +00:00
54ebfca934 Revert of Cleanup of webrtc::VideoFrame. (patchset #6 id:100001 of https://codereview.webrtc.org/1679323002/ )
Reason for revert:
Breaks downstream compilation. Please make non-breaking API changes for the reland or coordinate fixing downstream code quickly with the sheriff.

Original issue's description:
> Cleanup of webrtc::VideoFrame.
>
> Delete EqualsFrame method, used only by tests. Delete one of the
> CreateFrame methods. Drop return value for CreateEmptyFrame, CreateFrame
> and CopyFrame.
>
> BUG=webrtc:5426
>
> Committed: https://crrev.com/208019637bfed975f8f13b16d40b90e200763cd6
> Cr-Commit-Position: refs/heads/master@{#11783}

TBR=pbos@webrtc.org,perkj@webrtc.org,pthatcher@webrtc.org,mflodman@webrtc.org,marpan@webrtc.org,nisse@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11789}
2016-02-26 15:38:57 +00:00
8b79b07a55 Move RTP module activation into PayloadRouter.
Simplifies PayloadRouter to not accept dynamically-changing modules as
well as usage of PayloadRouter inside ViEChannel::SetSendCodec.

BUG=webrtc:5494
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11787}
2016-02-26 15:31:44 +00:00
9c01725e37 Simplify registration of RTP-header extensions.
Removes per-extension functions in ViEChannel/ViEReceiver and instead
register extensions directly on the RTP module by mapping extension
string to RTP-header-extension type.

BUG=webrtc:5494
R=danilchap@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11786}
2016-02-26 15:26:29 +00:00
208019637b Cleanup of webrtc::VideoFrame.
Delete EqualsFrame method, used only by tests. Delete one of the
CreateFrame methods. Drop return value for CreateEmptyFrame, CreateFrame
and CopyFrame.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11783}
2016-02-26 14:40:47 +00:00
c63f79a0a5 Fix ubsan warning in byteio_unittest
BUG=webrtc:5490

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

Cr-Commit-Position: refs/heads/master@{#11782}
2016-02-26 13:13:51 +00:00
806706875d iSAC entropy coder: Avoid signed integer overflow
By doing an unsigned instead of a signed addition, we get the exact
same machine code (in non-UBSan builds), but no longer trigger
undefined behavior since unsigned overflow is defined behavior.

BUG=webrtc:5485

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

Cr-Commit-Position: refs/heads/master@{#11776}
2016-02-26 10:52:14 +00:00
fc59c4425e Fix lowPowerModeEnabled crash on iOS8
BUG=webrtc::5564

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

Cr-Commit-Position: refs/heads/master@{#11774}
2016-02-26 08:25:49 +00:00
0e40f7cf87 Remove incorrect reinterpret_cast from const.
Code still compiles in Chromium with a proper const float* variable so
it is expected to address the issue.

BUG=chromium:589951
TBR=peah@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11772}
2016-02-25 21:37:00 +00:00
3dd5d1d84a Remove PacketRouter sender distinction.
Instead relies on SetSendingMediaStatus() to filter out receiving RTP
modules. This status is now set in VoiceEngine's SetSend() for senders
along with SetSendingStatus().

BUG=
R=solenberg@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11768}
2016-02-25 15:56:58 +00:00
a2644c06ee Disable tests failing under UBSan to enable deployment to main waterfall.
modules_unittests: https://build.chromium.org/p/client.webrtc.fyi/builders/Linux%20UBSan/builds/1138/steps/modules_unittests/logs/stdio
[ RUN      ] ByteIoTest.Test64SBitBigEndian
../../webrtc/modules/rtp_rtcp/source/byte_io_unittest.cc:34:33: runtime error: shift exponent 64 is too large for 64-bit type 'long'

rtc_unittests: https://build.chromium.org/p/client.webrtc.fyi/builders/Linux%20UBSan/builds/1138/steps/rtc_unittests/logs/stdio
[ RUN      ] IPAddressTest.TestCountIPMaskBits
../../webrtc/base/ipaddress.cc:415:20: runtime error: negation of -2147483648 cannot be represented in type 'int32_t' (aka 'int'); cast to an unsigned type to negate this value to itself

[ RUN      ] BandwidthSmootherTest.TestSampleRollover
../../webrtc/base/rollingaccumulator.h:73:22: runtime error: signed integer overflow: 2147483647 * 2147483647 cannot be represented in type 'int'

[ RUN      ] RandomNumberGeneratorTest.UniformSignedInterval
../../webrtc/base/random_unittest.cc:121:50: runtime error: signed integer overflow: 2147483647 - -2147483648 cannot be represented in type 'int'

rtc_media_unittests: https://build.chromium.org/p/client.webrtc.fyi/builders/Linux%20UBSan/builds/1138/steps/rtc_media_unittests/logs/stdio
[ RUN      ] VideoCommonTest.TestComputeScaleWithHighFps
../../webrtc/media/base/videocommon.cc:75:34: runtime error: signed integer overflow: 2621440 - -2147483648 cannot be represented in type 'int'

BUG=webrtc:5487, webrtc:5490, webrtc:5491
NOTRY=True
R=pbos@webrtc.org
TBR=henrika@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11764}
2016-02-25 13:23:29 +00:00
a26ac925f7 Reland of move ignored return code from modules. (patchset #1 id:1 of https://codereview.webrtc.org/1736663004/ )
Reason for revert:
Revert breaks other uses, a fix will be rolled into Chromium instead.

Original issue's description:
> Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
>
> Reason for revert:
> Breaks Chromium.
>
> Original issue's description:
> > Remove ignored return code from modules.
> >
> > ModuleProcessImpl doesn't act on return codes and having them around is
> > confusing (it's unclear what an error return code here would do even).
> >
> > BUG=
> > R=tommi@webrtc.org
> >
> > Committed: f14c47a58c
>
> TBR=tommi@webrtc.org,pbos@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/da33a8a2a22f6d19ba2a8cce963beafbdbaa8fd8
> Cr-Commit-Position: refs/heads/master@{#11761}

TBR=tommi@webrtc.org,torbjorng@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11762}
2016-02-25 12:50:09 +00:00
da33a8a2a2 Revert of Remove ignored return code from modules. (patchset #3 id:40001 of https://codereview.webrtc.org/1703833002/ )
Reason for revert:
Breaks Chromium.

Original issue's description:
> Remove ignored return code from modules.
>
> ModuleProcessImpl doesn't act on return codes and having them around is
> confusing (it's unclear what an error return code here would do even).
>
> BUG=
> R=tommi@webrtc.org
>
> Committed: f14c47a58c

TBR=tommi@webrtc.org,pbos@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11761}
2016-02-25 12:34:12 +00:00
91c5b5650c Remove DCHECK on duplicate packets in RemoteEstimatorProxy.
R=sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11760}
2016-02-25 11:35:24 +00:00
bf66ae6d80 Remove thread check from PacketRouter::SendFeedback.
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11759}
2016-02-25 09:49:03 +00:00
f99af6b885 Fix the gain calculation in IntelligibilityEnhancer
Review URL: https://codereview.webrtc.org/1718793002

Cr-Commit-Position: refs/heads/master@{#11755}
2016-02-25 01:25:50 +00:00
f6ff9714c0 Fix division by zero in FindTMMBRBoundingSet
BUG=webrtc:5490

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

Cr-Commit-Position: refs/heads/master@{#11749}
2016-02-24 17:23:57 +00:00
f14c47a58c Remove ignored return code from modules.
ModuleProcessImpl doesn't act on return codes and having them around is
confusing (it's unclear what an error return code here would do even).

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11747}
2016-02-24 15:51:23 +00:00
c379fcb248 Break out pacer thread from CongestionController to increase testability.
R=pbos@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11745}
2016-02-24 15:03:08 +00:00
3e60bf0ff3 Adds low complexity audio mode for single core CPUs
BUG=webrtc:5538
R=tkchin@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11743}
2016-02-24 13:27:22 +00:00
c2b785df5d Replace scoped_ptr with unique_ptr in webrtc/common_audio/
(This is a re-land---without the real_fourier.h changes---of 11716, which was reverted in 11726.)

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11742}
2016-02-24 13:22:40 +00:00
837b39e8f4 Fix ubsan warnings in BWE tests.
BUG=webrtc:5490
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11741}
2016-02-24 13:03:10 +00:00
f01633e667 Replace scoped_ptr with unique_ptr in webrtc/modules/audio_device/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11740}
2016-02-24 13:00:45 +00:00
58e08cbea8 Reset indexer upon initialization in AudioLoop.
The array is reset in Init() but not the indexer. This makes the start point undefined after Init() for re-initializing an AudioLoop. This can be fixed.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11739}
2016-02-24 11:49:23 +00:00
0665f0518f Fix OOB read in pacing test.
BUG=webrtc:5490

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

Cr-Commit-Position: refs/heads/master@{#11737}
2016-02-24 11:04:22 +00:00
12f4cda086 Histograms for H264EncoderImpl/H264DecoderImpl
initialization and errors.

The stats are counts using enumeration, an instance of
H264EncoderImpl/H264DecoderImpl will report at most 1 Init
and 1 Error for its entire lifetime. This is to avoid
spamming reports if initialization or coding fails and it
retries in a loop. The Init stats will give us an idea of
usage counts for the encoder/decoder. The Error stats will
give us an idea of how many of these usages encounters some
type of problem, such as encode or decode errors.

- WebRTC.Video.H264EncoderImpl.Event:
  * kH264EncoderEventInit: Occurs at InitEncode.
  * kH264EncoderEventError: Occurs if any type of error
    occurs during initialization or encoding.
- WebRTC.Video.H264DecoderImpl.Event:
  * kH264DecoderEventInit: Occurs at InitDecode.
  * kH264DecoderEventError: Occurs if any type of error
    occurs during initialization, AVGetBuffer2 or decoding.

Chromium sibling CL:
https://codereview.chromium.org/1719273002/

BUG=chromium:500605, chromium:468365

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

Cr-Commit-Position: refs/heads/master@{#11736}
2016-02-24 11:03:11 +00:00