Commit Graph

4868 Commits

Author SHA1 Message Date
ffecbbf5d0 Fix for integer overflow in NetEq.
BUG=chromium:668736

Review-Url: https://codereview.webrtc.org/2571483002
Cr-Commit-Position: refs/heads/master@{#15654}
2016-12-16 13:51:49 +00:00
70f39a30e9 In RtpPacket do not keep pointer to RtpHeaderExtensionMap
Having that dependency require user of RtpPacket to ensure
RtpHeaderExtensionMap always outlive packet and that RtpPacket's access
to RtpHeaderExtensionMap is properly syncrhonized.
Dropping this dependencies make use of RtpPacket less error-prone.

BUG=webrtc:5261

Review-Url: https://codereview.webrtc.org/2576653003
Cr-Commit-Position: refs/heads/master@{#15653}
2016-12-16 13:48:18 +00:00
51813b3c77 Use NtpTime in RTCPSender::RtcpContext instead of pair of uint32_t
BUG=None

Review-Url: https://codereview.webrtc.org/2577023002
Cr-Commit-Position: refs/heads/master@{#15651}
2016-12-16 10:44:36 +00:00
eb538fdcc6 Pass arrival time as an int64_t rather than a double to the MedianSlopeEstimator to avoid precision loss.
Also clean up the unit test.

BUG=webrtc:6892

Committed: https://crrev.com/ebcbcc3b2451f5c4fb07f7b37815bd54f364d057
Cr-Original-Commit-Position: refs/heads/master@{#15634}
Review-Url: https://codereview.webrtc.org/2578543002
Cr-Commit-Position: refs/heads/master@{#15650}
2016-12-16 10:37:10 +00:00
beafee3009 Move ios_helpers to sdk folder
BUG=webrtc:5582

Review-Url: https://codereview.webrtc.org/2572743004
Cr-Commit-Position: refs/heads/master@{#15649}
2016-12-16 10:12:42 +00:00
528ec3db0b Don't report packets with id -1 to the transport feedback adapter as they provide no value.
This also avoids an issue where -1 is interpreted as 0xFFFF by the feedback adapter, which in practice likely isn't a problem, but still wrong.

BUG=None

Review-Url: https://codereview.webrtc.org/2579263002
Cr-Commit-Position: refs/heads/master@{#15647}
2016-12-16 10:11:26 +00:00
5bc3945f8f Fix integer overflow in ProbeController.
Previously ProbeController would overflow int when calculating
min_bitrate_to_probe_further_bps and when probing bitrate is
above 17 Mbps. The problem was introduced in
https://codereview.webrtc.org/2504023002. Fixed ProbeController to use
int64_t internally for bitrate calculations.

BUG=6332

Review-Url: https://codereview.webrtc.org/2574533002
Cr-Commit-Position: refs/heads/master@{#15642}
2016-12-15 18:42:17 +00:00
b3564adc91 Avoid precision loss in TrendlineEstimator by passing the arrival time as an int64_t instead of a double.
BUG=webrtc:6884

Committed: https://crrev.com/c12cbaf9dd0729dd45f3fc45a1938d1b3455e40a
Review-Url: https://codereview.webrtc.org/2577463002
Cr-Original-Commit-Position: refs/heads/master@{#15631}
Cr-Commit-Position: refs/heads/master@{#15641}
2016-12-15 16:20:31 +00:00
a97c5d233d Add ossu@ to OWNERS of audio/ and modules/audio_coding/
BUG=none

Review-Url: https://codereview.webrtc.org/2576213003
Cr-Commit-Position: refs/heads/master@{#15640}
2016-12-15 15:52:14 +00:00
721d402d71 Create VideoReceiver with external VCMTiming object.
In order for the VCMTiming object to be correctly updated with decoding timings
when running the WebRTC-NewVideoJitterBuffer experiment the VCMTiming object
has to be available in both the VideoReceiver and the video_coding::FrameBuffer
class. Therefore the VCMTiming object is created in VideoRecieveStream and
then passed to VideoReceiver/video_coding::FrameBuffer as they are constructed.

BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2575473004
Cr-Commit-Position: refs/heads/master@{#15638}
2016-12-15 15:11:01 +00:00
ac8d5164f0 Improves release of allocated audio resources on Android.
BUG=webrtc:6890
R=magjed@webrtc.org, solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2574053003 .
Cr-Commit-Position: refs/heads/master@{#15637}
2016-12-15 14:43:10 +00:00
43c382111d Revert of Avoid precision loss in TrendlineEstimator from int64_t -> double conversion (patchset #7 id:120001 of https://codereview.webrtc.org/2577463002/ )
Reason for revert:
Multiple definitions of TestEstimator

Original issue's description:
> Avoid precision loss in TrendlineEstimator by passing the arrival time as an int64_t instead of a double.
>
> BUG=webrtc:6884
>
> Committed: https://crrev.com/c12cbaf9dd0729dd45f3fc45a1938d1b3455e40a
> Cr-Commit-Position: refs/heads/master@{#15631}

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

Review-Url: https://codereview.webrtc.org/2582513002
Cr-Commit-Position: refs/heads/master@{#15636}
2016-12-15 14:42:50 +00:00
0bac07a89b Revert of Avoid precision loss in MedianSlopeEstimator from int64_t -> double conversion (patchset #3 id:40001 of https://codereview.webrtc.org/2578543002/ )
Reason for revert:
Multiple definitions of TestEstimator

Original issue's description:
> Pass arrival time as an int64_t rather than a double to the MedianSlopeEstimator to avoid precision loss.
>
> Also clean up the unit test.
>
> BUG=webrtc:6892
>
> Committed: https://crrev.com/ebcbcc3b2451f5c4fb07f7b37815bd54f364d057
> Cr-Commit-Position: refs/heads/master@{#15634}

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

Review-Url: https://codereview.webrtc.org/2572353003
Cr-Commit-Position: refs/heads/master@{#15635}
2016-12-15 14:41:43 +00:00
ebcbcc3b24 Pass arrival time as an int64_t rather than a double to the MedianSlopeEstimator to avoid precision loss.
Also clean up the unit test.

BUG=webrtc:6892

Review-Url: https://codereview.webrtc.org/2578543002
Cr-Commit-Position: refs/heads/master@{#15634}
2016-12-15 14:31:23 +00:00
df2ceb88a8 Reland of Delete VideoFrame default constructor, and IsZeroSize method. (patchset #1 id:1 of https://codereview.webrtc.org/2574123002/ )
Reason for revert:
Fixing perf tests.

Original issue's description:
> Revert of Delete VideoFrame default constructor, and IsZeroSize method. (patchset #5 id:80001 of https://codereview.webrtc.org/2541863002/ )
>
> Reason for revert:
> Crashes perf tests, e.g.,
>
> ./out/Debug/webrtc_perf_tests --gtest_filter='FullStackTest.ScreenshareSlidesVP8_2TL_VeryLossyNet'
>
> dies with an assert related to rtc::Optional.
>
> Original issue's description:
> > Delete VideoFrame default constructor, and IsZeroSize method.
> >
> > This ensures that the video_frame_buffer method never can return a
> > null pointer.
> >
> > BUG=webrtc:6591
> >
> > Committed: https://crrev.com/bfcf561923a42005e4c7d66d8e72e5932155f997
> > Cr-Commit-Position: refs/heads/master@{#15574}
>
> TBR=magjed@webrtc.org,stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6591
>
> Committed: https://crrev.com/0989fbcad2ca4eb5805a77e8ebfefd3af06ade23
> Cr-Commit-Position: refs/heads/master@{#15597}

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

Review-Url: https://codereview.webrtc.org/2574183002
Cr-Commit-Position: refs/heads/master@{#15633}
2016-12-15 14:30:00 +00:00
c12cbaf9dd Avoid precision loss in TrendlineEstimator by passing the arrival time as an int64_t instead of a double.
BUG=webrtc:6884

Review-Url: https://codereview.webrtc.org/2577463002
Cr-Commit-Position: refs/heads/master@{#15631}
2016-12-15 14:20:03 +00:00
hta
41286496cb Move all codec specific definitions from modules_include
This CL moves all codec specific definitions into their own
header files in the respective codec directory, and replaces
it with an include in the top level directory.

This is to facilitate getting the code out of the header files.

No behavioral changes are expected.

BUG=webrtc:6842

Review-Url: https://codereview.webrtc.org/2555993003
Cr-Commit-Position: refs/heads/master@{#15623}
2016-12-15 08:54:15 +00:00
hta
88cf05cf73 Guard against uninitialized packetization modes.
This change inserts a RTC_CHECK for illegal packetization modes
when RTP packetizers are constructed.

This should help find places where this field is not initialized.

BUG=webrtc:6858

Review-Url: https://codereview.webrtc.org/2575073002
Cr-Commit-Position: refs/heads/master@{#15614}
2016-12-14 20:48:39 +00:00
9006987243 Remove deprecated RTPSender::SendPadData
BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2551143004
Cr-Commit-Position: refs/heads/master@{#15608}
2016-12-14 14:16:43 +00:00
e2ec7c270b Remove static cast from H264SpropParameterSets.
This CL is chained to https://codereview.webrtc.org/2539153002/ .

BUG=webrtc:5948

Review-Url: https://codereview.webrtc.org/2568953005
Cr-Commit-Position: refs/heads/master@{#15607}
2016-12-14 14:08:38 +00:00
930959d261 Improvements to the reliability of the echo detector perf test.
BUG=chromium:673683

Review-Url: https://codereview.webrtc.org/2568883004
Cr-Commit-Position: refs/heads/master@{#15606}
2016-12-14 13:48:25 +00:00
9e1e6c599d Corrected access of null pointer in audioproc_f:
The previous CL that added the ability to add
and artificial nearend signal had an issue with
null pointer access.

This is addressed in this CL.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2573033003
Cr-Commit-Position: refs/heads/master@{#15600}
2016-12-14 11:12:27 +00:00
63e6a38745 Removes verification of audio parameters on Android
TBR=glaznev
BUG=webrtc:6890

Review-Url: https://codereview.webrtc.org/2572963003
Cr-Commit-Position: refs/heads/master@{#15599}
2016-12-14 10:53:31 +00:00
0989fbcad2 Revert of Delete VideoFrame default constructor, and IsZeroSize method. (patchset #5 id:80001 of https://codereview.webrtc.org/2541863002/ )
Reason for revert:
Crashes perf tests, e.g.,

./out/Debug/webrtc_perf_tests --gtest_filter='FullStackTest.ScreenshareSlidesVP8_2TL_VeryLossyNet'

dies with an assert related to rtc::Optional.

Original issue's description:
> Delete VideoFrame default constructor, and IsZeroSize method.
>
> This ensures that the video_frame_buffer method never can return a
> null pointer.
>
> BUG=webrtc:6591
>
> Committed: https://crrev.com/bfcf561923a42005e4c7d66d8e72e5932155f997
> Cr-Commit-Position: refs/heads/master@{#15574}

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

Review-Url: https://codereview.webrtc.org/2574123002
Cr-Commit-Position: refs/heads/master@{#15597}
2016-12-14 10:06:49 +00:00
bb66ec3573 Disable flaky test VideoProcessorIntegrationTest.ProcessNoLossChangeFrameRateFrameDropVP9
This test is flaky on all platforms, not just Android. Disabling it entirely until webrtc:6057 is fixed.

BUG=webrtc:6057

Review-Url: https://codereview.webrtc.org/2568743007
Cr-Commit-Position: refs/heads/master@{#15594}
2016-12-14 09:17:34 +00:00
e0eae3cec6 This CL adds the basic framework for AEC3 in the audio processing module.
It will be followed by a number of other CLs that extends this framework.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2567513003
Cr-Commit-Position: refs/heads/master@{#15593}
2016-12-14 09:16:28 +00:00
43c5a974b4 Delete stl_util.h. Unused since cl https://codereview.webrtc.org/2447103002
BUG=None

Review-Url: https://codereview.webrtc.org/2570833002
Cr-Commit-Position: refs/heads/master@{#15590}
2016-12-14 08:07:44 +00:00
a5073c0c97 Disable AudioDeviceTest.StartPlayoutOnTwoInstances on iOS
This test fails when running on real iOS devices.

BUG=webrtc:6889
TBR=henrika@webrtc.org

Review-Url: https://codereview.webrtc.org/2576653002 .
Cr-Commit-Position: refs/heads/master@{#15586}
2016-12-14 06:25:24 +00:00
bfcf561923 Delete VideoFrame default constructor, and IsZeroSize method.
This ensures that the video_frame_buffer method never can return a
null pointer.

BUG=webrtc:6591

Review-Url: https://codereview.webrtc.org/2541863002
Cr-Commit-Position: refs/heads/master@{#15574}
2016-12-13 14:08:39 +00:00
46711db355 Disable flaky QualityScaler tests for now.
BUG=webrtc:6799
TBR=sprang@webrtc.org

Review-Url: https://codereview.webrtc.org/2564423002
Cr-Commit-Position: refs/heads/master@{#15573}
2016-12-13 13:32:31 +00:00
03392d0047 Fix for negative shift value in NetEq.
BUG=chromium:667028

Review-Url: https://codereview.webrtc.org/2562423002
Cr-Commit-Position: refs/heads/master@{#15562}
2016-12-13 09:05:37 +00:00
1354901663 Making audio network adaptor config proto a JAVA package.
BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2568043002
Cr-Commit-Position: refs/heads/master@{#15555}
2016-12-12 22:06:25 +00:00
e5ba75a658 Destroy encoders that fail to InitEncode.
SimulcastEncoderAdapter calls Release() on a failed sub-encoder init,
but Release only knows how to clean up encoders that have registered
stream info. Since failed ones don't register, they aren't currently
cleaned up.

BUG=None

Review-Url: https://codereview.webrtc.org/2544003005
Cr-Commit-Position: refs/heads/master@{#15553}
2016-12-12 21:08:36 +00:00
4f19b2fe09 Add OWNERS to BWE modules.
BUG=None

Review-Url: https://codereview.webrtc.org/2556703002
Cr-Commit-Position: refs/heads/master@{#15550}
2016-12-12 15:53:39 +00:00
fe793eb2d1 Remove sequenced task checker from FlexfecSender.
The packetization parts of this class are accessed from the
encoder thread, which might change under different occasions.
The use of a sequenced task checker here is thus incorrect, since
that requires the access to always be on the same thread, whenever
a task queue is not used.

The access to the instantiated object of this class, at least when
it comes to the RTP packetization parts, is however synchronized
using the lock in PayloadRouter::OnEncodedImage. We can therefore
safely remove the sequenced task checker.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2562983002
Cr-Commit-Position: refs/heads/master@{#15549}
2016-12-12 15:14:03 +00:00
a9a6d4bc2c Delete voice_engine_configurations.h
The file was aldready pruned down to the point where it only included
webrtc/typedefs.h. Therefore, all includes of
voice_engine_configurations.h are replaced with typedefs.h, except on
two occasions where it was obvously not needed.

BUG=webrtc:6506

Review-Url: https://codereview.webrtc.org/2553583002
Cr-Commit-Position: refs/heads/master@{#15547}
2016-12-12 13:03:08 +00:00
d2ce622ea1 Disabling the potentially flaky test
VideoProcessorIntegrationTest.
ProcessNoLossSpatialResizeFrameDropVP9

TBR=sprang@webrtc.org

BUG=webrtc:6873

Review-Url: https://codereview.webrtc.org/2565373002
Cr-Commit-Position: refs/heads/master@{#15545}
2016-12-12 11:21:21 +00:00
b29b9c8e49 Replace VideoCaptureDataCallback by VideoSinkInterface.
This also deletes unused features of the video_capturer interface, the classes
VideoCaptureFeedBack, VideoCaptureEncodeInterface and related methods,
and the module id which used to be passed as an argument to the
VideoCaptureDataCallback.

In theory the module id could have been used to let a single
VideoCaptureDataCallback serve several capturers, and demultiplex
on the id, but in practice, it was unused. With this change, it is
required to use a separate VideoSinkInterface for each capturer.

BUG=webrtc:6789

Review-Url: https://codereview.webrtc.org/2534553002
Cr-Commit-Position: refs/heads/master@{#15540}
2016-12-12 08:23:05 +00:00
99f7bfde28 Change MANUAL -> DISABLED for ScreenCapturerIntegrationTest tests
It turns out MANUAL_ isn't a part of the supported gtest prefixes: it's a part of the
Chromium test launcher: https://cs.chromium.org/chromium/src/content/public/test/test_launcher.cc?rcl=0&l=69

Luckily, we can use DISABLED_ for the same purpose, since there's the --gtest_also_run_disabled_tests
flag we can use.

BUG=webrtc:6666, webrtc:6843
TBR=zijiehe@chromium.org

Review-Url: https://codereview.webrtc.org/2568013002 .
Cr-Commit-Position: refs/heads/master@{#15539}
2016-12-12 07:30:09 +00:00
8d1649d71b MANUAL tests of GDI capturers
ScreenCapturerWinGdi randomly returns black frames in test environment. The root
cause is still unknown, so change ScreenCapturerWinGdi tests into MANUAL mode to
execute in test environment, but unblock other developers. We can eventually get
a failure ratio and more samples for debugging.

BUG=webrtc:6666, webrtc:6843

Review-Url: https://codereview.webrtc.org/2564173002
Cr-Commit-Position: refs/heads/master@{#15518}
2016-12-10 00:00:10 +00:00
5a388368a2 Implement Theil-Sen's method for fitting a line to noisy data (used in bandwidth estimation).
Theil and Sen's estimator essentially looks at the line through every pair of points and selects the median slope. This is robust to corruption of up to 29% of the data points.

Wire up new estimator to field trial experiment. Add unit and integration tests. Results are promising.

BUG=webrtc:6728

Review-Url: https://codereview.webrtc.org/2512693002
Cr-Commit-Position: refs/heads/master@{#15508}
2016-12-09 13:50:08 +00:00
5ad5de3716 During AEC development, it is handy to be able to simulate different
orders of the ProcessStream and ProcessReverseStream API calls.

This CL adds the ability to specify that call order in a file.

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2561843003
Cr-Commit-Position: refs/heads/master@{#15503}
2016-12-09 11:18:30 +00:00
df80fd1259 When recreating a call based on an aecdump recording the nearend used
is the one stored in the aecdump.

During AEC development, it is handy to be able to simulate different
doubletalk scenarios. This CL adds the ability to add an
artificial nearend on top of that present in the aecdump, which
allows for the developer to artificially customize the scenario
being tested

BUG=webrtc:6018

Review-Url: https://codereview.webrtc.org/2562593003
Cr-Commit-Position: refs/heads/master@{#15502}
2016-12-09 10:43:45 +00:00
a90799d5fb Revert of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #1 id:40001 of https://codereview.webrtc.org/2532053002/ )
Reason for revert:
Increase in encode time larger than expected.

Original issue's description:
> Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
>
> Error resilience is currently always enabled for VP9 which reduces quality.
>
> BUG=webrtc:6783
>
> Committed: https://crrev.com/4eb03c76fa2320534d669fda2aabf800e7a6f579
> Cr-Commit-Position: refs/heads/master@{#15390}

TBR=stefan@webrtc.org,marpan@webrtc.org,mflodman@webrtc.org,marpan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/2554403006
Cr-Commit-Position: refs/heads/master@{#15501}
2016-12-09 10:35:30 +00:00
7aa9b910ff Fix issue with deprecated CongestionController interface not working.
BUG=b/33446014

Review-Url: https://codereview.webrtc.org/2565503002
Cr-Commit-Position: refs/heads/master@{#15491}
2016-12-08 20:21:48 +00:00
e83f4b3835 Enable screen capturer tests for Linux / DirectX capturer / magnifier capturer
GDI capturer may randomly return a blank frame. So this change enables tests for
Linux / DirectX capturer / magnifier capturer.

BUG=webrtc:6666

Review-Url: https://codereview.webrtc.org/2559583002
Cr-Commit-Position: refs/heads/master@{#15489}
2016-12-08 19:47:09 +00:00
36df2d76c5 Refactor webrtc/modules/video_{capture,coding} for GN check
This moves some GN check configurations out of .gn to individual targets.
The now checked target is:
"//webrtc/modules/video_capture/*",
"//webrtc/modules/video_coding/*",

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

Review-Url: https://codereview.webrtc.org/2555333004
Cr-Commit-Position: refs/heads/master@{#15488}
2016-12-08 17:56:23 +00:00
8d193a72bc Do not update OnReceivedRtcpReceiverReport if report block list is empty (and rtt zero).
For example, zero rtt may be reported to:
BitrateControllerImpl::OnReceivedRtcpReceiverReport:
- SendSideBandwidthEstimation::UpdateReceiverBlock
- SendSideBandwidthEstimation::UpdateUmaStats
BitrateAllocator::OnNetworkChanged:
- ProtectionBitrateCalculator::SetTargetRates

Re-add check that was removed in https://codereview.webrtc.org/2422063002.

BUG=webrtc:6692

Review-Url: https://codereview.webrtc.org/2552883010
Cr-Commit-Position: refs/heads/master@{#15486}
2016-12-08 16:13:08 +00:00
7dada5e4c0 Delete deprecated CongestionController constructor and packet_router method.
This is a followup to https://codereview.webrtc.org/2516983004/, to be
landed after downstream projects are updated.

BUG=webrtc:6847

Review-Url: https://codereview.webrtc.org/2548633003
Cr-Commit-Position: refs/heads/master@{#15484}
2016-12-08 15:49:08 +00:00
0287db05c3 Re-enable disabled VideoProcessorIntegrationTest tests
The llvm bug has now been fixed.

BUG=webrtc:6781
TBR=marpan@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2559113003
Cr-Commit-Position: refs/heads/master@{#15482}
2016-12-08 15:12:21 +00:00