Commit graph

29021 commits

Author SHA1 Message Date
saza
1d60052967 Delete ApmPublicSubmodules, fix ApmPrivateSubmodules, ApmSubmoduleStates
All submodule pointers are now private.

The unique_ptr to a ApmPrivateSubmodules is replaced by a direct member
object.

The main outcome of this CL is that the code is nicer.

Bug: webrtc:5298
Change-Id: Ib8ef70a35a64b875752d2a318c572d152d51487a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157440
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29539}
2019-10-18 14:23:50 +00:00
Åsa Persson
3f7e0ede1e Add option to make first scale factor depend on input resolution.
Scale factors are 3/4, 2/3, 3/4, 2/3, ...

Adds possibly to start with:
- 2/3 (if width/height multiple of 3)
- 2/3, 2/3 (if width/height multiple of 9)

Bug: none
Change-Id: Idbeddfec4baea893c240bbb897d01ac1cff3b435
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157105
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29538}
2019-10-18 14:19:04 +00:00
Niels Möller
89e130a2d0 Reland "Delete methods EncodedImage::Allocate and EncodedImageBufferInterface::Realloc"
This is a reland of d6bb18479f

Chromium problem fixed in https://webrtc-review.googlesource.com/c/src/+/153485

Original change's description:
> Delete methods EncodedImage::Allocate and EncodedImageBufferInterface::Realloc
>
> Bug: webrtc:9378
> Change-Id: I3b03656769623647fcbb4f9125a3e920b7650fe9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155961
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29458}

Bug: webrtc:9378
Change-Id: I062262e87e115666ed4c92985ca75328e8d0c65f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157441
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29537}
2019-10-18 11:34:48 +00:00
Gustaf Ullberg
55d19e590d Add gustaf to audio/OWNERS
Bug: None
Change-Id: I1105c47ff642094730635dc3f00663d45dd57c6a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157420
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29536}
2019-10-18 11:13:11 +00:00
Danil Chapovalov
4aae11dc46 Remove redundant fields in PacketBuffer
merge two vectors of the same size into single vector
Remove redundant size_ variable.
Remove redundant variables in the StoredPacket internal struct.
Remove frame_created flags since shortly after it is set, used flag is set to false

Bug: webrtc:10979
Change-Id: Ia37944362abda4e2a6c6741f436f95c45e0f7069
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157174
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29535}
2019-10-18 10:05:10 +00:00
Erik Språng
dbbf413085 Fix use of unitialized value in test
Local media SSRC is mandatory, but let's give it a default value to
make tests less brittle.

Bug: chromium:1015256
Change-Id: If7f6505482d90651bc58d9b358290c4d43487f4e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157421
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29534}
2019-10-18 09:20:16 +00:00
Mirko Bonadei
c66e004edc Adding missing RTC_EXPORT for component build.
Bug: webrtc:9419
Change-Id: Ifa5d21edc708b5012b71e2e5101e10c6352a7218
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157162
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29533}
2019-10-18 09:17:56 +00:00
Danil Chapovalov
05269ecd0b Rename PacketBuffer tests to follow conventions
Rename file with tests to match code under test.
Rename fixture by moving 'Test' from prefix to suffix

Bug: None
Change-Id: I54c36d3b517bde7cdffa3a7e74528cc464ea7ad7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157301
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29532}
2019-10-18 09:05:06 +00:00
Niels Möller
f07003c2ec Avoid Realloc in LibvpxVp8Encoder
Instead, compute the needed buffer size for the encoded VP8 frame
prior to copying the data.

Bug: chromium:1012256
Change-Id: I3dda921f6d8f974731d2138bc5f6166cfdb9a321
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157303
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29531}
2019-10-18 08:36:23 +00:00
Per Åhgren
119e2197b7 AEC3: General cleanup after multichannel changes
This CL contains various cleanups/corrections to the multichannel AEC
code.

The changes have been shown to be bitexact over a large dataset.

Bug: webrtc:10913
Change-Id: Idd3e410b04527666e052f57ad81d0ac9eef3179b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157173
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29530}
2019-10-18 07:43:49 +00:00
Patrik Höglund
2167163770 Rewrite the lib link test to just be a binary.
This works on mobile and has less dependencies. There's no upside to
using gtest since I'm not planning on running the test anyway, so this
is a much better solution.

