Patch set 1 is a reland + trivial rebase.
Patch set >= 2 contains bug fixes.
> Original issue's description:
> > Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
> >
> > That however exposes a bunch of failed test, so this CL also fixed a few other things:
> > * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> > * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> > * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> > * Fix test
> >
> > BUG=7664
> >
> > Review-Url: https://codereview.webrtc.org/2883963002
> > Cr-Commit-Position: refs/heads/master@{#18473}
> > Committed: 6431e21da6
BUG=webrtc:7664
Review-Url: https://codereview.webrtc.org/2953053002
Cr-Commit-Position: refs/heads/master@{#18782}
This CL corrects the computation of the delay headroom so that
it is only updated when the delay is updated. This is important
as otherwise a too large headroom will be reported, which then
could cause buffer access issues.
Bug: webrtc:7878, chromium:736893
Change-Id: Ib37cb608b064dd5d4df3f8fc423448ee80ed0106
Reviewed-on: https://chromium-review.googlesource.com/549335
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18781}
The iOS 11 SDK adds nullability annotations to several framework functions
and in this it added the _Nonnull specifier to a protocol method that
we implement. We were passing nil to that method in a test.
The warning is now fixed by passing a mock object instead of nil.
Bug: webrtc:7883
Change-Id: I9f64b0c59750629ca3969400aa725729bb10541b
Reviewed-on: https://chromium-review.googlesource.com/549927
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Kári Tristan Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18780}
Reason for revert:
About to fix problem and reland.
Original issue's description:
> Revert of Create RtcpDemuxer (patchset #13 id:240001 of https://codereview.webrtc.org/2943693003/ )
>
> Reason for revert:
> Breaks Chromium FYI bots.
>
> The problem is in the BUILD.gn file.
>
> Sample failure:
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/17829
>
> Sample logs:
> use_goma = true
> """ to /b/c/b/Linux_Builder/src/out/Release/args.gn.
>
> /b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check
> -> returned 1
> ERROR at //third_party/webrtc/call/BUILD.gn:46:5: Can't load input file.
> "//webrtc/base:rtc_base_approved",
> ^--------------------------------
>
> Original issue's description:
> > Create RtcpDemuxer. Capabilities:
> > 1. Demux RTCP messages according to the sender-SSRC.
> > 2. Demux RTCP messages according to the RSID (resolved to an SSRC, then compared to the sender-RTCP).
> > 3. Allow listening in on all RTCP messages passing through the demuxer ("broadcast sinks").
> >
> > BUG=webrtc:7135
> >
> > Review-Url: https://codereview.webrtc.org/2943693003
> > Cr-Commit-Position: refs/heads/master@{#18763}
> > Committed: cb83bdf01f
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/2957763002
> Cr-Commit-Position: refs/heads/master@{#18764}
> Committed: 0e7e7869e7
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2960623002
Cr-Commit-Position: refs/heads/master@{#18768}
Occurrences of WEBRTC_TRACE(...) will in the future be replaced with the preferred logging mechanism LOG(...). That will be done with a script that runs 'git cl format' on diffs, which will break formatting of surrounding code if the file is not already formatted. Hence this CL.
BUG=webrtc:5118
Review-Url: https://codereview.webrtc.org/2953793002
Cr-Commit-Position: refs/heads/master@{#18766}
Reason for revert:
Breaks Chromium FYI bots.
The problem is in the BUILD.gn file.
Sample failure:
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/17829
Sample logs:
use_goma = true
""" to /b/c/b/Linux_Builder/src/out/Release/args.gn.
/b/c/b/Linux_Builder/src/buildtools/linux64/gn gen //out/Release --check
-> returned 1
ERROR at //third_party/webrtc/call/BUILD.gn:46:5: Can't load input file.
"//webrtc/base:rtc_base_approved",
^--------------------------------
Original issue's description:
> Create RtcpDemuxer. Capabilities:
> 1. Demux RTCP messages according to the sender-SSRC.
> 2. Demux RTCP messages according to the RSID (resolved to an SSRC, then compared to the sender-RTCP).
> 3. Allow listening in on all RTCP messages passing through the demuxer ("broadcast sinks").
>
> BUG=webrtc:7135
>
> Review-Url: https://codereview.webrtc.org/2943693003
> Cr-Commit-Position: refs/heads/master@{#18763}
> Committed: cb83bdf01fTBR=stefan@webrtc.org,danilchap@webrtc.org,nisse@webrtc.org,kjellander@webrtc.org,holmer@google.com,eladalon@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2957763002
Cr-Commit-Position: refs/heads/master@{#18764}
1. Demux RTCP messages according to the sender-SSRC.
2. Demux RTCP messages according to the RSID (resolved to an SSRC, then compared to the sender-RTCP).
3. Allow listening in on all RTCP messages passing through the demuxer ("broadcast sinks").
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2943693003
Cr-Commit-Position: refs/heads/master@{#18763}
Reason for revert:
Test has been fixed.
Original issue's description:
> Disable RTCVideoRenderFrameCallbackNV12 test
>
> It has been crashing on trybots
>
> BUG=webrtc:7863
> TBR=magjed@webrtc.org
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2951273002
> Cr-Commit-Position: refs/heads/master@{#18720}
> Committed: 4d25a0554aTBR=kjellander@webrtc.org,oprypin@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7863
Review-Url: https://codereview.webrtc.org/2959673002
Cr-Commit-Position: refs/heads/master@{#18758}
For consistency with SafeMin(), SafeMax(), and SafeClamp(). And so that we avoid introducing a namespace.
BUG=webrtc:7459
Review-Url: https://codereview.webrtc.org/2802423002
Cr-Commit-Position: refs/heads/master@{#18756}
After returning from the call the AVAudioSession was configured to
use the receiver instead of the speaker for audio output. The
configuration was only restored if the sound loop was previously
playing, this change makes sure that the configuration is always
reset so the sound can be played audibly after a call has been
finished.
Bug: webrtc:7792
Change-Id: Idabf6fadc8041b18722cb8f5e89e0c8c36b1b74d
Reviewed-on: https://chromium-review.googlesource.com/544819
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18754}
This change preserves rotation through the decoder, rather than requiring
callers to keep track of rotation. The test now uses a non-zero rotation
to ensure it is preserved.
Commit 3814524 inadvertently reverted several changes that weren't merged
properly before submit. In particular, it clobbered some log messages,
comments, and error codes. This change fixes those mistakes.
BUG=webrtc:7760
Change-Id: If529ee59fc56de7937e362dc15591295e2cf9f79
Reviewed-on: https://chromium-review.googlesource.com/546415
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18752}
This test was added in "Add cropping to VIEEncoder to match simulcast streams resolution (https://codereview.webrtc.org/2936393002) and makes
webrtc_perf_tests fail+timeout on Mac:
https://build.chromium.org/p/client.webrtc.perf/builders/Mac%2010.11/builds/2896
[ RUN ] FullStackTest.SimulcastFullHdOveruse
- Uh, I'm-I'm not quite dead, sir.
- Uh, I-I think uh, I could pull through, sir.
../../webrtc/video/video_quality_test.cc:419: Failure
Expected: (frames_processed) > (last_frames_processed), actual: 591 vs 591
Analyzer stalled while waiting for test to finish.
TBR=sprang@webrtc.org,magjed@webrtc.org,ilnik@webrtc.org
BUG=webrtc:7375, webrtc:6958
NOTRY=True
Review-Url: https://codereview.webrtc.org/2960573002
Cr-Commit-Position: refs/heads/master@{#18748}
While building Chrome with the VC++ 2017 /permissive- flag I got a
warning about a forward declaration of enum RateControlRegion. Untyped
forward declarations of enums are illegal because the compiler doesn't
know what size to make them. The only reason this forward declaration is
legal is because it isn't needed (the type is already defined).
This was found because /permissive- (or, equivalently for this purpose,
/w14471) incorrectly fires on this forward declaration even though it is
legal.
BUG=chromium:736059
Review-Url: https://codereview.webrtc.org/2834753002
Cr-Commit-Position: refs/heads/master@{#18741}
This CL allows VP9Impl to return a WrappedI444Buffer if the image format is
VPX_IMG_FMT_I444.
Needs to be checked in after Chromium CL 2876363003 is checked in.
BUG=webrtc:7506
Review-Url: https://codereview.webrtc.org/2927943003
Cr-Commit-Position: refs/heads/master@{#18727}
It was included twice. In both of these targets:
webrtc/modules/audio_processing:{audio_processing_tests,
audio_processing_unittests}
In audio_processing_tests, the new unit tests were added to
public_deps, which (we think) somehow caused webrtc:webrtc_tests
to list the AecDump tests, to much confusion.
Bug: webrtc:7404
Change-Id: I5788d93fef00d30a523312f317dde90eb64db8de
Reviewed-on: https://chromium-review.googlesource.com/543120
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18715}
An automatic undef checker noticed an error in the new
audio_processing_fuzzer. An array was default-initialized, meaning its
contents had indeterminate values. This array was later filtered for
forbidden values, which happened or did not happen based on the
uninitialized values. Hence the error.
TBR=henrik.lundin@webrtc.org
NOTRY=true
Bug: 735718, webrtc:7820
Change-Id: Ib50a6f7a5f054472fef07a27d37e02cea432a8ca
Reviewed-on: https://chromium-review.googlesource.com/544937
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18713}
We'd like to remove all occurrences of WEBRTC_TRACE and delete the
macro! One logging mechanism is enough.
NOTRY=True
Bug: webrtc:5118
Change-Id: Ic226318e0aebe3a71785fcb4ce07371872ab7128
Reviewed-on: https://chromium-review.googlesource.com/518133
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18712}
There is a dependency chain from Chromium windows main_dll to Opus
which should never exist. We used to rely on rtc_static_library
to break this chain. So this CL replaced some rtc_source_set
with rtc_static_library.
libvpx fix (https://chromium-review.googlesource.com/c/544107/) for
ios-simulator linking issue is landed and this CL can be sumbitted once the new
Chromium is rolled into WebRTC.
BUG=chromium:734631
Review-Url: https://codereview.webrtc.org/2947273002
Cr-Commit-Position: refs/heads/master@{#18709}
It can; this CL makes it a lot closer, if not all the way to a merge.
Performance from video_loopback and screenshare_loopback should now
match what we're seeing in FullStackTest, which will make debugging and
assesment of quality differences much easier.
It also adds the ability to view all of the simulcast streams at once,
in separate windows.
BUG=webrtc:7694
Review-Url: https://codereview.webrtc.org/2946893003
Cr-Commit-Position: refs/heads/master@{#18703}
Reenable pacer_exit timestamp updates for the timing frames and
exclude timing-frames carrying packets from the FEC.
BUG=webrtc:7859
Review-Url: https://codereview.webrtc.org/2947133002
Cr-Commit-Position: refs/heads/master@{#18702}
Add webrtc/rtc_base in preparation for the larger rename
in https://codereview.webrtc.org/2877023002.
This is needed in order to make downstream projects update
their dependencies (since it's not possible to use public_deps
for android_library).
BUG=webrtc:7634
NOTRY=True
Change-Id: I90fa72c9ebbc4e69bb3133413c3258432a5a72b1
Reviewed-on: https://chromium-review.googlesource.com/541215
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18699}
When building the WebRTC project for iOS, the build will fail on Xcode 9
because of a missing framework-header (AVFoundation). This pull-request
will add the missing "#import <AVFoundation/AVFoundation.h>" line to the
"RTCCameraVideoCapturer" class.
BUG=webrtc:7846
Review-Url: https://codereview.webrtc.org/2944753002
Cr-Commit-Position: refs/heads/master@{#18698}
This reverts commit bd2220a9c496ef2e8567b68d4be9435a110bdc34.
Reason for revert: Broke external clients
Original change's description:
> Support more formats in RTCVideoFrame
>
> Implement Obj-C version of webrtc::VideoFrameBuffer and use that in
> RTCVideoFrame.
>
> Bug: webrtc:7785
> Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677
> Reviewed-on: https://chromium-review.googlesource.com/536773
> Commit-Queue: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18691}
TBR=magjed@webrtc.org,andersc@webrtc.org
Change-Id: Id765dd9543ed0613a6b2de108b268c3501025fcd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7785
Reviewed-on: https://chromium-review.googlesource.com/542837
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18697}
And implementation class RtpStreamReceiverController.
It's responsible for demuxing, and acts as factory for
RtpStreamReceiverInterface.
BUG=webrtc:7135
Review-Url: https://codereview.webrtc.org/2886993005
Cr-Commit-Position: refs/heads/master@{#18696}
Reason for revert:
Relanding the orginal CL. The breakage would be a flakey build.
Original issue's description:
> Revert of Try to fix the binary size increase issue on Chromium. (patchset #1 id:1 of https://codereview.webrtc.org/2945233002/ )
>
> Reason for revert:
> The Android 32 (more config) bot is broken.
>
> Original issue's description:
> > Try to fix the binary size increase issue on Chromium.
> >
> > The target common_video used to depend on rtc_media_base which introduces
> > the dependency on p2p. This probably causes the binary size increase on Win
> > Chromium. Some chromium targets like src/media/gpu:gpu depends on common_video directly.
> >
> > BUG=chromium:734631
> >
> > Review-Url: https://codereview.webrtc.org/2945233002
> > Cr-Commit-Position: refs/heads/master@{#18693}
> > Committed: 9ed1609737
>
> TBR=kjellander@webrtc.org,deadbeef@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:734631
>
> Review-Url: https://codereview.webrtc.org/2949953003
> Cr-Commit-Position: refs/heads/master@{#18694}
> Committed: c2e208a924TBR=kjellander@webrtc.org,deadbeef@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:734631
Review-Url: https://codereview.webrtc.org/2949883003
Cr-Commit-Position: refs/heads/master@{#18695}
Reason for revert:
The Android 32 (more config) bot is broken.
Original issue's description:
> Try to fix the binary size increase issue on Chromium.
>
> The target common_video used to depend on rtc_media_base which introduces
> the dependency on p2p. This probably causes the binary size increase on Win
> Chromium. Some chromium targets like src/media/gpu:gpu depends on common_video directly.
>
> BUG=chromium:734631
>
> Review-Url: https://codereview.webrtc.org/2945233002
> Cr-Commit-Position: refs/heads/master@{#18693}
> Committed: 9ed1609737TBR=kjellander@webrtc.org,deadbeef@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:734631
Review-Url: https://codereview.webrtc.org/2949953003
Cr-Commit-Position: refs/heads/master@{#18694}
The target common_video used to depend on rtc_media_base which introduces
the dependency on p2p. This probably causes the binary size increase on Win
Chromium. Some chromium targets like src/media/gpu:gpu depends on common_video directly.
BUG=chromium:734631
Review-Url: https://codereview.webrtc.org/2945233002
Cr-Commit-Position: refs/heads/master@{#18693}
Implement Obj-C version of webrtc::VideoFrameBuffer and use that in
RTCVideoFrame.
Bug: webrtc:7785
Change-Id: I49f42bcf451dd6769b3a79a65fe7b400dce22677
Reviewed-on: https://chromium-review.googlesource.com/536773
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18691}
The implementation creates an Android hardware video decoder. It is built
around the same patterns as the HardwareVideoEncoderFactory.
This change pulls some shared code and constants into a common "utils" class.
Finally, adds an instrumentation test for the HardwareVideoDecoder.
BUG=webrtc:7760
Change-Id: Iea6eaae7727925743cb54f7c3153a6c07d62f55d
Reviewed-on: https://chromium-review.googlesource.com/536254
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18686}
Floating-point calculations are not guaranteed to happen at compile time
unless you force the issue with constexpr. This initializer was found
by running tools\win\static_initializers on a canary build
chrome_child.dll. constexpr was added to kSilenceRms for consistency.
BUG=chromium:341941
Review-Url: https://codereview.webrtc.org/2943833002
Cr-Commit-Position: refs/heads/master@{#18684}