Commit Graph

4834 Commits

Author SHA1 Message Date
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
10daf861b9 Simplify an always true condition.
Also deletes one call to CongestionController::pacer.

BUG=None

Review-Url: https://codereview.webrtc.org/2542113003
Cr-Commit-Position: refs/heads/master@{#15479}
2016-12-08 14:24:35 +00:00
64c4a7ecfc Refactor webrtc/modules/audio_processing for GN check
This moves some GN check configurations out of .gn to individual targets.
The now checked target is:
"//webrtc/modules/audio_processing/*",

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

Review-Url: https://codereview.webrtc.org/2558813003
Cr-Commit-Position: refs/heads/master@{#15475}
2016-12-08 12:10:09 +00:00
b0a111108b Decode h264 fmtp sprop-parameter-sets to binary.
BUG=webrtc:5948

Review-Url: https://codereview.webrtc.org/2544493005
Cr-Commit-Position: refs/heads/master@{#15474}
2016-12-08 11:57:25 +00:00
623427c522 Injectable output rate calculater for AudioMixer.
This CL breaks out the output sample rate calculation from
webrtc::AudioMixerImpl. A new OutputRateCalculator interface is added
to make the sample rate configurable. There are at least three reasons
for this change:

  1. The mixer will be used for an internal project, in which no
     resampling is done after the mixing. There the sample rate should
     be static. Currently, it can differ across mix iterations and
     depends on the number of audio sources. If there are no sources,
     the WebRTC mixer behavior is to produce silence at 48 kHz.

  2. A planned change to WebRTC will make audio processing steps
     happen at constant sample rates. A configurable sample rate
     calculator will make the transition simpler for the mixer.

  3. The current mixer design is a single large file. Behavior is not
     always simple to change (e.g. as in this case to mix at a
     constant rate), unrelated behavior can be broken, reusing the
     mixer in internal projects is tricky. Using DI for the sample
     rate calculation solves parts of these issues.

Changes:

The protected mixer c-tor now takes
unique_ptr<OutputRateCalculator>. The current output rate calculation
is moved to DefaultOutputRateCalculator. A new factory method
AudioMixerImpl::CreateWithOutputRateCalculator is added. The old
factory method passes the default rate calculator.

BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2557713006
Cr-Commit-Position: refs/heads/master@{#15472}
2016-12-08 10:38:07 +00:00
9abd275711 Remove unused arguments and variable in MediaOptimization.
BUG=none

Review-Url: https://codereview.webrtc.org/2552703005
Cr-Commit-Position: refs/heads/master@{#15471}
2016-12-08 10:19:49 +00:00
2cd872a939 Log BitBlt failure
BitBlt returns a BOOL value, which should be taken care in ScreenCapturerWinGdi.
Meanwhile, this change also replaces assert() / abort() with RTC_DCHECK() /
RTC_CHECK() / RTC_NOTREACHED().

This change cannot fix the bug, the reason of the issue is still unknown, but it
is still the right thing to do.

In ScreenCapturerIntegrationTest, each frame will be captured at most 600 times.
Since the test case fails, which means the ScreenCapturerWinGdi consistently
returns a white frame for 600 times under a certain state. With this change,
instead of returning white frame, ScreenCapturerWinGdi will return a temporary
error. But I do not think a ScreenCapturerWinGdi can automatically recover by
retrying.

BUG=webrtc:6843

Review-Url: https://codereview.webrtc.org/2553353002
Cr-Commit-Position: refs/heads/master@{#15465}
2016-12-07 20:40:34 +00:00
676e08f3b6 Refactor webrtc/{api,audio} and modules/audio_coding for GN check
This moves some GN check configurations out of .gn to individual targets.
The now checked targets are:
"//webrtc/api/*",
"//webrtc/audio/*",
"//webrtc/modules/audio_coding/*",

Many targets were fixed by adding dependencies, but the ones that
requires more refactorings are left with the check_includes attribute
set to false instead.

Make //webrtc/test:test_support a public dep of //webrtc/test:test_main
to avoid having to add that to all users of it.

BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2556943003
Cr-Commit-Position: refs/heads/master@{#15461}
2016-12-07 16:23:35 +00:00
f515ab8c3f Moved call.h and most of api/call/* into call/
BUG=webrtc:6716

Review-Url: https://codereview.webrtc.org/2550273003
Cr-Commit-Position: refs/heads/master@{#15460}
2016-12-07 12:53:04 +00:00
eca373f3ba Adding OnReceivedOverhead to AudioEncoder.
BUG=webrtc:6762

Review-Url: https://codereview.webrtc.org/2528933002
Cr-Commit-Position: refs/heads/master@{#15457}
2016-12-07 09:40:42 +00:00
hta
ac382f3adc Make ostream<< for enum class H264PacketizationMode
This makes it possible to use << and RTC_CHECK_EQ with this class.

BUG=none

Review-Url: https://codereview.webrtc.org/2554003002
Cr-Commit-Position: refs/heads/master@{#15456}
2016-12-07 07:43:59 +00:00
d3de4abb50 Remove deprecated comments
A trivial change to remove a deprecated comment.

BUG=chromium:314516

Review-Url: https://codereview.webrtc.org/2553283002
Cr-Commit-Position: refs/heads/master@{#15454}
2016-12-07 00:32:12 +00:00
6d314c7a88 Reject XR TargetBitrate items with unsupported layer indices
Specifically, reject any bitrate allocated for a layer not representable
by the BitrateAllocation struct.

BUG=chromium:671312

Review-Url: https://codereview.webrtc.org/2549233005
Cr-Commit-Position: refs/heads/master@{#15447}
2016-12-06 14:09:00 +00:00
hta
9aa96889a3 Reland of H.264 packetization mode 0 (try 3) (patchset #1 id:1 of https://codereview.webrtc.org/2558453002/ )
Reason for revert:
Fixed timeouts in slow tests

Original issue's description:
> Revert of H.264 packetization mode 0 (try 3) (patchset #13 id:490001 of https://codereview.webrtc.org/2528343002/ )
>
> Reason for revert:
> Failures on the Linux Memcheck bot
>
> Original issue's description:
> > This approach passes packetization mode to the encoder as part of
> > a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
> >
> > BUG=600254
> >
> > Committed: https://crrev.com/e59647b991f61cf1cf61b020356705e6c0f81257
> > Cr-Commit-Position: refs/heads/master@{#15437}
>
> TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=600254
>
> Committed: https://crrev.com/243a0a7a7fd6b5da1e32df31f1bfbb6a68dc09f3
> Cr-Commit-Position: refs/heads/master@{#15441}

TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=600254

Review-Url: https://codereview.webrtc.org/2558463002
Cr-Commit-Position: refs/heads/master@{#15445}
2016-12-06 13:36:13 +00:00
768c64877e Move /webrtc/api/android files to /webrtc/sdk/android
I decided to make one webrtc/sdk/android/BUILD.gn for both tests and Java/jni src.

External dependencies needs to be updated after this CL.

Future work is required to clean up the Android api and move
implementation details to /webrtc/sdk/android/src.

BUG=webrtc:5882,webrtc:6804
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2547483003
Cr-Commit-Position: refs/heads/master@{#15443}
2016-12-06 12:29:45 +00:00
45bb5130b0 Reland of APM: Change 3 UMA metrics to fewer but linearly distributed buckets (patchset #1 id:1 of https://codereview.webrtc.org/2548333002/ )
Reason for revert:
The downstream problem is now fixed, and this should be good to land again.

Original issue's description:
> Revert of APM: Change 3 UMA metrics to fewer but linearly distributed buckets (patchset #2 id:20001 of https://codereview.webrtc.org/2547593002/ )
>
> Reason for revert:
> Breaks down-stream dependencies.
>
> Original issue's description:
> > APM: Change 3 UMA metrics to fewer but linearly distributed buckets
> >
> > In this change WebRTC.Audio.ApmCaptureInputLevel{Average,Peak} are
> > changed to 64 buckets, while WebRTC.Audio.AgcLevel is changed to 50
> > buckets. All three are changed to have linear spacing between buckets.
> >
> > Also, the metrics are renamed to avoid stats conflicts because of different bucket schemes:
> > - WebRTC.Audio.AgcLevel -> WebRTC.Audio.AgcSetLevel
> > - WebRTC.Audio.ApmCaptureInputLevelAverage -> WebRTC.Audio.ApmCaptureInputLevelAverageRms
> > - WebRTC.Audio.ApmCaptureInputLevelPeakRms -> WebRTC.Audio.ApmCaptureInputLevelPeakRms
> >
> > BUG=webrtc:6622
> > CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng
> >
> > Committed: https://crrev.com/49715fe3be17d8579586d5bc954d626126d53415
> > Cr-Commit-Position: refs/heads/master@{#15418}
>
> TBR=peah@webrtc.org,rkaplow@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6622
>
> Committed: https://crrev.com/63407a9b6ae6f3fc096e01d64e46c6d21d86b517
> Cr-Commit-Position: refs/heads/master@{#15420}

TBR=peah@webrtc.org,rkaplow@chromium.org
BUG=webrtc:6622
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

Review-Url: https://codereview.webrtc.org/2551863003
Cr-Commit-Position: refs/heads/master@{#15442}
2016-12-06 12:28:10 +00:00
hta
243a0a7a7f Revert of H.264 packetization mode 0 (try 3) (patchset #13 id:490001 of https://codereview.webrtc.org/2528343002/ )
Reason for revert:
Failures on the Linux Memcheck bot

Original issue's description:
> This approach passes packetization mode to the encoder as part of
> a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.
>
> BUG=600254
>
> Committed: https://crrev.com/e59647b991f61cf1cf61b020356705e6c0f81257
> Cr-Commit-Position: refs/heads/master@{#15437}

TBR=hbos@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=600254

Review-Url: https://codereview.webrtc.org/2558453002
Cr-Commit-Position: refs/heads/master@{#15441}
2016-12-06 12:22:05 +00:00
dbc960c045 The level controller complexity tests have lately been
flaky, with many false results and with a huge
variance.

This CL addresses that by changing the way the
API call durations are measured, using a warmup
period and a longer interval for computing the
timing estimates.

Furthermore, this CL reduces the number of tests
to compensate for the fact that the tests now are
more expensive, as well as to reduce the number
of regressions further.

BUG=webrtc:6614,webrtc:6685,666725

Review-Url: https://codereview.webrtc.org/2549403002
Cr-Commit-Position: refs/heads/master@{#15440}
2016-12-06 12:11:29 +00:00
68d3213313 RTPPayloadRegistry: Stop using the rate to keep track of receive codecs
It's not used for anything.

BUG=webrtc:5805

Review-Url: https://codereview.webrtc.org/2516213002
Cr-Commit-Position: refs/heads/master@{#15438}
2016-12-06 11:52:26 +00:00
hta
e59647b991 This approach passes packetization mode to the encoder as part of
a cricket::VideoCodec structure, rather than as part of struct VideoCodecH264 inside webrtc::VideoCodec.

BUG=600254

Review-Url: https://codereview.webrtc.org/2528343002
Cr-Commit-Position: refs/heads/master@{#15437}
2016-12-06 10:22:54 +00:00
406616fc6c Fix spelling mistake in rtp_rtcp.h.
BUG=None
R=danilchap@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2552153003
Cr-Commit-Position: refs/heads/master@{#15435}
2016-12-06 09:40:26 +00:00
7439f973f7 Split targets mixing .c and .cc sources.
The Bazel build format doesn't support having separate
lists of compilation flags for C and C++; it just has a single
copts list for cc_library:
https://bazel.build/versions/master/docs/be/c-cpp.html#cc_binary.copts

This makes it hard to convert our GN targets to Bazel when there are
compiler warnings that aren't supported for C (like -Woverloaded-virtual
being added in bugs.webrtc.org/6653).

The solution for this is to move all .c files to their own targets
and remove C++-only compiler flags during conversion.

New targets:
//webrtc/common_audio:common_audio_c
//webrtc/common_audio:common_audio_neon_c
//webrtc/modules/audio_coding:g711_c
//webrtc/modules/audio_coding:g722_c
//webrtc/modules/audio_coding:ilbc_c
//webrtc/modules/audio_coding:isac_c
//webrtc/modules/audio_coding:isac_fix_c
//webrtc/modules/audio_coding:isac_test_util
//webrtc/modules/audio_coding:pcm16b_c
//webrtc/modules/audio_coding:webrtc_opusj_c
//webrtc/modules/audio_device:mac_portaudio
//webrtc/modules/audio_procssing:audio_processing_c
//webrtc/modules/audio_procssing:audio_processing_neon_c

This CL also adds a PRESUBMIT.py check that will throw an error
if targets are mixing .c and .cc files, to preven this from regressing.

BUG=webrtc:6653
NOTRY=True

Review-Url: https://codereview.webrtc.org/2550563003
Cr-Commit-Position: refs/heads/master@{#15433}
2016-12-06 06:47:52 +00:00
bd681b9758 AGC: Route clipping parameter from webrtc::Config to AGC
This change enables experimentation with the clipping minimum level
parameter in the gain control.

BUG=webrtc:6622
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

Review-Url: https://codereview.webrtc.org/2543753006
Cr-Commit-Position: refs/heads/master@{#15426}
2016-12-05 17:08:46 +00:00
db752f9b37 Revert "Revert of Use different restrictions of acked bitrate lag depending on operating point. (patchset #3 id:40001 of https://codereview.webrtc.org/2542083003/ )"
This reverts commit 2e59a02dd49c122a0e848baaebb7a38faf20dec4.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2553613002
Cr-Commit-Position: refs/heads/master@{#15425}
2016-12-05 16:23:48 +00:00
63407a9b6a Revert of APM: Change 3 UMA metrics to fewer but linearly distributed buckets (patchset #2 id:20001 of https://codereview.webrtc.org/2547593002/ )
Reason for revert:
Breaks down-stream dependencies.

Original issue's description:
> APM: Change 3 UMA metrics to fewer but linearly distributed buckets
>
> In this change WebRTC.Audio.ApmCaptureInputLevel{Average,Peak} are
> changed to 64 buckets, while WebRTC.Audio.AgcLevel is changed to 50
> buckets. All three are changed to have linear spacing between buckets.
>
> Also, the metrics are renamed to avoid stats conflicts because of different bucket schemes:
> - WebRTC.Audio.AgcLevel -> WebRTC.Audio.AgcSetLevel
> - WebRTC.Audio.ApmCaptureInputLevelAverage -> WebRTC.Audio.ApmCaptureInputLevelAverageRms
> - WebRTC.Audio.ApmCaptureInputLevelPeakRms -> WebRTC.Audio.ApmCaptureInputLevelPeakRms
>
> BUG=webrtc:6622
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng
>
> Committed: https://crrev.com/49715fe3be17d8579586d5bc954d626126d53415
> Cr-Commit-Position: refs/heads/master@{#15418}

TBR=peah@webrtc.org,rkaplow@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6622

Review-Url: https://codereview.webrtc.org/2548333002
Cr-Commit-Position: refs/heads/master@{#15420}
2016-12-05 13:11:36 +00:00
49715fe3be APM: Change 3 UMA metrics to fewer but linearly distributed buckets
In this change WebRTC.Audio.ApmCaptureInputLevel{Average,Peak} are
changed to 64 buckets, while WebRTC.Audio.AgcLevel is changed to 50
buckets. All three are changed to have linear spacing between buckets.

Also, the metrics are renamed to avoid stats conflicts because of different bucket schemes:
- WebRTC.Audio.AgcLevel -> WebRTC.Audio.AgcSetLevel
- WebRTC.Audio.ApmCaptureInputLevelAverage -> WebRTC.Audio.ApmCaptureInputLevelAverageRms
- WebRTC.Audio.ApmCaptureInputLevelPeakRms -> WebRTC.Audio.ApmCaptureInputLevelPeakRms

BUG=webrtc:6622
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

Review-Url: https://codereview.webrtc.org/2547593002
Cr-Commit-Position: refs/heads/master@{#15418}
2016-12-05 12:13:05 +00:00
e545e5d062 RtpPacketizer::NextPacket fills RtpPacket instead of just payload.
This push decision if Marker bit should be set into packetizers fixing
issue where returned last_packet flag was ambiguous for some VP9 packets.

Added test for VP9 where last_packet != marker_bit

BUG=webrtc:6723

Review-Url: https://codereview.webrtc.org/2522553002
Cr-Commit-Position: refs/heads/master@{#15415}
2016-12-05 10:26:53 +00:00
6321b49a0d Move functionality out from AudioFrame and into AudioFrameOperations.
This CL is in preparation to move the AudioFrame into webrtc/api. The
AudioFrame is a POD type used for representing 10ms of audio. It
appears as a parameter and return value of interfaces being migrated
to webrtc/api, in particular AudioMixer.

Here, methods operator+=, operator>>=, Mute are
moved into a new target webrtc/audio/utility/audio_frame_operations,
and dependencies are changed to use
the new versions. The old AudioFrame methods are marked deprecated.

The audio frame utilities in webrtc/modules/utility:audio_frame_operations
are also moved to the new location.

TBR=kjellander@webrtc.org
BUG=webrtc:6548
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2424173003
Cr-Commit-Position: refs/heads/master@{#15413}
2016-12-05 09:46:20 +00:00
2e59a02dd4 Revert of Use different restrictions of acked bitrate lag depending on operating point. (patchset #3 id:40001 of https://codereview.webrtc.org/2542083003/ )
Reason for revert:
Appears to cause a regression to RampUpTest.SendSideAudioOnlyUpDownUpRtx:

https://build.chromium.org/p/client.webrtc.perf/builders/Android32%20Tests%20%28L%20Nexus6%29/builds/626

Original issue's description:
> Use different restrictions of acked bitrate lag depending on operating point.
>
> Before this the BWE was allowed to operate freely up to 100 kbps. This isn't a good idea for audio BWE.
>
> BUG=webrtc:5079
>
> Committed: https://crrev.com/5932149c9aeaa7679ad0bc3183047766832ca907
> Cr-Commit-Position: refs/heads/master@{#15389}

TBR=terelius@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:5079

Review-Url: https://codereview.webrtc.org/2547113002
Cr-Commit-Position: refs/heads/master@{#15394}
2016-12-02 19:29:41 +00:00
9cef11b75e Fix exponential probing in ProbeController.
https://codereview.webrtc.org/2504023002 broke exponential probing.
After that change ProbeController stops exponential probes prematurely:
it goes to kProbingComplete state if SetEstimatedBitrate() is called
with bitrate lower than min_bitrate_to_probe_further_bps_, which always
happens with the first pair of probes. As result it wasn't sending
repeated probes as it should. This change fixes that issue by moving
probe expieration logic to ProbeContoller::Process(). This also ensures
that the controller goes to kProbingComplete state as soon as probing
timeout expired, without waiting for the next SetEstimatedBitrate()
call.

BUG=669421

Review-Url: https://codereview.webrtc.org/2546613003
Cr-Commit-Position: refs/heads/master@{#15392}
2016-12-02 19:03:08 +00:00
4eb03c76fa 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

Review-Url: https://codereview.webrtc.org/2532053002
Cr-Commit-Position: refs/heads/master@{#15390}
2016-12-02 16:58:02 +00:00
5932149c9a Use different restrictions of acked bitrate lag depending on operating point.
Before this the BWE was allowed to operate freely up to 100 kbps. This isn't a good idea for audio BWE.

BUG=webrtc:5079

Review-Url: https://codereview.webrtc.org/2542083003
Cr-Commit-Position: refs/heads/master@{#15389}
2016-12-02 16:46:32 +00:00
a790d834c9 Wire up rtcp xr target bitrate on receive side.
BUG=webrtc:6301

Review-Url: https://codereview.webrtc.org/2540363003
Cr-Commit-Position: refs/heads/master@{#15388}
2016-12-02 15:29:48 +00:00
df28e47a4b fix coding and documentary ambiguity in AimdRateControl::TimeToReduceFurther.
BUG=webrtc:6812

Review-Url: https://codereview.webrtc.org/2549453002
Cr-Commit-Position: refs/heads/master@{#15383}
2016-12-02 11:27:18 +00:00
5c71166dff VP8DecoderImpl: Fix uninitialized memory crash
It is not safe to call vpx_codec_destroy if vpx_codec_dec_init failed,
because the |decoder_| memory will be uninitialized. See the bug for
more info.

BUG=chromium:663293

Review-Url: https://codereview.webrtc.org/2541163007
Cr-Commit-Position: refs/heads/master@{#15381}
2016-12-02 10:46:26 +00:00