Bug: webrtc:11027
Change-Id: Id63af7086b9d9c9199c62bc8654b4202a4a1f759
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157380
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29529}
2019-10-18 07:42:20 +00:00
Sam Zackrisson
98872dc556 AEC3: Update SpectrumBuffer API
- RenderBuffer::Spectrum() loses its channel argument, allowing for
  greater flexibility in passing the multi-channel spectrum data into
  functions.
- The FFT spectra lengths are made compile-time constant, rendering
  some DCHECKs obsolete.

Bug: webrtc:10913
Change-Id: Ied0c50cf72d974cfef7279fd2b9c572d049b8b16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157104
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29528}
2019-10-18 07:01:42 +00:00
chromium-webrtc-autoroll
c336dd1cb6 Roll chromium_revision 8a67b116c8..f29003dd01 (707122:707259)
Change log: 8a67b116c8..f29003dd01
Full diff: 8a67b116c8..f29003dd01

Changed dependencies
* src/base: 9ed4ea0c36..e687d5e880
* src/build: b758b92dab..c23879b9ff
* src/ios: 4fb07e66b1..1d43980b85
* src/testing: b40c881355..aec101386c
* src/third_party: 55a70e7d58..6db0e634c0
* src/third_party/depot_tools: b594247e39..fcde3ba0a6
* src/third_party/r8: VYsSPB6QlnJQH-2vJBhK8T6r0mexvbb9klMKwnK22GoC..IOR6mtzOa3X07B0hIZ5U2prEf0GbTvCdN8no1FjNAtQC
* src/tools: 2809e699dd..1b1fb32e10
DEPS diff: 8a67b116c8..f29003dd01/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I7d89d23a53c2eb00652f30b293e3603950efd45f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157360
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29527}
2019-10-18 06:37:42 +00:00
chromium-webrtc-autoroll
7bf8699dd1 Roll chromium_revision 1d5b803fd3..8a67b116c8 (707010:707122)
Change log: 1d5b803fd3..8a67b116c8
Full diff: 1d5b803fd3..8a67b116c8

Changed dependencies
* src/base: 7be321828f..9ed4ea0c36
* src/build: 82f1af29ac..b758b92dab
* src/ios: 849c654c99..4fb07e66b1
* src/testing: 507bd47e75..b40c881355
* src/third_party: 9555657de8..55a70e7d58
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/bc4c09df64..76918d0164
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1b3fb455bf..c98b1ee7e4
* src/tools: 7ccc2916be..2809e699dd
DEPS diff: 1d5b803fd3..8a67b116c8/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: If7032db489c162618ae2f94f8352e69de9d179c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157321
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29526}
2019-10-17 22:56:53 +00:00
Mirko Bonadei
86d053c2db Use source_sets in component builds and static_library in release builds.
Static libraries don't guarantee that an exported symbol gets linked
into a shared library (and in order to support Chromium's component
build mode, WebRTC needs to be linked as a shared library).

Source sets always pass all the object files to the linker.

On the flip side, source_sets link more object files in release builds
and to avoid this, this CL introduces a the GN template "rtc_library" that
expands to static_library during release builds and to source_set during
component builds.

See: https://gn.googlesource.com/gn/+/master/docs/reference.md#func_source_set

Bug: webrtc:9419
Change-Id: I4667e820c2b3fcec417becbd2034acc13e4f04fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157168
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29525}
2019-10-17 21:17:18 +00:00
chromium-webrtc-autoroll
e8b962bd3c Roll chromium_revision 60f3e975da..1d5b803fd3 (706891:707010)
Change log: 60f3e975da..1d5b803fd3
Full diff: 60f3e975da..1d5b803fd3

Changed dependencies
* src/base: c9e4045043..7be321828f
* src/build: e81a0c9676..82f1af29ac
* src/ios: 716d1a54ce..849c654c99
* src/testing: e598f3c5f4..507bd47e75
* src/third_party: b49284bea0..9555657de8
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/572eb8c70f..1b3fb455bf
* src/third_party/depot_tools: 989bc35186..b594247e39
* src/tools: 8f58bab28f..7ccc2916be
DEPS diff: 60f3e975da..1d5b803fd3/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I34e454ba605da1664a5e62fd1314b5c91450978d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157320
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29524}
2019-10-17 20:34:08 +00:00
Per Åhgren
88d662ac69 AEC3: Removed some usages of DirectPathFilterDelays
Bug: webrtc:10913
Change-Id: Idb2428fcbebde0b4a705ef86185a87605f8ee757
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157165
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29523}
2019-10-17 19:13:04 +00:00
Kuang-che Wu
ce9da1636a Use FakeRenderer when fuzzing
Do not fuzz with real renderer because it is merely frame copying and
doesn't exercise different control flows. This CL also improved fuzzing
performance and fixed a memory leak.

