Commit Graph

4784 Commits

Author SHA1 Message Date
00bceb1eda Deprecated SetAudioPacketSize from RTPSender and removed calls to it.
The packet size was only used to control how often to output DTMF
packets. However, it likely did not work as intended, since that
interval was only set during initialization. No changes to the packet
size, like what AudioEncoder::Num10MsFramesInNextPacket could
indicate, were picked up. The value was instead taken from an entry in
ACMCodecDB.

Since it was not-fully-functional, its exact value didn't seem to
matter and it was getting in the way of making it possible to supply
an external audio encoder factory, I've decided to remove it
altogether. The DTMF code now uses an interval of 50 ms regardless,
which is a value recommended by the RFC.

BUG=webrtc:5806

Review-Url: https://codereview.webrtc.org/2545753002
Cr-Commit-Position: refs/heads/master@{#15380}
2016-12-02 10:40:12 +00:00
1454669c1d Cleanup RtpHeaderExtensionMap removing use of two legacy functions
BUG=webrtc:1994

Review-Url: https://codereview.webrtc.org/2491273002
Cr-Commit-Position: refs/heads/master@{#15366}
2016-12-01 16:39:44 +00:00
182e4a4aff Remove bitrate cap for AdaptiveVideoSource and increase other caps to 25 Mbps.
AdaptiveVideoSource is used in testing/simulations of the bandwidth estimator.

Nada's reaction to delay depends on the current bitrate and the configured max rate in a non-intuituve way. Increase the starting bitrate to compensate for the increased max bitrate. This is only used in unit tests.

BUG=webrtc:6807

# Presubmit warns about a lint error in bwe.h that's unrelated to my change. Fixing it is beyond the scope of this CL.
NOPRESUBMIT=true

Review-Url: https://codereview.webrtc.org/2542843003
Cr-Commit-Position: refs/heads/master@{#15364}
2016-12-01 15:29:15 +00:00
1a646ee522 Wire up BitrateAllocation to be sent as RTCP TargetBitrate
This is the video parts of https://codereview.webrtc.org/2531383002/
Wire up BitrateAllocation to be sent as RTCP TargetBitrate

BUG=webrtc:6301

Review-Url: https://codereview.webrtc.org/2541303003
Cr-Commit-Position: refs/heads/master@{#15359}
2016-12-01 14:34:18 +00:00
5e38c967e0 Wire up RTCP XR target bitrate in rtp/rtcp module
This is breakout of the rtcp parts of
https://codereview.webrtc.org/2531383002/

BUG=webrtc:6301

Review-Url: https://codereview.webrtc.org/2546713002
Cr-Commit-Position: refs/heads/master@{#15358}
2016-12-01 13:18:19 +00:00
86cf9a2474 Increase test timeout to combat flakiness.
These tests have been a little flaky on the bots.
Hopefully increasing the timeout by 200% will help.

BUG=webrtc:6799

Review-Url: https://codereview.webrtc.org/2541743006
Cr-Commit-Position: refs/heads/master@{#15355}
2016-12-01 10:57:07 +00:00
e90adcef42 Remove OnLocalSsrcChanged
Removing the unused interface OnLocalSsrcChanged.

BUG=webrtc:6456

Review-Url: https://codereview.webrtc.org/2546703002
Cr-Commit-Position: refs/heads/master@{#15354}
2016-12-01 10:39:49 +00:00
a15948c9c6 Change assert to RTC_DCHECK in bwe_test_logging.cc
BUG=None
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/2546483002
Cr-Commit-Position: refs/heads/master@{#15343}
2016-11-30 17:02:26 +00:00
9332b7d0ad Reland "Update rtt on audio only calls".
https://codereview.webrtc.org/2402333002

BUG=webrtc:6508

Review-Url: https://codereview.webrtc.org/2530383002
Cr-Commit-Position: refs/heads/master@{#15340}
2016-11-30 15:51:19 +00:00
13d38fbe90 Delete all of the video_processing module but the denoiser code.
It is unused since cl https://codereview.webrtc.org/2386573002.

The new denoiser implementation and its tests are kept for now. This
code is also unused, but there are some plans to take this code into
use in the not too distant future.

BUG=None

Review-Url: https://codereview.webrtc.org/2496153002
Cr-Commit-Position: refs/heads/master@{#15338}
2016-11-30 15:44:59 +00:00
cb861e074a Templatize percentile_filter.h and move it to base/analytics.
BUG=None

Review-Url: https://codereview.webrtc.org/2529063002
Cr-Commit-Position: refs/heads/master@{#15334}
2016-11-30 14:52:06 +00:00
4b9a2cb0d8 Reland "Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate."
The earlier attempt of this was in
https://codereview.webrtc.org/2411613002/

It was reverted due to failures on internal bots, showing that we cannot deprecate one method.

BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2538493006
Cr-Commit-Position: refs/heads/master@{#15333}
2016-11-30 14:50:08 +00:00
26bddb92f0 Replace test_support_main by test_main and get rid of test_support_main_threaded_mac
test_support_main_threaded_mac doesn't seem to be used. It looks like it was
last used about a year and a half ago, and was removed in
https://webrtc-codereview.appspot.com/55379004

BUG=webrtc:6424
R=kjellander@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2540693002
Cr-Commit-Position: refs/heads/master@{#15332}
2016-11-30 14:12:10 +00:00
aff96361d3 Greatly reduce number of level controller tests.
These tests have been causing a large number of false alerts, which is
tons of work for the perf sheriff. It's infeasible to test every single
permutation, so we must choose carefully. This CL reduces the number
of RESULT lines from the test from ~450 to ~50. I attempted to choose
interesting permutations, but you probably know better what's
interesting...

https://chromeperf.appspot.com/report?
sid=a7193c96f708018848ca07ad9c78ac657cadab3c70b3939c42bd7d70a092d61a
also suggests most of the metrics have enormous standard deviations,
so maybe you could look into how stable the metrics really are
and remove/stabilize the ones that aren't?

BUG=chromium:666725

Review-Url: https://codereview.webrtc.org/2529393006
Cr-Commit-Position: refs/heads/master@{#15329}
2016-11-30 13:04:47 +00:00
78b4d56535 Relanding "Pass time constant to bwe smoothing filter."
An earlier attempt to land this was in https://codereview.webrtc.org/2518923003/

It was failed because it removed an API. This CL fixes this.

BUG=webrtc:6443, webrtc:6303

Review-Url: https://codereview.webrtc.org/2536753002
Cr-Commit-Position: refs/heads/master@{#15325}
2016-11-30 12:47:47 +00:00
0245da0fa0 Move ownership of PacketRouter from CongestionController to Call.
And delete the method CongestionController::packet_router.

BUG=None

Review-Url: https://codereview.webrtc.org/2516983004
Cr-Commit-Position: refs/heads/master@{#15323}
2016-11-30 11:35:28 +00:00
06251f1955 Reduce ProbeController::kDefaultMaxProbingBitrateBps to 10 mbps.
BUG=none

Review-Url: https://codereview.webrtc.org/2535903003
Cr-Commit-Position: refs/heads/master@{#15322}
2016-11-30 10:48:46 +00:00
f4a5942e62 Disabled all ScreenCapturerIntegrationTests on Windows
TBR=zijiehe@chromium.org
BUG=webrtc:6666

Review-Url: https://codereview.webrtc.org/2538093002
Cr-Commit-Position: refs/heads/master@{#15321}
2016-11-30 10:39:00 +00:00
0c43f779f8 Update video histograms that do not have a minimum lifetime limit before being recorded.
Updated histograms:
"WebRTC.Video.ReceivedPacketsLostInPercent" (two RTCP RR previously needed)
"WebRTC.Video.ReceivedFecPacketsInPercent" (one received packet previously needed)
"WebRTC.Video.RecoveredMediaPacketsInPercentOfFec" (one received FEC packet previously needed)

Prevents logging stats if call was shortly in use.

BUG=b/32659204

Review-Url: https://codereview.webrtc.org/2536653002
Cr-Commit-Position: refs/heads/master@{#15315}
2016-11-30 09:42:32 +00:00
759e0b7241 Fix memory leak in video_coding::PacketBuffer::InsertPacket.
BUG=webrtc:6788

Review-Url: https://codereview.webrtc.org/2535203002
Cr-Commit-Position: refs/heads/master@{#15314}
2016-11-30 09:32:11 +00:00
be74270ebe Calculate JitterBufferDelayInMs in the new jitter buffer.
JitterBufferDelayInMs is used for the WebRTC-NewVideoJitterBuffer finch
experiment, and therefore needs to be calculated.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2534093003
Cr-Commit-Position: refs/heads/master@{#15313}
2016-11-30 09:31:45 +00:00
e69b46863a Revert of Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate. (patchset #5 id:240001 of https://codereview.webrtc.org/2411613002/ )
Reason for revert:
internal bot failure

Original issue's description:
> Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate.
>
> BUG=webrtc:6303
>
> Committed: https://crrev.com/84e56d576806635c966093d5421c5d04c9b90746
> Cr-Commit-Position: refs/heads/master@{#15310}

TBR=kwiberg@webrtc.org,henrik.lundin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2537243004
Cr-Commit-Position: refs/heads/master@{#15312}
2016-11-30 09:19:06 +00:00
84e56d5768 Renaming AudioEncoder::SetTargetBitrate and SetProjectedPacketLossRate.
BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2411613002
Cr-Commit-Position: refs/heads/master@{#15310}
2016-11-30 08:28:07 +00:00
e61fbfffda Use RotateDesktopFrame in DirectX capturer
To support rotation in DirectX capturer, several other changes are also
required.
1. Removing AddRect in RotateDesktopFrame, this is a performance improvement.
DxgiOutputDuplicator creates a rotated DesktopRegion, which can be directly
add to updated_region.
2. DxgiOutputDuplicator::SourceRect() is not accurate, the rectangle in source
is controlled by |offset| or |rotation_| + |offset|, instead of desktop_rect().
3. The |region| in DxgiTexture::CopyFrom() is not accurate. It needs an
unrotated DesktopRegion which offsets by |offset| instead of desktop_rect(). To
avoid generating both rotated and unrotated updated_region, this parameter has
been removed. This impacts DxgiTextureStagning performance a little bit (1.5ms).
Refer to bug for details.

BUG=webrtc:6646

Review-Url: https://codereview.webrtc.org/2530303002
Cr-Commit-Position: refs/heads/master@{#15308}
2016-11-30 00:09:57 +00:00
166e59a70f Enable ScreenCapturerIntegrationTests
This change enables ScreenCapturerIntegrationTests.

BUG=webrtc:6666

Review-Url: https://codereview.webrtc.org/2513213002
Cr-Commit-Position: refs/heads/master@{#15307}
2016-11-29 22:46:56 +00:00
c9e80eee51 Adding packet overhead to audio network adaptor.
BUG=webrtc:6303, webrtc:6762

Review-Url: https://codereview.webrtc.org/2530653003
Cr-Commit-Position: refs/heads/master@{#15305}
2016-11-29 21:00:37 +00:00
290d43aa14 Add a new UMA metric in APM to track incoming capture-side audio level
This CL adds WebRTC.Audio.ApmCaptureInputLevelAverage and
WebRTC.Audio.ApmCaptureInputLevelPeak. The metrics are updated once
every 10 seconds.

BUG=webrtc:6622

Review-Url: https://codereview.webrtc.org/2534473004
Cr-Commit-Position: refs/heads/master@{#15300}
2016-11-29 16:09:17 +00:00
ee414d90b0 Added sanity check to VCMDecodingState::UsingFlexibleMode to prevent OOB error.
BUG=chromium:667504

Review-Url: https://codereview.webrtc.org/2534883003
Cr-Commit-Position: refs/heads/master@{#15298}
2016-11-29 15:01:29 +00:00
768d6259dc Fix spelling mistake in RTP module declaration.
BUG=None
R=danilchap@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2531223004
Cr-Commit-Position: refs/heads/master@{#15296}
2016-11-29 14:19:49 +00:00
b890c95c33 Replace some asserts with DCHECKs
NOPRESUBMIT=true
BUG=webrtc:6779

Review-Url: https://codereview.webrtc.org/2535643002
Cr-Commit-Position: refs/heads/master@{#15295}
2016-11-29 13:30:47 +00:00
5049942219 Refactor RMSLevel and give it new functionality
This change rewrites RMSLevel, making it accept an ArrayView as input,
and modify the implementation somewhat. It also makes the class keep
track of the peak RMS in addition to the average RMS over the
measurement period.

New tests are added to cover the new functionality.

BUG=webrtc:6622

Review-Url: https://codereview.webrtc.org/2535523002
Cr-Commit-Position: refs/heads/master@{#15294}
2016-11-29 12:26:31 +00:00
668eb3b71c Add overhead to transport feedback observer.
BUG=webrtc:6762

Review-Url: https://codereview.webrtc.org/2525283002
Cr-Commit-Position: refs/heads/master@{#15291}
2016-11-29 10:24:23 +00:00
876222f77d Move usage of QualityScaler to ViEEncoder.
This brings QualityScaler much more in line with OveruseFrameDetector.
The two classes are conceptually similar, and should be used in the
same way. The biggest changes in this CL are:
- Quality scaling is now only done in ViEEncoder and not in each
  encoder implementation separately.
- QualityScaler now checks the average QP asynchronously, instead of
  having to be polled on each frame.
- QualityScaler is no longer responsible for actually scaling the frames,
  but has a callback to ViEEncoder that it uses to express it's desire
  for lower resolution.

BUG=webrtc:6495

Review-Url: https://codereview.webrtc.org/2398963003
Cr-Commit-Position: refs/heads/master@{#15286}
2016-11-29 09:44:22 +00:00
352444fcac RTC_[D]CHECK_op: Remove superfluous casts
There's no longer any need to make the two arguments have the same
signedness, so we can remove a bunch of superfluous (and sometimes
dangerous) casts.

It turned out I also had to fix the safe_cmp functions to properly handle
enums that are implicitly convertible to integers.

NOPRESUBMIT=true
BUG=webrtc:6645

Review-Url: https://codereview.webrtc.org/2534683002
Cr-Commit-Position: refs/heads/master@{#15281}
2016-11-28 23:59:03 +00:00
af476c737f RTC_[D]CHECK_op: Remove "u" suffix on integer constants
There's no longer any need to make the two arguments have the same
signedness, so we can drop the "u" suffix on literal integer
arguments.

NOPRESUBMIT=true
BUG=webrtc:6645

Review-Url: https://codereview.webrtc.org/2535593002
Cr-Commit-Position: refs/heads/master@{#15280}
2016-11-28 23:21:51 +00:00
80ed35e21c Implement periodic bandwidth probing in application-limited region.
Now ProbeController can send periodic bandwidth probes when in
application-limited region. This will allow to maintain correct
bottleneck bandwidth estimate, even not all bandwidth is being used.
The feature is not enabled by default, but can be enabled with a flag.
Interval between probes is currently set to 5 seconds.

BUG=webrtc:6332

Review-Url: https://codereview.webrtc.org/2504023002
Cr-Commit-Position: refs/heads/master@{#15279}
2016-11-28 21:11:24 +00:00
fd87f4af66 Opus: Move complexity variable out of conditional build flag
BUG=webrtc:6708

Review-Url: https://codereview.webrtc.org/2535933002
Cr-Commit-Position: refs/heads/master@{#15277}
2016-11-28 19:16:00 +00:00
1bc3146e08 Disable more VideoProcessorIntegrationTest tests on Linux 32-bit
The previously disabled tests on TSan and UBSan are also failing on
Linux 32-bit.

BUG=webrtc:6781
R=ehmaldonado@webrtc.org
TBR=deadbeef@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#15276}
2016-11-28 18:34:43 +00:00
266f0a44eb Now run EndToEndTest with the WebRTC-NewVideoJitterBuffer experiment.
In this CL:
 - EndToEndTests is now parameterized.
 - Added VP8 non-rotated unittest.
 - CanReceiveUlpfec/CanReceiveFlexFec now use multisets for timestamps.
 - pre_decode_image_callback_ is now called before decoding a frame
   with the new video jitter buffer.
 - Set video rotation when FrameObjects are created.
 - Calculate KeyFramesReceivedInPermille in new video jitter buffer.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2522493002
Cr-Commit-Position: refs/heads/master@{#15274}
2016-11-28 16:49:15 +00:00
6287e82b9b Revert of Pass time constant to bwe smoothing filter. (patchset #8 id:140001 of https://codereview.webrtc.org/2518923003/ )
Reason for revert:
Unfortunately, this change breaks internal projects. Specifically the change to the CongestionController interface means anything implementing it will be forced to change in lock-step.

Original issue's description:
> Pass time constanct to bwe smoothing filter.
>
> BUG=webrtc:6443, webrtc:6303
>
> Committed: https://crrev.com/9abbf5ae4ec7d688a9b4aa03a405f3faadb74b90
> Cr-Commit-Position: refs/heads/master@{#15266}

TBR=minyue@webrtc.org,stefan@webrtc.org,solenberg@webrtc.org,michaelt@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6443, webrtc:6303

Review-Url: https://codereview.webrtc.org/2532993002
Cr-Commit-Position: refs/heads/master@{#15272}
2016-11-28 16:05:23 +00:00
ceecea4559 Pass selected cricket::VideoCodec down to internal H264 encoder
Pass the selected cricket::VideoCodec to H264EncoderImpl::H264EncoderImpl. The cricket::VideoCodec contains relevant information for H264 about selected profile and packetization mode.

BUG=chromium:600254,webrtc:6402, webrtc:6337

Review-Url: https://codereview.webrtc.org/2474993002
Cr-Commit-Position: refs/heads/master@{#15270}
2016-11-28 15:20:26 +00:00
20dce34578 Fixed bug in PacketBuffer to correctly detect new complete frames after ClearTo has been called.
BUG=webrtc:5514
R=stefan@webrtc.org, terelius@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#15269}
2016-11-28 15:15:04 +00:00
a8eb756a34 Moved transport.h from webrtc/ to webrtc/api, created build target and updated WebRTC dependencies.
transport.h defines an interface for sending rtp and rtcp packets,
which is used by MediaChannel in webrtc/media/engine,
{Audio|Video}{Send|Receive}Stream and in a few other
places. It was part of the build target //webrtc:webrtc, which is a monolithic target with
all webrtc production code. This CL moves the header to its own target in webrtc/api
and deprecates the old location.

Targets in webrtc/api should in general only depend on other
targets in webrtc/api. The target webrtc/api:call_api depends on
transport.h. This change also makes webrtc/voice_engine pass GN's header
include checker and is needed in order for webrtc/api:call_api to pass
it.

transport.h will be completely removed in a follow-up CL in a few weeks
after clients have updated their includes.

NOTRY=True

BUG=webrtc:5589, webrtc:5878, webrtc:6785

Review-Url: https://codereview.webrtc.org/2426563003
Cr-Commit-Position: refs/heads/master@{#15267}
2016-11-28 15:02:19 +00:00
9abbf5ae4e Pass time constanct to bwe smoothing filter.
BUG=webrtc:6443, webrtc:6303

Review-Url: https://codereview.webrtc.org/2518923003
Cr-Commit-Position: refs/heads/master@{#15266}
2016-11-28 15:00:24 +00:00
ec1a670167 Only create |remote_rate| when needed in RemoteBitrateEstimatorSingleStream.
R=stefan@webrtc.org
BUG=None

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

Cr-Commit-Position: refs/heads/master@{#15264}
2016-11-28 13:48:33 +00:00
e441bdb744 Cleanup RtpSender hiding RtpHeaderExtensionLength function.
This function has no public use,
removed tests calling it: effect of registering extension is better
tested in AllocatePacket and SendPacket tests.

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2530363002
Cr-Commit-Position: refs/heads/master@{#15258}
2016-11-28 10:55:01 +00:00
847f6897f2 Roll chromium_revision 5e821a778b..5c22c2afac (432715:434448)
Manual changes needed to use our own test runner for Android tests.
VideoProcessorIntegrationTest.ProcessNoLossChangeFrameRateFrameDropVP9
is failing for TSan and UBSan configs, so disable the test for them here.

Change log: 5e821a778b..5c22c2afac
Full diff: 5e821a778b..5c22c2afac

Changed dependencies:
* src/buildtools: 1f985091a5..991f459071
* src/third_party/android_tools: https://chromium.googlesource.com/android_tools.git/+log/c02a002b48..811a2c3f91
* src/third_party/catapult: 249cfbcd88..671a654736
* src/third_party/ffmpeg: 3c7a098821..d16162e3f4
* src/third_party/icu: 7ddf5e9ba1..dda089a98a
* src/third_party/libvpx/source/libvpx: 5c64c01c7c..d7f1d60c51
* src/third_party/openmax_dl: 57d33bee78..7acede9c03
DEPS diff: 5e821a778b..5c22c2afac/DEPS

Clang version changed 284979:287780
Details: 5e821a778b..5c22c2afac/tools/clang/scripts/update.py

TBR=marpan@webrtc.org, ehmaldonado@webrtc.org
BUG=webrtc:6775, webrtc:6739, webrtc:6781
NOTRY=True

Review-Url: https://codereview.webrtc.org/2533733002
Cr-Commit-Position: refs/heads/master@{#15256}
2016-11-28 10:04:45 +00:00
deb95f32f4 Change rtc::TimeNanos and rtc::TimeMicros return value from uint64_t to int64_t.
Also updated types close to call sites.

BUG=webrtc:6733

Review-Url: https://codereview.webrtc.org/2514553003
Cr-Commit-Position: refs/heads/master@{#15255}
2016-11-28 09:55:05 +00:00
71b9b58a3a Revert of Move ADM specific Android files into modules/audio_device/android/ (patchset #2 id:20001 of https://codereview.webrtc.org/2533573002/ )
Reason for revert:
Breaks downstream code

Original issue's description:
> Move ADM specific Android files into modules/audio_device/android/
>
> - Move helpers_android.* and jvm_android.* from modules/utility/.
>
> BUG=none
> TBR=perkj@webrtc.org
>
> Committed: https://crrev.com/e8d8a2bb9704beffed0780c7e0f3a9ef050ae97e
> Cr-Commit-Position: refs/heads/master@{#15253}

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

Review-Url: https://codereview.webrtc.org/2531893002
Cr-Commit-Position: refs/heads/master@{#15254}
2016-11-25 19:45:12 +00:00
e8d8a2bb97 Move ADM specific Android files into modules/audio_device/android/
- Move helpers_android.* and jvm_android.* from modules/utility/.

BUG=none
TBR=perkj@webrtc.org

Review-Url: https://codereview.webrtc.org/2533573002
Cr-Commit-Position: refs/heads/master@{#15253}
2016-11-25 19:34:25 +00:00