Bug: chromium:952606, chromium:1009077, chromium:1009073
Change-Id: I77c6f2581db82bfd95edb18e5f0e541a94c78208
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156620
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29522}
2019-10-17 18:44:03 +00:00
Per Åhgren
785d4c40ca AEC3: Add multichannel support in the ERLE estimation
Bug: webrtc:10913
Change-Id: I1667146d38dc99d099b140f47cd774a7f203b4f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157047
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29521}
2019-10-17 17:34:18 +00:00
Sam Zackrisson
db8df17650 Add AEC3 config json parsing fuzzer
Bug: webrtc:9535
Change-Id: Ic659a31b6d5b26a07aee955a5b83e889122b4705
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157306
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29520}
2019-10-17 16:33:44 +00:00
Erik Språng
671b403304 Split RTPSender into pre- and post-pacer parts.
Post-pacer code now contained in RtpSenderEgress class.
For now, this is a member of RTPSender. More refactoring is needed to
make clean split.

Bug: webrtc:11036
Change-Id: I95264d013de120601784f130ba81c7b234446980
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157172
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29519}
2019-10-17 15:40:15 +00:00
Patrik Höglund
eeb79e94b9 Add a test which breaks if libwebrtc.a don't pull in the right symbols.
It's impossible to ensure we are pulling in everything people
reasonably believe is used, but it should be a good chunk of it.

I don't plan to actually run this test on the bots, it's enough if
it is built (which it should, because I add it to the default set
of things to build).

Bug: webrtc:11027
Change-Id: I186936eeb450d2f63b3a5bed13189e84d5b3fb76
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157175
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29518}
2019-10-17 15:03:06 +00:00
chromium-webrtc-autoroll
5b74f8d7ff Roll chromium_revision 08af487375..60f3e975da (706400:706891)
Change log: 08af487375..60f3e975da
Full diff: 08af487375..60f3e975da

Changed dependencies
* src/base: d3cd138c79..c9e4045043
* src/build: d3dfde52d0..e81a0c9676
* src/ios: ff16082622..716d1a54ce
* src/testing: d149367a8a..e598f3c5f4
* src/third_party: 943906bccc..b49284bea0
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/44806300ad..572eb8c70f
* src/third_party/depot_tools: ba97f6065e..989bc35186
* src/third_party/harfbuzz-ng/src: c1a585fab0..e637a4b3de
* src/tools: b83f18766b..8f58bab28f
DEPS diff: 08af487375..60f3e975da/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I25cebb639fab7e8ec287ff43cfca7d30ccb3dffb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157263
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29517}
2019-10-17 14:50:42 +00:00
Danil Chapovalov
c71d85bc4e Pass full RtpPacket to RtpVideoStreamReceiver::OnReceivedPayload
that brings RtpPacketReceived closer to the packet buffer
to allow strore original packets rather than VCMPacket in it.

Bug: webrtc:10979
Change-Id: Ia0fc0abf3551a843b19b0ee66ca0f20cae014479
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157164
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29516}
2019-10-17 14:48:32 +00:00
Shyam Sadhwani
5b2df17422 Width and Height was not associated and provided to decoder for H264 streams which have Nalus before SPS
Summary:
There is an issue with WebRTC for handling of certain H.264 bitstreams where the packets forming the H.264 stream has non-zero packets before the packet containing SPS.

Typically a IDR (key frame) will have SPS/PPS (if present) or the IDR slice in the first packet.
But this is not required in all cases, for example when packetization-mode = 0, you can have each NALU in separate packet. And certain NALUs can exist before SPS, for example SEI, AUD.

The way WebRTC associates width/height to encoded frames is by tracking the dependency of IDR slices to SPS/PPS.
RTP packets containing SPS/PPS have correct width/height stored in them during parsing of SPS in RtpDepacketizerH264::ProcessStapAOrSingleNalu
IDR packets refer to SPS using ppsid, spsid and the width/height fields get transferred from packet containing SPS to IDR packet in H264SpsPpsTracker::CopyAndFixBitstream.

When packets are assembled into a single encoded H264 frame in PacketBuffer::FindFrames, the loop goes through all the packets/nalus in backward scan from last RTP packet of IDR to first one.
Hence the order of NALUs during this scan is : Last parts of IDR Slice -> Mid parts of IDR Slice RTP packet -> first IDR slice Packet (this should have correct width / height) -> RTP packet containing SPS/PPS (this should have correct width/height)
start_index points to the first RTP packet of the frame and its passed into RtpFrameObject's constructor. RtpFrameObject will use the width/height stored in first RTP packet.

This works fine as long as the first RTP packet has width/height, which will be the case if first RTP packet is IDR or SPS.
In H.264 first RTP packet may be AUD, SEI in those cases, RtpFrameObject will create IDR with width/height = 0 and this causes problem for Android hardware decoders.
On Android hardware decoders rely on correct width/height to initialize the hardware decoder.

Verified on real scenario that we have.
Simulated on AppRTCMobile on IOS Simulator
Added unit tests : ninja -C out/Default && ./out/Default/modules_unittests --gtest_filter=*FrameResolution*

Bug: webrtc:11025
Change-Id: Ie2273aae5e81fd62497e1add084876a3aa05af4d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156260
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Shyam Sadhwani <shyamsadhwani@fb.com>
Cr-Commit-Position: refs/heads/master@{#29515}
2019-10-17 13:51:16 +00:00
Erik Språng
c06aef2ad1 Reland "Use just a lookup map of RTP modules in PacketRouter"
This is a reland of 96f3de0945
Downstream test is fixed, this is a pure reland.

TBR=danilchap@webrtc.org,srte@webrtc.org

Original change's description:
> Use just a lookup map of RTP modules in PacketRouter
>
> Since SSRCs of RTP modules are now set at construction time, we can
> use just a simple unordered map from SSRC to module in packet router.
>
> Bug: webrtc:11036
> Change-Id: I0b3527f17c9ee2df9253c778e5b9e3651a70b355
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155965
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29510}

Bug: webrtc:11036
Change-Id: I0731339dfd0781cc7f2f7ca78ac903539f25ff9c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157304
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29514}
2019-10-17 12:59:39 +00:00
Mirko Bonadei
5074758cb6 Update DEPS to download the checked-in JDK.
This is required after [1] in oroder to unblock the Chromium Roll into
WebRTC [2].

This CL is inspired by what Chromium has done in [3].

[1] - 6b4dc5bfc3
[2] - https://webrtc-review.googlesource.com/c/src/+/157187/
[3] - https://chromium-review.googlesource.com/c/chromium/src/+/1831011

Bug: None
Change-Id: I710e3076627742676887aab1e139e93824be8374
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157302
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29513}
2019-10-17 12:41:35 +00:00
Mirko Bonadei
0ac52dcc8f Use symbol_level=1 also for MSVC dbg bots.
See https://webrtc-review.googlesource.com/c/src/+/155440/5#message-4c2c222ce7043f9c9c6936a38545bef82610132a for more info.

Bug: webrtc:11011
Change-Id: If09de0fe890d51f2f8615296e740c3575e21544c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157280
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29512}
2019-10-17 12:02:50 +00:00
Erik Språng
fbe84ef80f Revert "Use just a lookup map of RTP modules in PacketRouter"
This reverts commit 96f3de0945.

Reason for revert: Downstream test is borked.

Original change's description:
> Use just a lookup map of RTP modules in PacketRouter
> 
> Since SSRCs of RTP modules are now set at construction time, we can
> use just a simple unordered map from SSRC to module in packet router.
> 
> Bug: webrtc:11036
> Change-Id: I0b3527f17c9ee2df9253c778e5b9e3651a70b355
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155965
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29510}

TBR=danilchap@webrtc.org,sprang@webrtc.org,srte@webrtc.org

Change-Id: I31330fd68ab809ff3951573791e9a79b81599958
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11036
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157281
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29511}
2019-10-17 11:17:41 +00:00
Erik Språng
96f3de0945 Use just a lookup map of RTP modules in PacketRouter
Since SSRCs of RTP modules are now set at construction time, we can
use just a simple unordered map from SSRC to module in packet router.

Bug: webrtc:11036
Change-Id: I0b3527f17c9ee2df9253c778e5b9e3651a70b355
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155965
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29510}
2019-10-17 11:06:34 +00:00
Henrik Lundin
4970670c78 Avoid reading outside of memory in WebRtcVad_FindMinimum
Also, change test target from rtc_static_library to rtc_source_set so that it is actually linked and run.

Bug: webrtc:11010, webrtc:11037
Change-Id: I05173718ee7de8a9fad73b62c0efd0da4d4f1a7e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157166
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29509}
2019-10-17 10:59:49 +00:00
Gustaf Ullberg
dabdde6273 Avoid running NullAudioPoller without receiving streams
Fixes an issue with NullAudioPoller calling the mixer every 10 ms when
no call is ongoing.

Bug: b/142775365
Change-Id: I77eeddadaf08b358cce2b389c70e4f2baf1d5627
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157176
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29508}
2019-10-17 10:58:44 +00:00
Erik Språng
5f01bf6c8b Refactor handling of TransportSequenceNumber in PacketRouter
The use of SetTransportWideSequenceNumber() and AllocateSequenceNumber()
is gone from webrtc, but some downstream code still references them.

This means we can do some simplifications.

The member that stores the sequence number is now always accessed while
holding the modules lock, so we can just use that and don't need to add
atomic operations on top.

SetTransportWideSequenceNumber() is only used to set the start sequence
number, it would be nice to set that in the constructor instead.

AllocateSequnceNumber() is now actually only used as a getter, so this
can be replace by a proper const getter method instead.

Bug: webrtc:11036
Change-Id: I69b06e613ca3361cf24ef835b92dd0a894cbd27e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157167
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29507}
2019-10-17 10:15:52 +00:00
Tom Anderson
a6d7b02824 Avoid g_clear_object in pipewire
Fixes the below build warnings when building with a newer version of
glib.  Seen when updating the linux sysroots for crbug.com/1012850

 [ 11629/38237 - 588 process @ 649.7/s : 17.899s ] CXX obj/third_party/webrtc/modules/desktop_capture/desktop_capture_generic/base_capturer_pipewire.o
../../third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc:253:5: warning: Not available before 2.34 [-W#pragma-messages]
    g_clear_object(&cancellable_);
    ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/gobject/gobject.h:678:36: note: expanded from macro 'g_clear_object'
                                   ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gmem.h:142:3: note: expanded from macro 'g_clear_pointer'
  GLIB_AVAILABLE_MACRO_IN_2_34
  ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gversionmacros.h:473:49: note: expanded from macro 'GLIB_AVAILABLE_MACRO_IN_2_34'
                                                ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gmacros.h:991:41: note: expanded from macro 'GLIB_UNAVAILABLE_MACRO'
                                        ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gmacros.h:988:33: note: expanded from macro '_GLIB_GNUC_DO_PRAGMA'
                                ^
<scratch space>:249:6: note: expanded from here
 GCC warning "Not available before " "2" "." "34"
     ^
../../third_party/webrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc:257:5: warning: Not available before 2.34 [-W#pragma-messages]
    g_clear_object(&proxy_);
    ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/gobject/gobject.h:678:36: note: expanded from macro 'g_clear_object'
                                   ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gmem.h:142:3: note: expanded from macro 'g_clear_pointer'
  GLIB_AVAILABLE_MACRO_IN_2_34
  ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gversionmacros.h:473:49: note: expanded from macro 'GLIB_AVAILABLE_MACRO_IN_2_34'
                                                ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gmacros.h:991:41: note: expanded from macro 'GLIB_UNAVAILABLE_MACRO'
                                        ^
../../build/linux/debian_sid_amd64-sysroot/usr/include/glib-2.0/glib/gmacros.h:988:33: note: expanded from macro '_GLIB_GNUC_DO_PRAGMA'
                                ^
<scratch space>:254:6: note: expanded from here
 GCC warning "Not available before " "2" "." "34"
     ^
2 warnings generated.

BUG=chromium:1012850, chromium:1014947
R=tommi@webrtc.org

Change-Id: I0f72e1cd6e9b9311cf2cbd5635e7ad8fe489c350
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156980
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29506}
2019-10-17 09:23:49 +00:00
Niels Möller
04671b0543 Delete unused method PacedSender::QueueSizePackets
Corresponding mock class is deleted rather than updated,
since it appears unused.

Bug: webrtc:8422
Change-Id: If1c6c5ed73abff0d2545e8666c4bb8b63ee5b53f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/13862
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29505}
2019-10-17 08:35:38 +00:00
Erik Språng
7ea9b8082e Set StreamDataCountersCallback on construction of RTP modules
This CL sets the RTP stats callback on construction, by adding a field
next to the other observers in RtpRtcp::Configuration.
We can then remove the RegisterCallback() methods and the unused
GetCallback() method.

Bug: webrtc:11036
Change-Id: I4eb86ea63b4b2ebeff60b311ddf3bed06b279ce4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157169
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29504}
2019-10-17 07:14:18 +00:00
Niels Möller
9429888602 Delete deprecated bytes_sent/bytes_rcvd stat values
Bug: webrtc:10525
Change-Id: Id3c863fc064de97f77a2f25ed9589dae34c266bc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156941
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29503}
2019-10-17 06:41:38 +00:00
Danil Chapovalov
562a37f926 Increase timeout in test-only helper SendTask back to infinity
Some tests on some bots are really slow. Rely on infrastructure timeouts instead.

Bug: None
Change-Id: I8cc3a9c221f80debfb875631ea59f1bfb1d3f6c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157170
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29502}
2019-10-16 18:22:30 +00:00
Patrik Höglund
2bc1ea0b36 Remove the fileutils hack for good.
Or, well, to be fair it still kind of does the same thing, but
the thing it's (void)ing in is a lot more related to what it
actually happening. I could not find another way to solve this
since fileutils is fundamentally optional to unit tests, but the
flag isn't.

Bug: webrtc:9792
Change-Id: I6ebf012246bc259883bc0aaf73ac7fea5525dd1f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157101
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29501}
2019-10-16 13:40:39 +00:00
chromium-webrtc-autoroll
64444bc865 Roll chromium_revision fbf280c2d2..08af487375 (706299:706400)
Change log: fbf280c2d2..08af487375
Full diff: fbf280c2d2..08af487375

Changed dependencies
* src/base: 27a911ca78..d3cd138c79
* src/build: 082f11b299..d3dfde52d0
* src/ios: b5d54be944..ff16082622
* src/testing: 29537de4e5..d149367a8a
* src/third_party: 1f7528c826..943906bccc
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b9fad2fbcc..44806300ad
* src/tools: 18ed58d5b7..b83f18766b
DEPS diff: fbf280c2d2..08af487375/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I80fa3bf33bd7d08105e26817b3fcc7e9418bef6e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157184
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29500}
2019-10-16 12:41:49 +00:00
saza
0bad15f2ed Remove the noise_suppression() pointer to submodule interface
Bug: webrtc:9878
Change-Id: I356afddb56cc1957e9d0415e2723f66e0e4ac522
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137517
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29499}
2019-10-16 11:55:15 +00:00
Per Kjellander
b11c4111f3 Removed unused RTCP methods SendFeedbackPacket and SendNetworkStateEstimate
Bug: webrtc:10742
Change-Id: I179089a7b5ffcfcd93a56c836338872f600599af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157161
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29498}
2019-10-16 09:26:50 +00:00
chromium-webrtc-autoroll
2f4354e903 Roll chromium_revision bdc89d87bf..fbf280c2d2 (706176:706299)
Change log: bdc89d87bf..fbf280c2d2
Full diff: bdc89d87bf..fbf280c2d2

Changed dependencies
* src/base: a11f823e69..27a911ca78
* src/build: 33811bfefc..082f11b299
* src/ios: 32861351b8..b5d54be944
* src/testing: 6805ea7896..29537de4e5
* src/third_party: dff4de38f7..1f7528c826
* src/tools: a617ae5842..18ed58d5b7
DEPS diff: bdc89d87bf..fbf280c2d2/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Ibf4b64f934470ceae7177f4d5e005c8030e5e8e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157180
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29497}
2019-10-16 04:41:52 +00:00
chromium-webrtc-autoroll
2f6e525099 Roll chromium_revision 1c1107d4eb..bdc89d87bf (705985:706176)
Change log: 1c1107d4eb..bdc89d87bf
Full diff: 1c1107d4eb..bdc89d87bf

Changed dependencies
* src/base: e68f6702bc..a11f823e69
* src/build: 7e8bed374d..33811bfefc
* src/ios: cd9d1f8280..32861351b8
* src/testing: c4ec514530..6805ea7896
* src/third_party: 52646691a6..dff4de38f7
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/cc3b617bc9..b9fad2fbcc
* src/third_party/depot_tools: 61d3d4b0bd..ba97f6065e
* src/third_party/libvpx/source/libvpx: b8d86733e9..412547ad4b
* src/third_party/r8: W_6e81yiWSvg-zaPh6Ho1HEnaAi3_tApuT7jChFwtFMC..VYsSPB6QlnJQH-2vJBhK8T6r0mexvbb9klMKwnK22GoC
* src/tools: b3017b4758..a617ae5842
DEPS diff: 1c1107d4eb..bdc89d87bf/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,marpan@webrtc.org, jianj@chromium.org,
BUG=None

Change-Id: I328a5cf9d58217f7a43e581bf0847318ffd2aed5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157142
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29496}
2019-10-15 22:51:36 +00:00
chromium-webrtc-autoroll
af0aa09773 Roll chromium_revision 88a7a88286..1c1107d4eb (705863:705985)
Change log: 88a7a88286..1c1107d4eb
Full diff: 88a7a88286..1c1107d4eb

Changed dependencies
* src/base: 6543ed8605..e68f6702bc
* src/build: c1d5d48a37..7e8bed374d
* src/ios: d693b0917c..cd9d1f8280
* src/testing: 8e0e8296ad..c4ec514530
* src/third_party: 5f87a38abf..52646691a6
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8ea4f73b72..cc3b617bc9
* src/third_party/depot_tools: c6512213a7..61d3d4b0bd
* src/tools: 7476699dca..b3017b4758
DEPS diff: 88a7a88286..1c1107d4eb/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Iac93e0a866fa3b58d9199e955b62552ee9cfcd29
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157120
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#29495}
2019-10-15 16:45:01 +00:00
Danil Chapovalov
82ed5d17dd Replace RtpPacketizerH264::Fragment struct with rtc::ArrayView
Bug: None
Change-Id: Ifd1c8555eeddf8e95fb8ed56b39bbffb916aa292
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157103
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29494}
2019-10-15 16:14:21 +00:00
Florent Castelli
8038541a4f Update the header extensions capabilities with mid, rid and rrid
Video and audio senders are missing mid, rid and rrid extensions in
their GetCapabilities call.

Bug: chromium:1007894
Change-Id: Ie9edba28ae32fda5e501913cac694f43bfb185ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156560
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29493}
2019-10-15 14:45:58 +00:00
Sebastian Jansson
82ed2e852f Cleanup: Propagating BitrateAllocationUpdate to RtpVideoSender
Bug: webrtc:9883
Change-Id: I12d342ecd5eb0cc859123fe31fc759f6f60f7c8b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156940
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29492}
2019-10-15 14:40:48 +00:00
Erik Språng
6841d25d45 Reland "RtpRtcp modules and below: Make media, RTX and FEC SSRCs const"
This is a reland of 17608dc459

Downstream test now fixed.
As a precaution, also avoid DCHECKS for non-zero SSRC.
First patch set is reland, second makes checks more lenient.

Original change's description:
> RtpRtcp modules and below: Make media, RTX and FEC SSRCs const
>
> Downstream usage of SetSsrc() / SetRtxSsrc() should now be gone. Let's
> remove them, make the members const, and remove now unnecessary locking.
>
> Bug: webrtc:10774
> Change-Id: Ie4c1b3935508cf329c5553030f740c565d32e04b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155660
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29475}

Bug: webrtc:10774
Change-Id: I540b49a31a31e98d87f02ae04083d5206e71c1b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157100
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29491}
2019-10-15 14:03:19 +00:00
Sebastian Jansson
f39c815a1d Cleanup: Replacing set extension status bool with CHECK.
This was just checked in all places were it was used, moving the check
into RtpRtcp reduces the boiler plate required at the call sites.

Also changing to always register and unregister extensions by URI to
synchronize the code in AudioSendStream with the code in RtpVideoSender.

This prepares for reducing the scope of ChannelSend.

Bug: webrtc:9883
Change-Id: Ia64d79f20eb98f46cbbbe8318770e4fcf9caa1ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155620
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29490}
2019-10-15 12:55:46 +00:00