Commit graph

2164 commits

Author SHA1 Message Date
Andrey Logvin
435fb9ad06 Remove screen_share_config from the VideoConfig.
After the migration of the pc framework tests (https://webrtc-review.googlesource.com/c/src/+/174023), having "absl::optional<ScreenShareConfig> screen_share_config" field in VideoConfig became redundant. Replaced it with VideoTrackInterface::ContentHint content_hint field.

Bug: webrtc:11534
Change-Id: Ibf4b1c8daed95ef02111fe952171f11e290905d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174702
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31187}
2020-05-08 08:56:13 +00:00
Erik Språng
04e1bab1b3 Replaces OverheadObserver with simple getter.
This interface has a couple of issues. Primarily for me, it makes it
difficult work with the paced sender as we need to either temporarily
release a lock or force a thread-handover in order to avoid a cyclic
lock order.

For video in particular, its behavior is also falky since header sizes
can vary not only form frame to frame, but from packet to packet within
a frame (e.g. TimingInfo extension is only on the last packet, if set).
On bitrate allocation, the last reported value is picked, leading to
timing issues affecting the bitrate set.

This CL removes the callback interface and instead we simply poll the
RTP module for a packet overhead. This consists of an expected overhead
based on which non-volatile header extensions are registered (so for
instance AbsoluteCaptureTime is disregarded since it's only populated
once per second). The overhead estimation is a little less accurate but
instead simpler and deterministic.

Bug: webrtc:10809
Change-Id: I2c3d3fcca6ad35704c4c1b6b9e0a39227aada1ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173704
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31185}
2020-05-07 17:33:45 +00:00
Danil Chapovalov
b63331bb8f Cleanup mocks for Video (en|de)coder factories
In particular remove proxy mocks in favor of lambdas and Return(ByMove(...))

Bug: None
Change-Id: If6b79601437e82a7116479d128d538e965622fab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174701
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31179}
2020-05-07 11:58:50 +00:00
Andrey Logvin
1e83d34fc1 Remove pc level test framework redundant code.
After the migration to passing frame video source implementation directly, part of the peer connection framework code became redundant. Removing screen_share_config and capturing_device_index from the VideoConfig is to be done in later reviews.

Bug: webrtc:11534
Change-Id: I7a8ea85d26d00fb5bfe7ec0d2facef9c44a0f749
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174541
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31178}
2020-05-07 09:23:29 +00:00
Andrey Logvin
42c59525b1 Create default frame generator in the AddVideoConfig method.
Bug: webrtc:11534
Change-Id: I5f8e6009ac48be99180574ab3ac835005f67cf58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174540
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31176}
2020-05-06 21:01:29 +00:00
Marina Ciocea
81be4217b8 Remove FrameTransformerInterface functions using EncodedFrame.
Replaced by the function versions using TransformableFrameInterface
downstream.

Bug: webrtc:11380
Change-Id: Ia4aef84dd76b542ba33287aff6c9151448ed5be6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171864
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31170}
2020-05-06 07:26:44 +00:00
Henrik Boström
a0ff50c031 Reland "Improve outbound-rtp statistics for simulcast"
This reverts commit 9a925c9ce3.

Reason for revert: The original CL is updated in PS #2 to
fix the googRtt issue which was that when the legacy sender
stats were put in "aggregated_senders" we forgot to update
rtt_ms the same way that we do it for "senders".

Original change's description:
> Revert "Improve outbound-rtp statistics for simulcast"
>
> This reverts commit da6cda839d.
>
> Reason for revert: Breaks googRtt in legacy getStats API
>
> Original change's description:
> > Improve outbound-rtp statistics for simulcast
> >
> > Bug: webrtc:9547
> > Change-Id: Iec4eb976aa11ee743805425bedb77dcea7c2c9be
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168120
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Commit-Queue: Eldar Rello <elrello@microsoft.com>
> > Cr-Commit-Position: refs/heads/master@{#31097}
>
> TBR=hbos@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org,hta@webrtc.org,elrello@microsoft.com
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: webrtc:9547
> Change-Id: I06673328c2a5293a7eef03b3aaf2ded9d13df1b3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174443
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31165}

TBR=hbos@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org,hta@webrtc.org,elrello@microsoft.com

# Not skipping CQ checks because this is a reland.

Bug: webrtc:9547
Change-Id: I723744c496c3c65f95ab6a8940862c8b9f544338
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174480
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31169}
2020-05-05 20:22:19 +00:00
Tim Na
c0df5fc25b VoIP API implementation on top of AudioIngress/Egress
This is one last CL that includes the rest of VoIP API implementation.

Bug: webrtc:11251
Change-Id: I3f1b0bf2fd48be864ffc73482105f9514f75f9e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173860
Commit-Queue: Tim Na <natim@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31168}
2020-05-05 19:55:29 +00:00
Andrey Logvin
c064467b32 Pass frame generator to the AddVideoConfig method in the pc framework tests.
Bug: webrtc:11534
Change-Id: Id68feca50611f412897ddef3d43b811a224b200f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174023
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31167}
2020-05-05 17:20:25 +00:00
Henrik Boström
9a925c9ce3 Revert "Improve outbound-rtp statistics for simulcast"
This reverts commit da6cda839d.

Reason for revert: Breaks googRtt in legacy getStats API

Original change's description:
> Improve outbound-rtp statistics for simulcast
> 
> Bug: webrtc:9547
> Change-Id: Iec4eb976aa11ee743805425bedb77dcea7c2c9be
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168120
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Eldar Rello <elrello@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#31097}

TBR=hbos@webrtc.org,sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org,hta@webrtc.org,elrello@microsoft.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:9547
Change-Id: I06673328c2a5293a7eef03b3aaf2ded9d13df1b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174443
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31165}
2020-05-05 13:38:51 +00:00
Niels Möller
49f574b3b3 Delete EncodedImage methods buffer(), set_buffer() and mutable_data()
Bug: webrtc:9378
Change-Id: Iab21fe537f03a5cd130d8435cd94520952e693a9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168494
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31164}
2020-05-05 09:11:40 +00:00
Andrey Logvin
dad6a940e1 Add helper frame generator factories for the pc framework tests.
Bug: webrtc:11534
Change-Id: I569fb9e78aa38f0a17f4e4a261dd93c4b8ba9ca0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174340
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31162}
2020-05-04 18:56:22 +00:00
Artem Titov
b5a013815f Rename done() into condition(), because it is actually condition in TimeController API
Bug: None
Change-Id: Ia3a742d1d2ad1238223f4da7ae843a8d22108ec5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174060
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31144}
2020-04-29 10:29:09 +00:00
Hua, Chunbo
b261118156 Fix a typo for decoder naming
Bug: None
Change-Id: I1e1e7fe1d3efb6e7f302d7633673418b5de7212c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173940
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31135}
2020-04-27 08:03:47 +00:00
Ali Tofigh
90ecee1ed9 Make AudioEncoder::GetFrameLengthRange() pure virtual.
In order for WebRTC to be able to include packet overhead in its
bitrate calculations, the AudioEncoder::GetFrameLengthRange()
function must be implemented by all audio encoders. Making this
member function pure virtual as per the following PSA:

https://groups.google.com/forum/#!topic/discuss-webrtc/qscwYr38je0

Bug: webrtc:11427
Change-Id: I30d297ef05f57453bfc257624729559057cad118
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171517
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31127}
2020-04-24 09:22:57 +00:00
Eldar Rello
cda577fd59 Enable simulcast statistics
Bug: webrtc:9547
Change-Id: I8b2920dacfac0085449a797f2831b86e2e5e65b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173749
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Eldar Rello <elrello@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#31126}
2020-04-24 08:32:13 +00:00
Danil Chapovalov
e110a44628 Delete uri for the Generic Frame Descriptor v1
Bug: webrtc:11358
Change-Id: I0c3c3a7f682f172b92dcdcbc6c13d353e1e48ada
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173747
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31124}
2020-04-23 12:44:03 +00:00
Eldar Rello
da6cda839d Improve outbound-rtp statistics for simulcast
Bug: webrtc:9547
Change-Id: Iec4eb976aa11ee743805425bedb77dcea7c2c9be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168120
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Eldar Rello <elrello@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#31097}
2020-04-17 11:28:00 +00:00
Evan Shrubsole
ce0a11d5f9 Unify AdaptationReason and AdaptReason enums.
Moves the unified AdaptationReason to the api/ folder.

Bug: webrtc:11392
Change-Id: I28782e82ef6cc3ca3b061f65b0bbdc3766df1f9c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/172583
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31084}
2020-04-16 13:33:49 +00:00
Evan Shrubsole
dff792591f Remove VideoStreamEncoderObserver::AdaptationReason::kNone
Replaces this with 2 methods instead, adding clarity.

ClearAdaptationStats
- Resets the adaptations statistics to 0. This is done,
when the degredation is reset, for example when the preference
is changed to/from BALANCED.

UpdateAdaptationMaskingSettings
- Updates the settings for adaptation statistics reporting.
This way we don't report quality adaptations if quality scaling
is not enabled (same for resolution/fps scaling).

The adaptation counting inside the SendStatisticsProxy is
now done in a struct that counts the totals, and then masks
out these counts based on the adaptation settings. The
MaskedAdaptationSteps uses optionals to hide the values we
shoudn't report, while the AdaptationSteps always hold the real
totals.

All tests have been updated to use the Reset/Clear method as needed.

Now that AdaptationCounters and AdaptSteps use the same structure,
AdaptationCounters was moved to api/video and replaces AdaptSteps.

The AdaptReason enum is also redundant now, and will be removed
in a follow-up CL.

R=hbos@webrtc.org

Bug: webrtc:11392
Change-Id: Iaed6488581325d341a056b5bbf76a01c19d6c282
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171685
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#31083}
2020-04-16 13:27:50 +00:00
Mirko Bonadei
f0684b5a8a Remove NetEq::InsertPacket deprecated method.
Bug: webrtc:10198
Change-Id: Ia789524c459982705a5d0fc92b216e0b5a084952
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173463
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31069}
2020-04-14 18:07:47 +00:00
Mirko Bonadei
cc34441554 Remove deprecated RtpPacketInfo::RtpPacketInfo.
Bug: webrtc:10739
Change-Id: Iceda881ffa0645d8e1519c2b1a62c840ffa6a93f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173468
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31060}
2020-04-14 10:59:44 +00:00
Marina Ciocea
fdabfbc334 [InsertableStreams] Pass ssrc on TransformedFrameCallback registration.
Add new methods in the FrameTransformerInterfaces, passing the ssrc on
registering the transformed frame callback, to associate separate frame
transformer sinks for each ssrc. Same for unregister.

Bug: chromium:1065838
Change-Id: I8a406815e9d0cce5199f9df06c286d8b10d75b4d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173183
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31047}
2020-04-10 18:00:26 +00:00
Per Åhgren
e156287855 AEC3: Remove deprecated parameter
Bug: webrtc:8671
Change-Id: Ia9bcfef9d626729b79fdcce5e8df82bf020dc9af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173321
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31042}
2020-04-09 12:25:05 +00:00
Per Åhgren
8b844f21e1 AEC3: Remove parameters for the legacy filter naming
Bug: webrtc:8671
Change-Id: Ia5f8e33b9646e2b922428a72364cbbca47091579
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173092
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31030}
2020-04-08 07:34:08 +00:00
Evan Shrubsole
c70b1028d4 Move AdaptationCounters from video/ to api/
- Rename AdaptationCounters to VideoAdaptationCounters
- Move VideoAdaptationCounters to the api/ folder
- Move related tests to api/test/ folder
- Remove VideoAdaptationCounters::operator-

Bug: webrtc:11392
Change-Id: I0de2537e9c8dd9cf29a2ecceee00f92a5b155c83
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/172920
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31006}
2020-04-06 13:27:28 +00:00
Mirko Bonadei
06d3559b79 Replace std::string::find() == 0 with absl::StartsWith (part 2).
This CL has been generated using clang-tidy [1] except for changes to
BUILD.gn files.

[1] - https://clang.llvm.org/extra/clang-tidy/checks/abseil-string-find-startswith.html

Bug: None
Change-Id: Ibf75601065a53bde28623b8eef57bec067235640
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/172586
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30984}
2020-04-02 14:38:30 +00:00
Ilya Nikolaevskiy
93be66cdaa Calculate video padding for vp9 in the same way as for vp8
Bug: webrtc:11476
Change-Id: I8d7b5aac91868e10061605cc5043226ee916cc09
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/172722
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30982}
2020-04-02 13:49:10 +00:00
Marina Ciocea
486232025b Transform received audio frames in ChannelReceive.
This change is part of the implementation of the Insertable Streams Web
API: https://github.com/alvestrand/webrtc-media-streams/blob/master/explainer.md

Design doc for WebRTC library changes:
http://doc/1eiLkjNUkRy2FssCPLUp6eH08BZuXXoHfbbBP1ZN7EVk

Bug: webrtc:11380
No-Try: True
Change-Id: I1a7ef9fd8130936176b5a4f78ad835cba52666d0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171873
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30961}
2020-04-01 11:23:00 +00:00
Marina Ciocea
c24b6b7815 Introduce TransformableFrameInterface.
Add a new frame interface to be used by frame transformers in Insertable
Streams. TransformableFrameInterface will replace
video_coding::EncodedFrame in a follow up CL, once downstream
dependecies are updated to use the new interface.

Until the functions using video_coding::EncodedFrame are removed from
the API, the video sender and receiver frame transformer delegates call
both function versions to avoid breaking tests downstream.

The TransformableFrameInterface will be used for both audio and video
frame transformers in follow-up CLs.

Bug: webrtc:11380
Change-Id: I9389a8549c156e13b1d8c938ff51eaa69c502f33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171863
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30941}
2020-03-30 13:35:26 +00:00
Johannes Kron
3e98368ec5 Reland "Distinguish between send and receive codecs"
This reverts commit 8e8b36a94a.

Reason for revert: The CL has been improved with the following changes,
  - Fixed negotiation of send/receive only clients.
  - Handles the implicit assumption that any H264 decoder also can
    decode H264 constraint baseline.

Original change's description:
> Distinguish between send and receive codecs
>
> Even though send and receive codecs may be the same, they might have
> different support in HW. Distinguish between send and receive codecs
> to be able to keep track of which codecs have HW support.
>
> Bug: chromium:1029737
> Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30284}

Change-Id: I834ed48ee78d04922c73e2836165e476925e1cc5
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168605
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30932}
2020-03-29 21:03:27 +00:00
Taylor Brandstetter
fb4351b085 Enforce "comprehension-required" STUN rules.
If a STUN attribute is in the "comprehension-required" range
(0x0000-0x7FFF), and the implementation does not recognize it, this
should be treated as an error (as per RFC5389), with different behavior
depending on the type of the message received.

Bug: webrtc:9063
Change-Id: Ic31b0cdd3c26772c21d770b44fe4ee4a1b47030a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/64500
Commit-Queue: Taylor <deadbeef@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30925}
2020-03-28 02:07:49 +00:00
Danil Chapovalov
2b4ec9e667 in RtpExtension constructors pass strings by string_view rather than by value
To allow construct that object from an existent string_view without explicit conversion

Bug: webrtc:11428
Change-Id: I38d93573be72e307bdf7068a6300d10cf46d2d62
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171689
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30904}
2020-03-26 14:32:45 +00:00
Danil Chapovalov
418cfee167 Make all RtpExtension uris constexpr rather than just const
while at it removed unused deprecated kGenericFrameDescriptorUri
and slightly reorded extensions for better grouping.

Bug: webrtc:7472
Change-Id: I42c03d5f20798ec9148b5085d57953ff3633e055
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168541
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30883}
2020-03-25 14:13:19 +00:00
Artem Titov
d19513f3ff Move calculation of target_encode_bitrate to DefaultVideoQualityAnalyzer
To migrate on new GetStats API and properly support target encode bitrate
for regular, simulcast and svc cases we need to calculate it inside video
quality analyzer getting values from SetRates in VideoEncoder.

Bug: webrtc:11381
Change-Id: Ia37acac764ed3c30f64cdbfda8906d543fa03ae2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171501
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30881}
2020-03-25 11:38:47 +00:00
Per Åhgren
a388b75223 AEC3: Added parametrization of the comfort noise floor
Bug: webrtc:8671
Change-Id: I2431b1dd8dbe35fc8742c0640c3b35166e8ef6b7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171480
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30876}
2020-03-25 08:56:17 +00:00
Ivo Creusen
26d52e1ba0 Add optional output audio file to NetEq simulation API
Bug: webrtc:10337
Change-Id: I2e9071d4d2bd4b181d198031cf459965c9682775
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171518
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30873}
2020-03-24 16:31:08 +00:00
Karl Wiberg
30853ae748 Add new people to api/OWNERS
Bug: None
Notry: True
Change-Id: Ic80efbec92ba9545ce4905abe3fb33f145d5b0c1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171504
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30871}
2020-03-24 15:14:09 +00:00
Taylor Brandstetter
e3a294c2d6 Expose bitrate_priority and network_priority in Android API.
BUG=webrtc:5658

Change-Id: Ie4fcad0a379bed17c41efffde044fa51f51a14b1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168360
Commit-Queue: Taylor <deadbeef@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30861}
2020-03-24 00:10:56 +00:00
Per Åhgren
9d66198d35 AEC3: Rename shadow filter
This CL renames the shadow filter in AEC3 to have the more accurate name
coarse filter.

The CL consists of 3 main initial patch sets, designed to simplify
the review:
1) Replaces "shadow" with "coarse" and adds a fall-back functionality
to support the old filter naming.
2) Renames the files according to the new naming.
3) Performs a "git cl format"

Bug: webrtc:8671
Change-Id: I28d6041d0d34e85f8f8048d004b44a1a5f07bb07
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170981
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30846}
2020-03-20 15:26:14 +00:00
Markus Handell
dfeb0dff73 RtpParameters: respect https://abseil.io/tips/1.
This CL replaces a few usages of const std::string& with
absl::string_view, to comply closer with
https://abseil.io/tips/1.

Bug: webrtc:11428
Change-Id: Ibf6fac9b084cb21e17db63f73d667793ab9cafeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170466
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30845}
2020-03-20 14:27:02 +00:00
Per Åhgren
ff0451117e AEC3: Rename main filter
This CL renames the main filter in AEC3 to have the more accurate name
refined filter.

The CL consists of 3 main initial patch sets, designed to simplify
the review:
1) Replaces "main" with "refined" and adds a fall-back functionality
to support the old filter naming.
2) Renames the files according to the new naming.
3) Performs a "git cl format"

Bug: webrtc:8671
Change-Id: Ifd0aab34e291736a2250e0986348404618630b1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170825
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30843}
2020-03-20 13:25:01 +00:00
Johannes Kron
570330361a Add fallback histograms for VideoDecoderSoftwareFallbackWrapper
Track the number of samples that are decoded until a fallback to
software decoder happens.

Bug: chromium:1061376
Change-Id: Ida3ae94034ec83a6d28001cb7be343b8b99b99c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170468
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30814}
2020-03-17 14:55:24 +00:00
Sebastian Jansson
89eb0bba0c Adds UpdateConfig to SimulatedNetwork
Bug: webrtc:9510
Change-Id: Ied0e5ff291021ba4f539eee9820b8490a7004882
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170462
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30803}
2020-03-16 15:58:43 +00:00
Markus Handell
0357b3e7b6 RtpTransceiverInterface: add header_extensions_to_offer()
This change adds exposure of a new transceiver method for getting
the total set of supported extensions stored as an attribute,
and their direction. If the direction is kStopped, the extension
is not signalled in Unified Plan SDP negotiation.

Note: SDP negotiation is not modified by this change.

Changes:
- RtpHeaderExtensionCapability gets a new RtpTransceiverDirection,
  indicating either kStopped (extension available but not signalled),
  or other (extension signalled).
- RtpTransceiver gets the new method as described above. The
  default value of the attribute comes from the voice and video
  engines as before.

https://chromestatus.com/feature/5680189201711104.
go/rtp-header-extension-ip
Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/65YdUi02yZk

Bug: chromium:1051821
Change-Id: I440443b474db5b1cfe8c6b25b6c10a3ff9c21a8c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170235
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30800}
2020-03-16 13:16:42 +00:00
Artem Titov
e618cc9c1e Add jitterBufferTargetDelay as RTCNonStandardStatsMember to new GetStats API
Bug: webrtc:11381
Change-Id: I7df3450e50da49d178e1e3a5d9f4970672d91aac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169120
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30758}
2020-03-11 12:08:32 +00:00
Markus Handell
45c104b4fd RtpTransceiver: add kStopped enumeration value.
This change introduces a new kStopped enumeration value to
RtpTransceiverDirection, preparing for later CLs which
implement RTP header extension control,
https://chromestatus.com/feature/5680189201711104.

The new enumeration value is unused in the code.

Intent to prototype: https://groups.google.com/a/chromium.org/g/blink-dev/c/65YdUi02yZk

Bug: chromium:980879
Change-Id: Id8cab9891236884542689fbf1b300e64a2cb636d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170050
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30756}
2020-03-11 11:19:51 +00:00
Henrik Boström
62057627ef [Adaptation] Rename and move resource adaptation module/processor stuff.
Rename:
- call/adaptation/resource_adaptation_module_interface.[h/cc] -->
  call/adaptation/resource_adaptation_processor_interface.[h/cc]
- call/adaptation/resource_adaptation_processor.[h/cc] -->
  call/adaptation/new_resource_adaptation_processor_poc.[h/cc]

Move + Rename:
- video/overuse_frame_detector_resource_adaptation_module.[h/cc] -->
  video/adaptation/resource_adaptation_processor.[h/cc]

Move:
- video/encode_usage_resource.[h/cc] --> video/adaptation/...
- video/overuse_frame_detector.[h/cc] --> video/adaptation/...
- video/quality_scaler_resource.[h/cc] --> video/adaptation/...

Unittests are also moved. In order to avoid a circular dependency,
VideoStreamEncoder::kDefaultLastFrameInfo[Width/Height] is moved and
renamed to kDefaultInputPixels[Width/Height] in
video/adaptation/resource_adaptation_processor.[h/cc].

Bug: webrtc:11222
Change-Id: Icf920e8a7362002b1c63c42b2d9e2e63c990b532
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170117
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30754}
2020-03-11 09:30:16 +00:00
Danil Chapovalov
59f3b71c04 Automate conversion from c++ VideoCodeType to java VideoCodecType
Bug: b/148146536
Change-Id: I030c7c6c2a1a9d002bcc60f45c8d6025bd0935b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167301
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30751}
2020-03-11 08:02:36 +00:00
Ilya Nikolaevskiy
eac08bfe23 Reland "Wire up internal libvpx VP9 scaler to statistics proxy"
This reverts commit a2cb93d8b9.

Reason for revert: Reland with no changes after downstream projects are
updated.

Original change's description:
> Revert "Wire up internal libvpx VP9 scaler to statistics proxy"
> 
> This reverts commit 50327a5100.
> 
> Reason for revert: Breaks downstream tests
> 
> Original change's description:
> > Wire up internal libvpx VP9 scaler to statistics proxy
> > 
> > Bug: webrtc:11396
> > Change-Id: I5ac69208b00cc75d4e5dbb3ab86f234b3e1f29f8
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169922
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Henrik Boström <hbos@webrtc.org>
> > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30725}
> 
> TBR=ilnik@webrtc.org,hbos@webrtc.org,nisse@webrtc.org
> 
> Change-Id: I53dcb41bdf8f8dccfcd43b717509ec047f590648
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:11396
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170102
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30734}

TBR=ilnik@webrtc.org,hbos@webrtc.org,nisse@webrtc.org,srte@webrtc.org

Change-Id: Ie47df4aec199701256c1dba8fa64176683becabc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11396
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170105
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30738}
2020-03-10 11:15:51 +00:00
Sebastian Jansson
a2cb93d8b9 Revert "Wire up internal libvpx VP9 scaler to statistics proxy"
This reverts commit 50327a5100.

Reason for revert: Breaks downstream tests

Original change's description:
> Wire up internal libvpx VP9 scaler to statistics proxy
> 
> Bug: webrtc:11396
> Change-Id: I5ac69208b00cc75d4e5dbb3ab86f234b3e1f29f8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169922
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30725}

TBR=ilnik@webrtc.org,hbos@webrtc.org,nisse@webrtc.org

Change-Id: I53dcb41bdf8f8dccfcd43b717509ec047f590648
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11396
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170102
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30734}
2020-03-10 08:09:50 +00:00
Minyue Li
21bccae341 Add NtpTimeMs as a method in EncodedImage.
Bug: b/151082828
Change-Id: Idaa6848f952f9cc9458899680d19ddf338a3ace1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170044
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30729}
2020-03-09 17:00:09 +00:00
Patrik Höglund
afa2e5f18c Purge phoglund from most OWNERS files.
I'll hold on to the root OWNER for a bit longer for convenience.

Bug: None
Change-Id: I13303ba726fed612adc74008eeaaeadf9595e084
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170047
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30727}
2020-03-09 14:08:30 +00:00
Ilya Nikolaevskiy
50327a5100 Wire up internal libvpx VP9 scaler to statistics proxy
Bug: webrtc:11396
Change-Id: I5ac69208b00cc75d4e5dbb3ab86f234b3e1f29f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169922
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30725}
2020-03-09 13:47:25 +00:00
Henrik Boström
b0f2e0ced4 [Overuse] Make VideoStreamAdapter responsible for executing adaptation.
This CL moves GetAdaptUpTarget(), GetAdaptDownTarget() and
ApplyAdaptationTarget() - and related code - to the VideoStreamAdapter.

This includes pieces related to calculating how to adapt, including:
- DegradationPreference
- BalancedDegradationPreference
- AdaptationRequest and last_adaptation_request_
- CanAdaptUpResolution()

The VideoStreamAdapter's interface has changed: VideoSourceRestrictor
methods are now hidden in favor of methods exposing AdaptationTarget.

This CL also does some misc moves:
- GetEncoderBitrateLimits is moved and renamed to
  VideoEncoder::EncoderInfo::GetEncoderBitrateLimitsForResolution.
- EncoderSettings moved to a separate file.

// For api/video_codecs/video_encoder.[cc/h] changes, which is the
// moving of a function.
TBR=sprang@webrtc.org

Bug: webrtc:11393
Change-Id: Ie6bd8ef644ce927d7eca6ab90a0a7bcace682f3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169842
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30708}
2020-03-06 13:35:20 +00:00
Minyue Li
74dadc1e8e Ready to support of absolute capture timestamp header extension.
This does not add it in default SDP offer.

Bug: webrtc:10739
Change-Id: I4e73f4497989fc34f3676927921a4dabb5926096
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169729
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30707}
2020-03-06 13:16:29 +00:00
Björn Terelius
987ef48258 Adds field trial to separate audio and video packets for delay-based overuse detection.
The decision to route audio packets to a separate overuse detector
is off by default and requires the field trial
WebRTC-Bwe-SeparateAudioPackets/enabled,packet_threshold:10,time_threshold:1000ms/
The parameters control the threshold for switching over to the
audio overuse detector if we stop receiving feedback for video.

Bug: webrtc:10932
Change-Id: Icdde35bc7a98b18b1a344bd2d620a890fd9421d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168342
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30694}
2020-03-05 16:29:55 +00:00
Florent Castelli
b05ca4b616 Implement new specification for degradation preference
The degradation preference is now based on the content hint of the track
if it's unspecified.

Bug: webrtc:11164
Change-Id: Iaa0dbf1c1bf68a46fc5131e534d423c30c5439c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161233
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30691}
2020-03-05 14:24:25 +00:00
Taylor Brandstetter
3f1aee3cbb Change network_priority from a double to an enum.
It can only be one of four possible values, so it never made sense
for it to be a double. Other than the fact that its neighbor
bitrate_priority is a double, and they're both defined as the same enum
in the web spec. However, while bitrate_priority being a double
offers more flexibility than the web spec, network_priority being a
double is only confusing.

Bug: webrtc:5658
Change-Id: I0784c116f3260c4b3a8b99a3cd85c8d66017e46f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168840
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Taylor <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30685}
2020-03-05 05:42:15 +00:00
Tim Na
ccefde95b3 VoIP interfaces API enhancement (continuation of 169000)
Bug: webrtc:11251
Change-Id: Iecde33b86856b14db5abade3301a842d5007568d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169034
Commit-Queue: Tim Na <natim@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30675}
2020-03-03 18:19:54 +00:00
Sebastian Jansson
db5d7e470f Cleanup: Use common IP overhead definitions in test and prod code
This avoid duplication. As part of this moving the overhead calculation
to the IP address class so it's easier to find and more natural to use.

Bug: webrtc:9883
Change-Id: If4d865f445bc1a302572896932966ce30294e339
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169445
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30657}
2020-03-02 11:36:58 +00:00
Harald Alvestrand
61f74d91f8 Reland "Expose can_trickle_ice_candidates on PeerConnection"
This reverts commit cb8c40138c.

Reason for revert: Added missing default.

Original change's description:
> Revert "Expose can_trickle_ice_candidates on PeerConnection"
>
> This reverts commit c6a65c8866.
>
> Reason for revert: Breaks downstream due to missing default
>
> Original change's description:
> > Expose can_trickle_ice_candidates on PeerConnection
> >
> > Bug: chromium:708484
> > Change-Id: I9a40e75066341f0d9f965bd3718bfcb3f0459533
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169450
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Taylor <deadbeef@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30653}
>
> TBR=deadbeef@webrtc.org,hta@webrtc.org
>
> Change-Id: Iaa5b977c4237715a8a5127cf167cf6512a3f7059
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:708484
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169540
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30655}

TBR=deadbeef@webrtc.org,hta@webrtc.org

Change-Id: I608da7781f158b4b02dd226d4dcd5615c4935fa8
Bug: chromium:708484
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169541
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30656}
2020-03-02 11:35:53 +00:00
Harald Alvestrand
cb8c40138c Revert "Expose can_trickle_ice_candidates on PeerConnection"
This reverts commit c6a65c8866.

Reason for revert: Breaks downstream due to missing default

Original change's description:
> Expose can_trickle_ice_candidates on PeerConnection
> 
> Bug: chromium:708484
> Change-Id: I9a40e75066341f0d9f965bd3718bfcb3f0459533
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169450
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Taylor <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30653}

TBR=deadbeef@webrtc.org,hta@webrtc.org

Change-Id: Iaa5b977c4237715a8a5127cf167cf6512a3f7059
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:708484
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169540
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30655}
2020-03-02 10:14:14 +00:00
Marina Ciocea
412a31bbf8 Insert frame transformer between Depacketizer and Decoder.
Add a new API in RTReceiverInterface, to be called from the browser side
to insert a frame transformer between the Depacketizer and the Decoder.

The frame transformer is passed from RTReceiverInterface through the
library to be eventually set in RtpVideoStreamReceiver, where the frame
transformation will occur in the follow-up CL
https://webrtc-review.googlesource.com/c/src/+/169130.

This change is part of the implementation of the Insertable Streams Web
API: https://github.com/alvestrand/webrtc-media-streams/blob/master/explainer.md

Design doc for WebRTC library changes:
http://doc/1eiLkjNUkRy2FssCPLUp6eH08BZuXXoHfbbBP1ZN7EVk

Bug: webrtc:11380
Change-Id: I6b73cd16e3907e8b7709b852d6a2540ee11b4fed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169129
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30654}
2020-03-02 08:33:44 +00:00
Harald Alvestrand
c6a65c8866 Expose can_trickle_ice_candidates on PeerConnection
Bug: chromium:708484
Change-Id: I9a40e75066341f0d9f965bd3718bfcb3f0459533
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169450
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Taylor <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30653}
2020-03-02 05:19:16 +00:00
Karl Wiberg
ff61f3a555 Fix + test copying of fixed-sized ArrayView rvalues
Previously, only lvalues were tested, and only lvalues worked.

Bug: webrtc:11389
Change-Id: I524e9d63e0840c3ba274dbe2062d78f72d79019d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169347
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30644}
2020-02-28 09:26:11 +00:00
Marina Ciocea
e77912ba8c Insert frame transformer between Encoded and Packetizer.
Add a new API in RTPSenderInterface, to be called from the browser side
to insert a frame transformer between the Encoded and the Packetizer.

The frame transformer is passed from RTPSenderInterface through the
library to be eventually set in RTPSenderVideo, where the frame
transformation will occur in the follow-up CL
https://webrtc-review.googlesource.com/c/src/+/169128.

Insertable Streams Web API explainer:
https://github.com/alvestrand/webrtc-media-streams/blob/master/explainer.md

Design doc for WebRTC library changes:
http://doc/1eiLkjNUkRy2FssCPLUp6eH08BZuXXoHfbbBP1ZN7EVk

Bug: webrtc:11380
Change-Id: I46cd0d8a798c2736c837e90cbf90d8901c7d27fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169127
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30642}
2020-02-28 07:43:13 +00:00
Karl Wiberg
c62e4c5dc7 Test copying of variable-sized ArrayView rvalues
Previously, only lvalues were tested.

Bug: webrtc:11389
Change-Id: I4067c8bfc40c52de0622a6f58a5c7b7805b0fa7b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169346
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30641}
2020-02-28 07:27:33 +00:00
Marina Ciocea
e3e07bf979 Introduce frame transformer interfaces for Insertable Streams Web API.
Define FrameTransformerInterface for transforming encoded frames, and
TransformedFrameCallback for receiving transformed frames.

The FrameTransformerInterface will be implemented on the browser side,
and will be set in WebRTC sender and receiver in follow up CLs:
- Sender: https://webrtc-review.googlesource.com/c/src/+/169127
- Receiver: https://webrtc-review.googlesource.com/c/src/+/169129/1

Insertable Streams Web API explainer:
https://github.com/alvestrand/webrtc-media-streams/blob/master/explainer.md

Design doc for WebRTC library changes:
http://doc/1eiLkjNUkRy2FssCPLUp6eH08BZuXXoHfbbBP1ZN7EVk

Bug: webrtc:11380
Change-Id: Icf8ff159feb604f006e18157660f13d300a08b2b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169126
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30637}
2020-02-27 20:41:59 +00:00
Artem Titov
4a6f81829b Add ability to enable AV sync in PC level tests
Bug: webrtc:11381
Change-Id: I223ff0a2b81632ee7cbbac5b722bb6a7d5f72f7e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168959
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30629}
2020-02-27 14:22:23 +00:00
Mirta Dvornicic
4f34d78c85 Report available instead of encoding bitrate to VideoEncoderSelector.
The encoding bitrate might be limited depending on the current encoder.

Bug: webrtc:11341
Change-Id: I734fce12734b1e703e7948847cdb1365c08a137b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169123
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Mirta Dvornicic <mirtad@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30619}
2020-02-26 15:56:36 +00:00
Taylor Brandstetter
a6db9c8fe9 Rename NetworkPriority to just Priority
This matches the web API more, since the equivalent type there is named
RTCPriorityType.

Bug: webrtc:5658
Change-Id: I301fed8319f7e582b558fe7cd0deee1290708c4c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169040
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Taylor <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30613}
2020-02-25 22:25:20 +00:00
Taylor Brandstetter
0165d5c32c Adding deadbeef back to OWNERS files
Specifically api, pc and p2p.

Bug: None
Change-Id: I2ba19aaac5ca11a5282593f0db06bba326fe6891
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169041
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30609}
2020-02-25 14:45:04 +00:00
Tim Na
c63bf10790 VoIP interface headers in api/voip directory. This separates the implementation that will come in audio/voip.
Bug: webrtc:11251
Change-Id: I26b6915d3ad6bb5a50f9898a6866889867fd53f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/169000
Commit-Queue: Tim Na <natim@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30594}
2020-02-24 15:23:19 +00:00
Danil Chapovalov
1db70d5c7b Reland "Delete legacy DataSize and DataRate factories"
This reverts commit 74c5b0ac23.

Reason for revert: downstream code adjusted

Original change's description:
> Revert "Delete legacy DataSize and DataRate factories"
>
> This reverts commit 70490aa3a0.
>
> Reason for revert: Breaks downstream project.
>
> Original change's description:
> > Delete legacy DataSize and DataRate factories
> >
> > Bug: webrtc:9709
> > Change-Id: Ia9464893ec9868c51d72eedaee8efc82b0c17b28
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168722
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30564}
>
> TBR=danilchap@webrtc.org,srte@webrtc.org
>
> Change-Id: I3f5a8b4ec473bd2af80ca3acfe0e9c82f25a12ba
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9709
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168940
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30574}

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

Change-Id: If05a6b2aa3d4c50caac52f50c13ba56c1e2c810d
Bug: webrtc:9709
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168960
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30589}
2020-02-24 09:50:35 +00:00
Harald Alvestrand
11146cdfea Reland "Remove old-style OnFailure callbacks"
This is a reland of 1a290e4495
after fixing the downstream projects.

Original change's description:
> Remove old-style OnFailure callbacks
>
> Also delete default implementation of new-style OnFailure,
> since it can't call the deprecated function.
>
> Deprecating the old-style OnFailure callback turned out to be impossible,
> since one can't have the new-style callback call the old-style one.
>
> Bug: chromium:589455
> Change-Id: Icf529ddb02d99ad9e205095d5a1fbeb0da91dd0e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146219
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30570}

Bug: chromium:589455
Change-Id: I7227e3c6886c504043b019b621e45658cbd6fd53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168941
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30583}
2020-02-21 14:07:57 +00:00
Mirko Bonadei
74c5b0ac23 Revert "Delete legacy DataSize and DataRate factories"
This reverts commit 70490aa3a0.

Reason for revert: Breaks downstream project.

Original change's description:
> Delete legacy DataSize and DataRate factories
> 
> Bug: webrtc:9709
> Change-Id: Ia9464893ec9868c51d72eedaee8efc82b0c17b28
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168722
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30564}

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

Change-Id: I3f5a8b4ec473bd2af80ca3acfe0e9c82f25a12ba
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9709
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168940
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30574}
2020-02-20 14:42:26 +00:00
Mirko Bonadei
4805a480fe Revert "Remove old-style OnFailure callbacks"
This reverts commit 1a290e4495.

Reason for revert: Breaks downstream project.

Original change's description:
> Remove old-style OnFailure callbacks
> 
> Also delete default implementation of new-style OnFailure,
> since it can't call the deprecated function.
> 
> Deprecating the old-style OnFailure callback turned out to be impossible,
> since one can't have the new-style callback call the old-style one.
> 
> Bug: chromium:589455
> Change-Id: Icf529ddb02d99ad9e205095d5a1fbeb0da91dd0e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146219
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30570}

TBR=steveanton@webrtc.org,kwiberg@webrtc.org,hta@webrtc.org

Change-Id: Ibc46b7a7294fb906f848e4528a85c09cbb62b913
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:589455
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168920
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30573}
2020-02-20 14:39:36 +00:00
Harald Alvestrand
1a290e4495 Remove old-style OnFailure callbacks
Also delete default implementation of new-style OnFailure,
since it can't call the deprecated function.

Deprecating the old-style OnFailure callback turned out to be impossible,
since one can't have the new-style callback call the old-style one.

Bug: chromium:589455
Change-Id: Icf529ddb02d99ad9e205095d5a1fbeb0da91dd0e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146219
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30570}
2020-02-20 13:21:54 +00:00
Danil Chapovalov
70490aa3a0 Delete legacy DataSize and DataRate factories
Bug: webrtc:9709
Change-Id: Ia9464893ec9868c51d72eedaee8efc82b0c17b28
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168722
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30564}
2020-02-20 09:35:48 +00:00
Mirko Bonadei
4a14f4997c Remove wildcard ownership for build files.
No-Try: True
Bug: webrtc:10381
Change-Id: I852d9a2da7e0c5c12f508a1c788b0b5753503aba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168769
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30558}
2020-02-19 14:05:46 +00:00
Mirko Bonadei
e52115a33e Remove inactive OWNERS.
No-Try: True
Bug: webrtc:10381
Change-Id: I3b56c74d913a47e4297518005b0cb19de8fafbff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168421
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30556}
2020-02-19 13:37:36 +00:00
Taylor Brandstetter
567f03f7a0 Add constants for allowed network_priority values
After chromium switches to using these, they'll be changed to an enum.

Bug: webrtc:5658
Change-Id: Ic5d7d4651d204c31822194bd02c587e5b887ee17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168562
Commit-Queue: Taylor <deadbeef@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30551}
2020-02-18 22:52:45 +00:00
Minyue Li
dea73ee8f9 Pass absolute capture time from WebRtcVoiceEngine to ACM.
Bug: webrtc:10739
Change-Id: I6f264cb89ce340db642db3ef7dfc2b5d459f749e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167211
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Chen Xing <chxg@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30547}
2020-02-18 16:54:48 +00:00
Danil Chapovalov
2272f20a0a Allow sending DependencyDescriptor rtp header extension in call
Bug: webrtc:10342
Change-Id: I8ccbc7381fc8ac436066f5b817fa32180fc8603e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168542
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30546}
2020-02-18 16:50:28 +00:00
Danil Chapovalov
cad3e0e2fa Replace DataSize and DataRate factories with newer versions
This is search and replace change:
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/DataSize::Bytes<\(.*\)>()/DataSize::Bytes(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/DataSize::bytes/DataSize::Bytes/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/DataRate::BitsPerSec<\(.*\)>()/DataRate::BitsPerSec(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/DataRate::BytesPerSec<\(.*\)>()/DataRate::BytesPerSec(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/DataRate::KilobitsPerSec<\(.*\)>()/DataRate::KilobitsPerSec(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/DataRate::bps/DataRate::BitsPerSec/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/DataRate::kbps/DataRate::KilobitsPerSec/g"
git cl format

Bug: webrtc:9709
Change-Id: I65aaca69474ba038c1fe2dd8dc30d3f8e7b94c29
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168647
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30545}
2020-02-18 16:09:50 +00:00
Danil Chapovalov
e638ada5c9 Add DataSize and DataRate factories
Bug: webrtc:9709
Change-Id: I8a3af8c62f7ed52de84efb8b1306701fa2e40278
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168606
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30533}
2020-02-17 15:18:45 +00:00
Artem Titov
80a82f1527 PC test framework: cleanup deprecated API
Bug: webrtc:10138
Change-Id: I116bb318d3b736f1ec60651eaab53c6e78fb9d07
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168521
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30529}
2020-02-17 10:25:10 +00:00
Alessio Bazzica
08b11cafae iSAC config: target bitrate exposed for fixed impl
It is now possible to set the target bitrate for iSAC for the fixed
point implementation. Unit tests added.

Bug: webrtc:11360
Change-Id: I60225d4ca1363cdacf18931e7cf412c5aec8d8fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168529
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30526}
2020-02-14 14:08:21 +00:00
Danil Chapovalov
2517a47b01 Rename factory names for Frequency unit type
to follow regular function name style

Bug: webrtc:9709
Change-Id: Idb2ad7af0b185c4b696afddb4a2eab1613901f69
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168528
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30525}
2020-02-14 13:52:31 +00:00
Johannes Kron
72d6915d5f Populate sdp_fmtp_line and channels of RTCCodecStats
Change RtpCodecCapability::parameters and RtpCodecParameters::parameters
to map from unordered_map to get welldefined FMTP lines.

Bug: webrtc:7061
Change-Id: Ie61f76bbab915d72369e36e3f40ea11838827940
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168190
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30512}
2020-02-13 10:10:37 +00:00
Danil Chapovalov
ea820932d8 Delete legacy TimeDelta and Timestamp factories
Bug: webrtc:9709
Change-Id: Ic294a6dc324fde06d868a3d00941b0f2fc970935
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168490
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30510}
2020-02-13 08:50:22 +00:00
Mirta Dvornicic
6799d732d5 Delete DefaultVideoBitrateAllocator.
It was removed from tests in https://webrtc-review.googlesource.com/c/src/+/123540.

If simulcast is not used, SimulcastRateAllocator returns the
same allocation as DefaultVideoBitrateAllocator.

Bug: webrtc:10164
Change-Id: I3d3e1aefe2fcc2bf853cd63c75e008b86eff9241
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168496
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Mirta Dvornicic <mirtad@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30509}
2020-02-12 21:29:09 +00:00
Evan Shrubsole
546a9e4350 Scale native frames when doing a SW codec fallback
If the incoming frame is a native frame but the native encoder fails,
we should ensure the fallback encoder can handle the native frame. If
not then the native frame should be scaled and converted.

Bug: webrtc:11346
Change-Id: I692350dc69b5ce2db7ba5ee98d28f94cb12054cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168345
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30504}
2020-02-12 08:55:51 +00:00
Seth Hampson
c43fe2efd6 Removing myself from OWNERS in webrtc.
No-Try: True
Bug: None
Change-Id: I632d5384321c88202a23cc3fa6938afac0f796ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168460
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30494}
2020-02-10 18:27:21 +00:00
Danil Chapovalov
0c626afcf3 Use newer version of TimeDelta and TimeStamp factories in webrtc
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::Micros<\(.*\)>()/TimeDelta::Micros(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::Millis<\(.*\)>()/TimeDelta::Millis(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::Seconds<\(.*\)>()/TimeDelta::Seconds(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::us/TimeDelta::Micros/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::ms/TimeDelta::Millis/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/TimeDelta::seconds/TimeDelta::Seconds/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::Micros<\(.*\)>()/Timestamp::Micros(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::Millis<\(.*\)>()/Timestamp::Millis(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::Seconds<\(.*\)>()/Timestamp::Seconds(\1)/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::us/Timestamp::Micros/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::ms/Timestamp::Millis/g"
find . -type f \( -name "*.h" -o -name "*.cc" \) | xargs sed -i -e "s/Timestamp::seconds/Timestamp::Seconds/g"
git cl format

Bug: None
Change-Id: I87469d2e4a38369654da839ab7c838215a7911e7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168402
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30491}
2020-02-10 12:21:17 +00:00
philipel
9b05803e19 Implement injectable EncoderSelectorInterface and wire it up in the VideoStreamEncoder.
The EncoderSelectorInterface is meant to replace the "WebRTC-NetworkCondition-EncoderSwitch" field trial, so the field trial will be ignored if an EncoderSelectorInterface object has been injected.

Bug: webrtc:11341
Change-Id: I5371fac9c9ad8e38223a81dd1e7bfefb2bb458cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168193
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30490}
2020-02-10 12:12:47 +00:00
Henrik Boström
189849fa0f [Stats] Remove jitterBufferDelay TODO; it's already implemented.
This TODO says this metric is only available for audio and should also
be implemented for video, but ever since M76 this has been implemented
for both audio and video (https://crbug.com/webrtc/10450).

TBR=guido@webrtc.org, hta@webrtc.org
NOTRY=True

Bug: webrtc:10450
Change-Id: Icf2b60fdacae606c66f9d03492f107df9e32ba33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168343
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30485}
2020-02-07 15:14:38 +00:00
Johannes Kron
8e8b36a94a Revert "Reland "Reland "Reland "Distinguish between send and receive codecs""""
This reverts commit 184ea66aed.

Reason for revert: Breaks downstream projects.

TBR=steveanton@webrtc.org

Original change's description:
> Reland "Reland "Reland "Distinguish between send and receive codecs"""
>
> This reverts commit a104ceb0ce.
>
> Reason for revert: Keep logic as is.
>
> Original change's description:
> > Revert "Reland "Reland "Distinguish between send and receive codecs"""
> >
> > This reverts commit 9bac68c0cc.
> >
> > Reason for revert: Breaks perf test on iOS.
> >
> > Original change's description:
> > > Reland "Reland "Distinguish between send and receive codecs""
> > >
> > > This reverts commit 00a30873c4.
> > >
> > > Reason for revert: Flaky test in Chromium fixed.
> > >
> > > Original change's description:
> > > > Revert "Reland "Distinguish between send and receive codecs""
> > > >
> > > > This reverts commit 133bf2bd28.
> > > >
> > > > Reason for revert: Breaks Chromium import due to flaky test in Chromium.
> > > >
> > > > Original change's description:
> > > > > Reland "Distinguish between send and receive codecs"
> > > > >
> > > > > This reverts commit e57b266a20.
> > > > >
> > > > > Reason for revert: Fixed negotiation of send-only clients.
> > > > >
> > > > > Original change's description:
> > > > > > Revert "Distinguish between send and receive codecs"
> > > > > >
> > > > > > This reverts commit c0f25cf762.
> > > > > >
> > > > > > Reason for revert: breaks negotiation with send-only clients
> > > > > >
> > > > > > (webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264]
> > > > > > (peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER)
> > > > > > (peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters.
> > > > > >
> > > > > > Original change's description:
> > > > > > > Distinguish between send and receive codecs
> > > > > > >
> > > > > > > Even though send and receive codecs may be the same, they might have
> > > > > > > different support in HW. Distinguish between send and receive codecs
> > > > > > > to be able to keep track of which codecs have HW support.
> > > > > > >
> > > > > > > Bug: chromium:1029737
> > > > > > > Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> > > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> > > > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > > > Cr-Commit-Position: refs/heads/master@{#30284}
> > > > > >
> > > > > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > > > > >
> > > > > > Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa
> > > > > > No-Presubmit: true
> > > > > > No-Tree-Checks: true
> > > > > > No-Try: true
> > > > > > Bug: chromium:1029737
> > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420
> > > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > > Commit-Queue: Steve Anton <steveanton@webrtc.org>
> > > > > > Cr-Commit-Position: refs/heads/master@{#30292}
> > > > >
> > > > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > > > >
> > > > >
> > > > > Bug: chromium:1029737
> > > > > Change-Id: I287efcfdcd1c9a3f2c410aeec8fe26a84204d1fd
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166604
> > > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30348}
> > > >
> > > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > > >
> > > > Change-Id: I9f8731309749e07ce7e651e1550ecfabddb1735f
> > > > No-Presubmit: true
> > > > No-Tree-Checks: true
> > > > No-Try: true
> > > > Bug: chromium:1029737
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167205
> > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30360}
> > >
> > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > >
> > > Change-Id: I1cc2d83bd884f10685503a9c31288f96c935d6a3
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: chromium:1029737
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167206
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30367}
> >
> > TBR=steveanton@webrtc.org,kron@webrtc.org
> >
> > Change-Id: I0a9b0b58922ce7c558b3d31b64cc12086b2a6a55
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:1029737
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167364
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30373}
>
> TBR=steveanton@webrtc.org,kron@webrtc.org
>
>
> Bug: chromium:1029737
> Change-Id: Id381cb6d8e03b0fca941e392978362af6fdab0b6
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167531
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30415}

TBR=steveanton@webrtc.org,kron@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1029737
Change-Id: Ice25339e7dfb9fc75049bd207d097b0910bd4446
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168341
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30484}
2020-02-07 15:11:08 +00:00
Ying Wang
9b881abea9 Enable congestion window pushback to reduce bitrate by only drop video frames.
With current congestion window pushback, when congestion window is filling up, it will reduce bitrate directly and encoder may reduce encode quality, resolution, or framerate to adapt to the allocated bitrate, the behavior is depending on the degradation preference.
This change enable congestion window to only drop frames to reduce bitrate (when needed) instead of reduce general bitrate allocation.

Bug: webrtc:11334
Change-Id: I9cf5c20a0858c4d07d006942abe72aa5e1f7cb38
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168059
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30483}
2020-02-07 14:14:47 +00:00
Danil Chapovalov
8d94dc23a6 Add TimeDelta and Timestamp factories
These factories suppose to replace set of old constexpr factories that
takes parameter as template rather than function parameter,
as well as fix function naming to follow style guide of the second set
of factory functions.

Bug: None
Change-Id: Icd76302b821b2a4027f9d6765cf91bc9190f551c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167521
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30482}
2020-02-07 11:30:36 +00:00
Sebastian Jansson
09a9f1ba72 Adds simulated time controller API.
Bug: webrtc:11255
Change-Id: I68289a45b9441b5e612433acd96dc3cb24e47ce4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168122
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30443}
2020-02-03 10:19:08 +00:00
Erik Språng
261f792f83 Allow software fallback on lowest simulcast stream for temporal support
Bug: webrtc:11324
Change-Id: Ie505be0cda74c0444065d86c3727671c62bd4842
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167527
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30437}
2020-01-31 16:44:47 +00:00
Ivo Creusen
d69935c114 Remove function that takes command-line arguments directly
This function is obsolete now that config-based functions are available.
The command-line parsing should not happen here but in the executable
that uses these functions.

Bug: webrtc:11005
Change-Id: I618d12503123e3e1fd6e572a045372c622043a75
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167860
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30421}
2020-01-30 12:42:38 +00:00
Sebastian Jansson
1cf15bfe55 Adds product operator for TimeDelta and Frequency
Also adding kHz factory function for Frequency class.

Bug: webrtc:9883
Change-Id: Ide44910d50eb9616de2bb0c66b8c62493d2be92e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167725
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30416}
2020-01-29 20:08:49 +00:00
Johannes Kron
184ea66aed Reland "Reland "Reland "Distinguish between send and receive codecs"""
This reverts commit a104ceb0ce.

Reason for revert: Keep logic as is.

Original change's description:
> Revert "Reland "Reland "Distinguish between send and receive codecs"""
>
> This reverts commit 9bac68c0cc.
>
> Reason for revert: Breaks perf test on iOS.
>
> Original change's description:
> > Reland "Reland "Distinguish between send and receive codecs""
> >
> > This reverts commit 00a30873c4.
> >
> > Reason for revert: Flaky test in Chromium fixed.
> >
> > Original change's description:
> > > Revert "Reland "Distinguish between send and receive codecs""
> > >
> > > This reverts commit 133bf2bd28.
> > >
> > > Reason for revert: Breaks Chromium import due to flaky test in Chromium.
> > >
> > > Original change's description:
> > > > Reland "Distinguish between send and receive codecs"
> > > >
> > > > This reverts commit e57b266a20.
> > > >
> > > > Reason for revert: Fixed negotiation of send-only clients.
> > > >
> > > > Original change's description:
> > > > > Revert "Distinguish between send and receive codecs"
> > > > >
> > > > > This reverts commit c0f25cf762.
> > > > >
> > > > > Reason for revert: breaks negotiation with send-only clients
> > > > >
> > > > > (webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264]
> > > > > (peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER)
> > > > > (peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters.
> > > > >
> > > > > Original change's description:
> > > > > > Distinguish between send and receive codecs
> > > > > >
> > > > > > Even though send and receive codecs may be the same, they might have
> > > > > > different support in HW. Distinguish between send and receive codecs
> > > > > > to be able to keep track of which codecs have HW support.
> > > > > >
> > > > > > Bug: chromium:1029737
> > > > > > Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> > > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > > Cr-Commit-Position: refs/heads/master@{#30284}
> > > > >
> > > > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > > > >
> > > > > Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa
> > > > > No-Presubmit: true
> > > > > No-Tree-Checks: true
> > > > > No-Try: true
> > > > > Bug: chromium:1029737
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420
> > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > Commit-Queue: Steve Anton <steveanton@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30292}
> > > >
> > > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > > >
> > > >
> > > > Bug: chromium:1029737
> > > > Change-Id: I287efcfdcd1c9a3f2c410aeec8fe26a84204d1fd
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166604
> > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30348}
> > >
> > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > >
> > > Change-Id: I9f8731309749e07ce7e651e1550ecfabddb1735f
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: chromium:1029737
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167205
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30360}
> >
> > TBR=steveanton@webrtc.org,kron@webrtc.org
> >
> > Change-Id: I1cc2d83bd884f10685503a9c31288f96c935d6a3
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:1029737
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167206
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30367}
>
> TBR=steveanton@webrtc.org,kron@webrtc.org
>
> Change-Id: I0a9b0b58922ce7c558b3d31b64cc12086b2a6a55
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1029737
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167364
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30373}

TBR=steveanton@webrtc.org,kron@webrtc.org


Bug: chromium:1029737
Change-Id: Id381cb6d8e03b0fca941e392978362af6fdab0b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167531
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30415}
2020-01-29 18:53:54 +00:00
Bjorn A Mellem
0cda7b832a Allow non-identical datagram transport parameters.
Currently, datagram transports must report identical transport
parameters in order to negotiate use of the datagram transport.  This is
not strictly necessary, they just need parameters that fit some notion
of "compatability" (eg. both ends share some mutually-supported version
of the datagram protocol).

This change allows datagram transports to implement their own notion of
compatible transport parameters, by adding a
SetRemoteTransportParameters method to DatagramTransportInterface which
checks if the remote parameters are compatible with the local endpoint
and returns an error if they are not.

Bug: webrtc:9719
Change-Id: I166c787b468b89d9082d7e3c9995a6ed50a1650a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167741
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30412}
2020-01-29 18:14:24 +00:00
Minyue Li
99d6d8115b Adding absolute capture timestamp to AudioTrackSinkInterface.
Bug: webrtc:10739
Change-Id: I8c134cbe82452ac71625cd0c810c783a73f17822
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167532
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Chen Xing <chxg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30408}
2020-01-29 13:46:28 +00:00
Ivo Creusen
182c2b8334 Expose run function to NetEqSimulator
Bug: webrtc:11005
Change-Id: I84f01536b40ba17e66877cdced194e05b882b5c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167537
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30405}
2020-01-29 11:55:05 +00:00
Sebastian Jansson
d7fade5738 Makes all units and operations constexpr
Since RTC_DCHECK was made constexpr compatible, we can now
make the unit classes fully constexpr.

Bug: webrtc:9883
Change-Id: I18973c2f318449869cf0bd45699c41be53fba806
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167722
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30403}
2020-01-29 10:57:54 +00:00
Steve Anton
f417238217 Remove iceRegatherIntervalRange
This was an ICE configuration experiment added a couple years ago that did not end up being used.

Bug: webrtc:11316
Change-Id: Iafb7e1c4f7b4598815f045808dbf6e470172f119
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167680
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30395}
2020-01-28 19:16:18 +00:00
Johannes Kron
a104ceb0ce Revert "Reland "Reland "Distinguish between send and receive codecs"""
This reverts commit 9bac68c0cc.

Reason for revert: Breaks perf test on iOS.

Original change's description:
> Reland "Reland "Distinguish between send and receive codecs""
> 
> This reverts commit 00a30873c4.
> 
> Reason for revert: Flaky test in Chromium fixed.
> 
> Original change's description:
> > Revert "Reland "Distinguish between send and receive codecs""
> > 
> > This reverts commit 133bf2bd28.
> > 
> > Reason for revert: Breaks Chromium import due to flaky test in Chromium.
> > 
> > Original change's description:
> > > Reland "Distinguish between send and receive codecs"
> > > 
> > > This reverts commit e57b266a20.
> > > 
> > > Reason for revert: Fixed negotiation of send-only clients.
> > > 
> > > Original change's description:
> > > > Revert "Distinguish between send and receive codecs"
> > > >
> > > > This reverts commit c0f25cf762.
> > > >
> > > > Reason for revert: breaks negotiation with send-only clients
> > > >
> > > > (webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264]
> > > > (peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER)
> > > > (peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters.
> > > >
> > > > Original change's description:
> > > > > Distinguish between send and receive codecs
> > > > >
> > > > > Even though send and receive codecs may be the same, they might have
> > > > > different support in HW. Distinguish between send and receive codecs
> > > > > to be able to keep track of which codecs have HW support.
> > > > >
> > > > > Bug: chromium:1029737
> > > > > Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30284}
> > > >
> > > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > > >
> > > > Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa
> > > > No-Presubmit: true
> > > > No-Tree-Checks: true
> > > > No-Try: true
> > > > Bug: chromium:1029737
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420
> > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > Commit-Queue: Steve Anton <steveanton@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30292}
> > > 
> > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > > 
> > > 
> > > Bug: chromium:1029737
> > > Change-Id: I287efcfdcd1c9a3f2c410aeec8fe26a84204d1fd
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166604
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30348}
> > 
> > TBR=steveanton@webrtc.org,kron@webrtc.org
> > 
> > Change-Id: I9f8731309749e07ce7e651e1550ecfabddb1735f
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:1029737
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167205
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30360}
> 
> TBR=steveanton@webrtc.org,kron@webrtc.org
> 
> Change-Id: I1cc2d83bd884f10685503a9c31288f96c935d6a3
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1029737
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167206
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30367}

TBR=steveanton@webrtc.org,kron@webrtc.org

Change-Id: I0a9b0b58922ce7c558b3d31b64cc12086b2a6a55
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167364
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30373}
2020-01-24 16:44:17 +00:00
Artem Titov
1e02339ea6 Add ability to set custom adapter type on emulated endpoint
Bug: webrtc:10138
Change-Id: I2f53b42a2c377c9c0c9d36b61eb1c6ce96da480a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167209
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30371}
2020-01-24 12:53:07 +00:00
Ivo Creusen
88636c6dac Improvements for NetEqControllers
When creating a NetEqController it can be useful to have access to a
webrtc::Clock*. Also, NetEqControllers should have access to the
contents of the sync buffer when making decisions.

Bug: webrtc:11005
Change-Id: I7fdba75ce661b2ace52458620a8c1f3c990e5ac2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167208
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30368}
2020-01-24 11:39:52 +00:00
Johannes Kron
9bac68c0cc Reland "Reland "Distinguish between send and receive codecs""
This reverts commit 00a30873c4.

Reason for revert: Flaky test in Chromium fixed.

Original change's description:
> Revert "Reland "Distinguish between send and receive codecs""
> 
> This reverts commit 133bf2bd28.
> 
> Reason for revert: Breaks Chromium import due to flaky test in Chromium.
> 
> Original change's description:
> > Reland "Distinguish between send and receive codecs"
> > 
> > This reverts commit e57b266a20.
> > 
> > Reason for revert: Fixed negotiation of send-only clients.
> > 
> > Original change's description:
> > > Revert "Distinguish between send and receive codecs"
> > >
> > > This reverts commit c0f25cf762.
> > >
> > > Reason for revert: breaks negotiation with send-only clients
> > >
> > > (webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264]
> > > (peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER)
> > > (peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters.
> > >
> > > Original change's description:
> > > > Distinguish between send and receive codecs
> > > >
> > > > Even though send and receive codecs may be the same, they might have
> > > > different support in HW. Distinguish between send and receive codecs
> > > > to be able to keep track of which codecs have HW support.
> > > >
> > > > Bug: chromium:1029737
> > > > Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30284}
> > >
> > > TBR=steveanton@webrtc.org,kron@webrtc.org
> > >
> > > Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: chromium:1029737
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Commit-Queue: Steve Anton <steveanton@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30292}
> > 
> > TBR=steveanton@webrtc.org,kron@webrtc.org
> > 
> > 
> > Bug: chromium:1029737
> > Change-Id: I287efcfdcd1c9a3f2c410aeec8fe26a84204d1fd
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166604
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30348}
> 
> TBR=steveanton@webrtc.org,kron@webrtc.org
> 
> Change-Id: I9f8731309749e07ce7e651e1550ecfabddb1735f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1029737
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167205
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30360}

TBR=steveanton@webrtc.org,kron@webrtc.org

Change-Id: I1cc2d83bd884f10685503a9c31288f96c935d6a3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167206
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30367}
2020-01-23 23:02:59 +00:00
Johannes Kron
00a30873c4 Revert "Reland "Distinguish between send and receive codecs""
This reverts commit 133bf2bd28.

Reason for revert: Breaks Chromium import due to flaky test in Chromium.

Original change's description:
> Reland "Distinguish between send and receive codecs"
> 
> This reverts commit e57b266a20.
> 
> Reason for revert: Fixed negotiation of send-only clients.
> 
> Original change's description:
> > Revert "Distinguish between send and receive codecs"
> >
> > This reverts commit c0f25cf762.
> >
> > Reason for revert: breaks negotiation with send-only clients
> >
> > (webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264]
> > (peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER)
> > (peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters.
> >
> > Original change's description:
> > > Distinguish between send and receive codecs
> > >
> > > Even though send and receive codecs may be the same, they might have
> > > different support in HW. Distinguish between send and receive codecs
> > > to be able to keep track of which codecs have HW support.
> > >
> > > Bug: chromium:1029737
> > > Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30284}
> >
> > TBR=steveanton@webrtc.org,kron@webrtc.org
> >
> > Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:1029737
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Commit-Queue: Steve Anton <steveanton@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30292}
> 
> TBR=steveanton@webrtc.org,kron@webrtc.org
> 
> 
> Bug: chromium:1029737
> Change-Id: I287efcfdcd1c9a3f2c410aeec8fe26a84204d1fd
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166604
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30348}

TBR=steveanton@webrtc.org,kron@webrtc.org

Change-Id: I9f8731309749e07ce7e651e1550ecfabddb1735f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167205
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30360}
2020-01-23 13:10:53 +00:00
Sebastian Jansson
7aa2edf936 Adds CreateTimeControllerBasedCallFactory.
Bug: webrtc:11255
Change-Id: I9614823761ff5d2eb4fe03342f255a81087b6449
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166960
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30358}
2020-01-23 10:29:30 +00:00
Aaron Alaniz
529d886c38 Allow DTMF delay configurability
This commit enables developers to configure the "," delay value from
the WebRTC spec value of 2 seconds. This flexibility allows developers
to comply with existing WebRTC clients.

Bug: webrtc:11273
Change-Id: Ia94b99e041df882e2396d0926a8f4188afe55885
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165700
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30354}
2020-01-22 20:46:52 +00:00
Sebastian Jansson
094ce2ef83 Adds CreateTaskQueueFactory to TimeController
Bug: webrtc:11255
Change-Id: I02bdc944c7081590f40a77b315f64c63adbc6ff8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166921
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30349}
2020-01-22 14:19:15 +00:00
Johannes Kron
133bf2bd28 Reland "Distinguish between send and receive codecs"
This reverts commit e57b266a20.

Reason for revert: Fixed negotiation of send-only clients.

Original change's description:
> Revert "Distinguish between send and receive codecs"
>
> This reverts commit c0f25cf762.
>
> Reason for revert: breaks negotiation with send-only clients
>
> (webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264]
> (peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER)
> (peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters.
>
> Original change's description:
> > Distinguish between send and receive codecs
> >
> > Even though send and receive codecs may be the same, they might have
> > different support in HW. Distinguish between send and receive codecs
> > to be able to keep track of which codecs have HW support.
> >
> > Bug: chromium:1029737
> > Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30284}
>
> TBR=steveanton@webrtc.org,kron@webrtc.org
>
> Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1029737
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30292}

TBR=steveanton@webrtc.org,kron@webrtc.org


Bug: chromium:1029737
Change-Id: I287efcfdcd1c9a3f2c410aeec8fe26a84204d1fd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166604
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30348}
2020-01-22 13:55:41 +00:00
Sebastian Jansson
6ce033a863 Moves ownership of time controller into NetworkEmulationManager.
This makes it easier to maintain consistency between real time
and simulated time modes.

The RealTimeController is updated to use an explicit main thread,
this ensures that pending destruction tasks are run as the network
emulator goes out of scope.

Bug: webrtc:11255
Change-Id: Ie73ab778c78a68d7c58c0f857f14a8d8ac027c67
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166164
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30342}
2020-01-22 11:12:27 +00:00
Rasmus Brandt
43bfe0b8a6 Enforce VideoEncoderConfig.num_temporal_layers >= 1.
This change clarifies the semantics of this field:
  unset: Depends on context.
  == 0: Invalid.
  == 1: No temporal layering.
  >= 2: Temporal layering.

We should try to remove the wrapping optional later.

Bug: webrtc:11297
Change-Id: Id765f2dc1d31a4ba3cd424978ac6054cd60152ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166528
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30336}
2020-01-21 13:38:08 +00:00
Mirko Bonadei
ccbe95fd8a Reformat GN files.
`gn format` recently [1] changed its formatting behavior
for deps, source, and a few other elements when they
are assigned (with =) single-element lists to be consistent
with the formatting of updates (with +=) with single-element.

Now that we've rolled in a GN binary with the change,
reformat all files so that people don't get presubmit
warnings due to this.

CL generated with:
$ git ls-files | grep BUILD.gn | xargs gn format
$ gn format build_overrides/build.gni
$ gn format build_overrides/gtest.gni
$ gn format modules/audio_coding/audio_coding.gni
$ gn format webrtc.gni
$ gn format .gn

Plus a few manual changes to add exceptions for
"public_deps" (after changing these lines the presubmit
started to complain).

[1] - https://gn-review.googlesource.com/c/gn/+/6860

Bug: webrtc:11302
Change-Id: Iac29d23c1618ebef925c972e2891cd9f4e8cd613
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166882
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30334}
2020-01-21 12:13:11 +00:00
Johannes Kron
0809e7ed43 Add RtpPacketInfo and RtpPacketInfos to RTC_EXPORT
Bug: none
Change-Id: I731bded442edeb98025c2af3923175dcf6596942
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166881
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30333}
2020-01-21 12:11:41 +00:00
Henrik Boström
4bab2fcf6b [Overuse] Setting encoder configurations through the interface.
This squashes together several input signals that were spread out
through several calls into a single method and calling place:
SetEncoderSettings(), invoked from ReconfigureEncoder(). This is added
to the abstract interface.

This makes the following methods obsolete which are removed:
- SetEncoder(): The VideoEncoder was only used for GetEncoderInfo();
  the VideoEncoder::EncoderInfo is now part of the EncoderSettings.
- SetEncoderConfig(): The VideoEncoderConfig is part of
  EncoderSettings. The config is used for its codec_type and
  content_type enums.
- SetCodecMaxFrameRate(): The max frame rate was the same as
  VideoCodec::maxFramerate. VideoCodec is now part of EncoderSettings.

There may be some overlap in information between EncoderConfig and
VideoCodec, but that is outside the scope of this CL, which only makes
sure to bundle encoder settings-like information into one input signal.

Bug: webrtc:11222
Change-Id: I67c49c49c0a859cb7d5051939a461593c695a789
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166602
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30332}
2020-01-21 11:48:11 +00:00
Danil Chapovalov
67dcb4b54d Publish DependencyDescriptor structures in the api
The extension (and thus structures to carry it) are designed
in particular for client<->SFU link. Putting the structure into api
acknowledges it can be reused by SFU projects

Bug: webrtc:10342
Change-Id: I8ca1f5046abadf6aa16200443c4892e9a2a928b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166467
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30324}
2020-01-20 15:05:48 +00:00
Danil Chapovalov
7356a5666d Remove unit_base functions FromStaticX
instead make functions FromX constexpr and use them.

Bug: None
Change-Id: I826c8ad5ac8b3bd97f298a99c40b31b8c63b5f85
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159220
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30321}
2020-01-20 13:04:56 +00:00
Ivo Creusen
cee751abff Reland "Enable using a custom NetEqFactory in simulations"
This is a reland of 2a11b2451a
There are no changes compared to the first attempt.

Original change's description:
> Enable using a custom NetEqFactory in simulations
>
> Bug: webrtc:11005
> Change-Id: I8a15f77953cbd3c29a75c7cfc77f926b138994b9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165580
> Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30286}

TBR=kwiberg

Bug: webrtc:11005
Change-Id: I4aa377e05916bd23f8f63aece9d0e27731c80d3e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166465
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30319}
2020-01-20 12:46:34 +00:00
Artem Titov
9fbe9ae1c1 Add support of negotiating multiple codecs in PC framework
Bug: webrtc:10138
Change-Id: Iec7df60a4185a039bd81de200c0691747e92c10c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166601
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30318}
2020-01-20 12:13:04 +00:00
Sebastian Jansson
73387823a7 Cleanup: Removes MessageQueue header and alias
Bug: webrtc:9883
Change-Id: I31aac563e54d61f03ff76ea1e9d284602a633252
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166170
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30314}
2020-01-20 09:47:26 +00:00
Danil Chapovalov
df2c601616 Move Offset constants from VideoSendTiming value to VideoTimingExtension class
These constants describes how value should be put on the wire and thus
belong to the extension builder/writer class rather than extension value class

Bug: None
Change-Id: I65ca3923eddcc2e48563ad69b98356c159ad86be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166461
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30305}
2020-01-17 15:57:38 +00:00
Sebastian Jansson
77bd385b55 Using EmulatedEndpoint in Scenario tests.
Bug: webrtc:9883
Change-Id: I7d1dc9d8efbdddc14e1fbe08d7b6a71c4bbe24ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166341
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30300}
2020-01-17 12:50:20 +00:00
Artem Titov
524417f3f7 Move method to right place in the PC API
Bug: webrtc:10138
Change-Id: I46f353cea0dee986b211c475acbb3b39fe2df16f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166460
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30299}
2020-01-17 12:49:00 +00:00
Sebastian Jansson
c9f42ad909 Simplifies transport overhead mechanism in Scenario test framework.
This changes the behavior for adding virtual transport overhead so it
doesn't change the size of the actual payload buffer, only the
calculated packet size.

Bug: webrtc:9883
Change-Id: I6e24598378c4dd6a591d36ca3b162e933ff4ef7c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/164523
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30298}
2020-01-17 11:30:02 +00:00
Sebastian Jansson
fc8279d66c Reland "Using simulated rtc::Thread for peer connection scenario tests."
This is a reland of b70c5c5ce9

Original change's description:
> Using simulated rtc::Thread for peer connection scenario tests.
> 
> Bug: webrtc:11255
> Change-Id: I5d29e997a7209ffc64595082358cca9b2115d07a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165689
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30258}

Bug: webrtc:11255
Change-Id: If65cd56b59158cebec5609407a721fbdb47cfd1b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166046
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30294}
2020-01-17 09:22:18 +00:00
Steve Anton
e57b266a20 Revert "Distinguish between send and receive codecs"
This reverts commit c0f25cf762.

Reason for revert: breaks negotiation with send-only clients

(webrtc_video_engine.cc:985): SetRecvParameters called with unsupported video codec: VideoCodec[96:H264]
(peer_connection.cc:6043): Failed to set local video description recv parameters. (INVALID_PARAMETER)
(peer_connection.cc:2591): Failed to set local offer sdp: Failed to set local video description recv parameters.

Original change's description:
> Distinguish between send and receive codecs
> 
> Even though send and receive codecs may be the same, they might have
> different support in HW. Distinguish between send and receive codecs
> to be able to keep track of which codecs have HW support.
> 
> Bug: chromium:1029737
> Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30284}

TBR=steveanton@webrtc.org,kron@webrtc.org

Change-Id: Iacb7059436b2313b52577b65f164ee363c4816aa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166420
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30292}
2020-01-17 02:47:23 +00:00
Sandeep Siddhartha
3f0bc2c176 Revert "Enable using a custom NetEqFactory in simulations"
This reverts commit 2a11b2451a.

Reason for revert: Causes b/147826709

Original change's description:
> Enable using a custom NetEqFactory in simulations
> 
> Bug: webrtc:11005
> Change-Id: I8a15f77953cbd3c29a75c7cfc77f926b138994b9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165580
> Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30286}

TBR=kwiberg@webrtc.org,ivoc@webrtc.org

Change-Id: I14a0bd6ad2a90f1686b8b1a78f18aea9325871fe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11005
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166403
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Sandeep Siddhartha <sansid@google.com>
Cr-Commit-Position: refs/heads/master@{#30288}
2020-01-16 22:56:21 +00:00
Ivo Creusen
2a11b2451a Enable using a custom NetEqFactory in simulations
Bug: webrtc:11005
Change-Id: I8a15f77953cbd3c29a75c7cfc77f926b138994b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165580
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30286}
2020-01-16 18:26:44 +00:00
Johannes Kron
c0f25cf762 Distinguish between send and receive codecs
Even though send and receive codecs may be the same, they might have
different support in HW. Distinguish between send and receive codecs
to be able to keep track of which codecs have HW support.

Bug: chromium:1029737
Change-Id: Id119560becadfe0aaf861c892a6485f1c2eb378d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165763
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30284}
2020-01-16 15:42:05 +00:00
Danil Chapovalov
64f1f3f04e Replace RTC_FALLTHROUGH with ABSL_FALLTHROUGH_INTENTED
Bug: None
Change-Id: I7287403f3fb13b8e30f92ca3cf1882b03bb53a6e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166176
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30283}
2020-01-16 15:20:35 +00:00
Johannes Kron
05f8487627 Add processing time to VideoFrame
Bug: chromium:1011581
Change-Id: Icd675cb98b8b5052933b9a8eebe718be94c2fef2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166162
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30281}
2020-01-16 14:11:15 +00:00
Jonas Oreland
c7bce99540 Make it possible to inject IceTransport in pc quality test fixture
Bug: chromium:1024965
Change-Id: I55296a31e1638c8c00bd6c53151fc4898202b033
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166168
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30279}
2020-01-16 11:56:50 +00:00
Jonas Oreland
219d8ce889 GOOG_PING: improve handshake
This patch improves handshake wrt GOOG_PING support so that
- if goog_ping_enable: sender send it's goog-ping version until it gets
STUN_BINDING_RESPONSE
- receiver only sends it's goog-ping-version if getting a
goog-ping-version in the request

This means that the overhead of STUN_ATTR_GOOG_MISC_INFO is only
- added on STUN_BINDING_REQUEST until a response is received.
- added on STUN_BINDING_RESPONSE if remote peer request it.

This is wire compatible with older versions so that
- new sender will enable GOOG_PING with new/old receiver.
- old sender will enable GOOG_PING with old receiver.
- old version will not enable GOOG_PING with new receiver
  (receiver expecting sender to announce first).

BUG: webrtc:11100
Change-Id: Ib3434c593988188150f4c7506918139aaf138d0c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165787
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30269}
2020-01-15 16:09:38 +00:00
Guido Urdaneta
ccab06fb72 Revert "Replaces SynchronousMethodCall with rtc::Thread::Invoke."
This reverts commit b0e0728159.

Reason for revert:

Causes Chromium tests to timeout, preventing rolls into Chromium.

Original change's description:
> Replaces SynchronousMethodCall with rtc::Thread::Invoke.
> 
> Given that we already have Thread:.Invoke that can be used with lambda,
> SynchronousMethodCall doesn't add any value.
> 
> This simplification prepares for simulated time peer connection tests.
> 
> Bug: webrtc:11255
> Change-Id: I478a11f15e30e009dae4a3fee2120f6d7a03355f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165683
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30217}

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

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:11255
Change-Id: I9d3aa218013129db7a09a77500a0547ce9ae341a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166047
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30265}
2020-01-15 12:34:35 +00:00
Sebastian Jansson
f1173f46e5 Revert "Using simulated rtc::Thread for peer connection scenario tests."
This reverts commit b70c5c5ce9.

Reason for revert: Interferes with other tests in same binary.

Original change's description:
> Using simulated rtc::Thread for peer connection scenario tests.
> 
> Bug: webrtc:11255
> Change-Id: I5d29e997a7209ffc64595082358cca9b2115d07a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165689
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30258}

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

Change-Id: If2e60edae264a4bb0dee3abf66ba2078fd85f493
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11255
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166045
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30259}
2020-01-15 10:10:07 +00:00
Sebastian Jansson
b70c5c5ce9 Using simulated rtc::Thread for peer connection scenario tests.
Bug: webrtc:11255
Change-Id: I5d29e997a7209ffc64595082358cca9b2115d07a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165689
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30258}
2020-01-15 09:35:40 +00:00
Jonas Olsson
b2b2031457 Concatenate string literals at compile time.
This CL was generated by running:
git ls-files | grep ".cc" | xargs perl -i -ne 'BEGIN {undef $/}; s/("[\s\n]*<<[\s\n]*")/" "/g; print;'; git cl format

After that I manually edited modules/audio_processing/gain_controller2.cc to preserve its original
formatting.

This primary benefit of this change is a small reduction in binary size.

Bug: None
Change-Id: I689fa7ba9c717c314bb167e5d592c3c4e0871e29
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165961
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30251}
2020-01-14 14:47:48 +00:00
Mirko Bonadei
f5ecb5f22e Revert "Reland "Reland "Reland "Distinguish between send and receive video codecs""""
This reverts commit 9cad4dccc9.

Reason for revert: Breaks downstream tests.

Original change's description:
> Reland "Reland "Reland "Distinguish between send and receive video codecs"""
> 
> This is a reland of 4e64e60589
> 
> This CL lands all code except the code that activates the change,
> see media/engine/webrtc_video_engine.cc
> Once downstream projects are fixed, there will be a one-line change to
> activate the change to distinguish between send and receive video codecs.
> 
> Original change's description:
> > Reland "Reland "Distinguish between send and receive video codecs""
> >
> > This is a reland of 77eb338ae4
> >
> > Original change's description:
> > > Reland "Distinguish between send and receive video codecs"
> > >
> > > This reverts commit f2d6fe62f2.
> > >
> > > Reason for revert: Downstream test updated.
> > >
> > > Original change's description:
> > > > Revert "Reland "Distinguish between send and receive video codecs""
> > > >
> > > > This reverts commit 26e6afe93f.
> > > >
> > > > Reason for revert: Breaks another downstream test.
> > > >
> > > > Original change's description:
> > > > > Reland "Distinguish between send and receive video codecs"
> > > > >
> > > > > This reverts commit f22af3cca7.
> > > > >
> > > > > Reason for revert: Downstream tests have been updated.
> > > > >
> > > > > Original change's description:
> > > > > > Revert "Distinguish between send and receive video codecs"
> > > > > >
> > > > > > This reverts commit 18314bd8d2.
> > > > > >
> > > > > > Reason for revert: Breaks downstream test.
> > > > > >
> > > > > > Original change's description:
> > > > > > > Distinguish between send and receive video codecs
> > > > > > >
> > > > > > > Even though send and receive codecs are the same,
> > > > > > > they might have different support in HW.
> > > > > > > Distinguish between send and receive codecs to be able to keep
> > > > > > > track of which codecs have HW support.
> > > > > > >
> > > > > > > Bug: chromium:1029737
> > > > > > > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > > > > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > > > Cr-Commit-Position: refs/heads/master@{#30041}
> > > > > >
> > > > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > > > >
> > > > > > Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> > > > > > No-Presubmit: true
> > > > > > No-Tree-Checks: true
> > > > > > No-Try: true
> > > > > > Bug: chromium:1029737
> > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> > > > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > > Cr-Commit-Position: refs/heads/master@{#30042}
> > > > >
> > > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > > >
> > > > > # Not skipping CQ checks because original CL landed > 1 day ago.
> > > > >
> > > > > Bug: chromium:1029737
> > > > > Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
> > > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30078}
> > > >
> > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > >
> > > > Change-Id: Ia4971b898c9209a3736a916a1c2c48d392dfdad6
> > > > No-Presubmit: true
> > > > No-Tree-Checks: true
> > > > No-Try: true
> > > > Bug: chromium:1029737
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162140
> > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30079}
> > >
> > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > >
> > > # Not skipping CQ checks because original CL landed > 1 day ago.
> > >
> > > Bug: chromium:1029737
> > > Change-Id: If2c3c5b5e7d86cb852a1f20f02b6ceae62b2e0c8
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162186
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30097}
> >
> > Bug: chromium:1029737
> > Change-Id: I5912822df8169fbb3097c0f440f7924527fa950b
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162483
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30120}
> 
> Bug: chromium:1029737
> Change-Id: Id4f1c6f6f0cf7b96fe93dd22d14310d286af31f3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165682
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30219}

TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1029737
Change-Id: I377f82866e56862f57383f96a3b96719344eef9e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165780
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30225}
2020-01-13 09:03:37 +00:00
Johannes Kron
9cad4dccc9 Reland "Reland "Reland "Distinguish between send and receive video codecs"""
This is a reland of 4e64e60589

This CL lands all code except the code that activates the change,
see media/engine/webrtc_video_engine.cc
Once downstream projects are fixed, there will be a one-line change to
activate the change to distinguish between send and receive video codecs.

Original change's description:
> Reland "Reland "Distinguish between send and receive video codecs""
>
> This is a reland of 77eb338ae4
>
> Original change's description:
> > Reland "Distinguish between send and receive video codecs"
> >
> > This reverts commit f2d6fe62f2.
> >
> > Reason for revert: Downstream test updated.
> >
> > Original change's description:
> > > Revert "Reland "Distinguish between send and receive video codecs""
> > >
> > > This reverts commit 26e6afe93f.
> > >
> > > Reason for revert: Breaks another downstream test.
> > >
> > > Original change's description:
> > > > Reland "Distinguish between send and receive video codecs"
> > > >
> > > > This reverts commit f22af3cca7.
> > > >
> > > > Reason for revert: Downstream tests have been updated.
> > > >
> > > > Original change's description:
> > > > > Revert "Distinguish between send and receive video codecs"
> > > > >
> > > > > This reverts commit 18314bd8d2.
> > > > >
> > > > > Reason for revert: Breaks downstream test.
> > > > >
> > > > > Original change's description:
> > > > > > Distinguish between send and receive video codecs
> > > > > >
> > > > > > Even though send and receive codecs are the same,
> > > > > > they might have different support in HW.
> > > > > > Distinguish between send and receive codecs to be able to keep
> > > > > > track of which codecs have HW support.
> > > > > >
> > > > > > Bug: chromium:1029737
> > > > > > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > > > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > > Cr-Commit-Position: refs/heads/master@{#30041}
> > > > >
> > > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > > >
> > > > > Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> > > > > No-Presubmit: true
> > > > > No-Tree-Checks: true
> > > > > No-Try: true
> > > > > Bug: chromium:1029737
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> > > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30042}
> > > >
> > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > >
> > > > # Not skipping CQ checks because original CL landed > 1 day ago.
> > > >
> > > > Bug: chromium:1029737
> > > > Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
> > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30078}
> > >
> > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > >
> > > Change-Id: Ia4971b898c9209a3736a916a1c2c48d392dfdad6
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: chromium:1029737
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162140
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30079}
> >
> > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> >
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> >
> > Bug: chromium:1029737
> > Change-Id: If2c3c5b5e7d86cb852a1f20f02b6ceae62b2e0c8
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162186
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30097}
>
> Bug: chromium:1029737
> Change-Id: I5912822df8169fbb3097c0f440f7924527fa950b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162483
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30120}

Bug: chromium:1029737
Change-Id: Id4f1c6f6f0cf7b96fe93dd22d14310d286af31f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165682
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30219}
2020-01-10 23:37:11 +00:00
Sebastian Jansson
b0e0728159 Replaces SynchronousMethodCall with rtc::Thread::Invoke.
Given that we already have Thread:.Invoke that can be used with lambda,
SynchronousMethodCall doesn't add any value.

This simplification prepares for simulated time peer connection tests.

Bug: webrtc:11255
Change-Id: I478a11f15e30e009dae4a3fee2120f6d7a03355f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165683
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30217}
2020-01-10 19:29:34 +00:00
Danil Chapovalov
b19eb399cb Delete obsolete unused rtp header extension conversion
Bug: None
Change-Id: Ice78a35502465c5f03ef66ee73788405fd4f7356
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/163025
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30188}
2020-01-09 09:28:07 +00:00
Steve Anton
2a3190ff2a Re-introduce the RTCError move constructor/assignment
They appear to have been unintentionally removed in a previous CL:
https://webrtc-review.googlesource.com/c/src/+/161304

Bug: None
Change-Id: Ia677b19fafe59a686262635dc90173b9f25d1bd6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165421
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30185}
2020-01-08 22:39:25 +00:00
Sebastian Jansson
4db28b5ac1 Cleanup: Removes redundant includes on message_queue.h
This is part of a CL series merging rtc::MessageQueue into rtc::Thread.

Bug: webrtc:9883
Change-Id: I3cb857cc707d5e897759366d1478cc1ec19bce9a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165344
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30180}
2020-01-08 14:12:08 +00:00
Henrik Boström
4f40fa5cef Implement RTCOutboundRtpStreamStats::remoteId.
This CL also removes RTCRtpStreamStats::associateStatsId, which is the
legacy name for this stat, which was never implemented (existed in C++
but the member always had the value undefined and was thus never exposed
in JavaScript).

Bug: webrtc:11228
Change-Id: I28c332e4bdf2f55caaedf993482dca58b6b8b9a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162800
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30171}
2020-01-07 17:26:01 +00:00
Sebastian Jansson
4442871b13 Adds srte to api/test/OWNERS.
Bug: webrtc:9883
Change-Id: Ie9ff2bddb4c4140df355560317bc508058c36909
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/164524
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30158}
2020-01-07 08:56:04 +00:00
Yves Gerey
2257c087b1 [Cleanup/Optim] Pass IPAddress by const reference.
The IPAddress class (32 bytes) was copied for each invocation.
This CL also saves some bytes in generated binary.

Bug: webrtc:9855
Change-Id: I40f2fe8570ee30d1d2251fddd56131ca4c3e7155
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/164521
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#30147}
2020-01-03 18:42:32 +00:00
Olga Sharonova
b5159fe4a7 Revert "Reland "Reland "Distinguish between send and receive video codecs"""
This reverts commit 4e64e60589.

Reason for revert: breaks a bunch of WebRtcBrowserTests on Win: https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Win10%20Tester/4843


Original change's description:
> Reland "Reland "Distinguish between send and receive video codecs""
> 
> This is a reland of 77eb338ae4
> 
> Original change's description:
> > Reland "Distinguish between send and receive video codecs"
> >
> > This reverts commit f2d6fe62f2.
> >
> > Reason for revert: Downstream test updated.
> >
> > Original change's description:
> > > Revert "Reland "Distinguish between send and receive video codecs""
> > >
> > > This reverts commit 26e6afe93f.
> > >
> > > Reason for revert: Breaks another downstream test.
> > >
> > > Original change's description:
> > > > Reland "Distinguish between send and receive video codecs"
> > > >
> > > > This reverts commit f22af3cca7.
> > > >
> > > > Reason for revert: Downstream tests have been updated.
> > > >
> > > > Original change's description:
> > > > > Revert "Distinguish between send and receive video codecs"
> > > > >
> > > > > This reverts commit 18314bd8d2.
> > > > >
> > > > > Reason for revert: Breaks downstream test.
> > > > >
> > > > > Original change's description:
> > > > > > Distinguish between send and receive video codecs
> > > > > >
> > > > > > Even though send and receive codecs are the same,
> > > > > > they might have different support in HW.
> > > > > > Distinguish between send and receive codecs to be able to keep
> > > > > > track of which codecs have HW support.
> > > > > >
> > > > > > Bug: chromium:1029737
> > > > > > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > > > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > > Cr-Commit-Position: refs/heads/master@{#30041}
> > > > >
> > > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > > >
> > > > > Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> > > > > No-Presubmit: true
> > > > > No-Tree-Checks: true
> > > > > No-Try: true
> > > > > Bug: chromium:1029737
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> > > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30042}
> > > >
> > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > >
> > > > # Not skipping CQ checks because original CL landed > 1 day ago.
> > > >
> > > > Bug: chromium:1029737
> > > > Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
> > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30078}
> > >
> > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > >
> > > Change-Id: Ia4971b898c9209a3736a916a1c2c48d392dfdad6
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: chromium:1029737
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162140
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30079}
> >
> > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> >
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> >
> > Bug: chromium:1029737
> > Change-Id: If2c3c5b5e7d86cb852a1f20f02b6ceae62b2e0c8
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162186
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30097}
> 
> Bug: chromium:1029737
> Change-Id: I5912822df8169fbb3097c0f440f7924527fa950b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162483
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30120}

TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org

Change-Id: I709ee0eb6246aa79dde3aacfc4c47e070c4e90ea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162904
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Commit-Queue: Olga Sharonova <olka@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30122}
2019-12-20 13:57:12 +00:00
Johannes Kron
4e64e60589 Reland "Reland "Distinguish between send and receive video codecs""
This is a reland of 77eb338ae4

Original change's description:
> Reland "Distinguish between send and receive video codecs"
>
> This reverts commit f2d6fe62f2.
>
> Reason for revert: Downstream test updated.
>
> Original change's description:
> > Revert "Reland "Distinguish between send and receive video codecs""
> >
> > This reverts commit 26e6afe93f.
> >
> > Reason for revert: Breaks another downstream test.
> >
> > Original change's description:
> > > Reland "Distinguish between send and receive video codecs"
> > >
> > > This reverts commit f22af3cca7.
> > >
> > > Reason for revert: Downstream tests have been updated.
> > >
> > > Original change's description:
> > > > Revert "Distinguish between send and receive video codecs"
> > > >
> > > > This reverts commit 18314bd8d2.
> > > >
> > > > Reason for revert: Breaks downstream test.
> > > >
> > > > Original change's description:
> > > > > Distinguish between send and receive video codecs
> > > > >
> > > > > Even though send and receive codecs are the same,
> > > > > they might have different support in HW.
> > > > > Distinguish between send and receive codecs to be able to keep
> > > > > track of which codecs have HW support.
> > > > >
> > > > > Bug: chromium:1029737
> > > > > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30041}
> > > >
> > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > >
> > > > Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> > > > No-Presubmit: true
> > > > No-Tree-Checks: true
> > > > No-Try: true
> > > > Bug: chromium:1029737
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30042}
> > >
> > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > >
> > > # Not skipping CQ checks because original CL landed > 1 day ago.
> > >
> > > Bug: chromium:1029737
> > > Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30078}
> >
> > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> >
> > Change-Id: Ia4971b898c9209a3736a916a1c2c48d392dfdad6
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:1029737
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162140
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30079}
>
> TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
>
> # Not skipping CQ checks because original CL landed > 1 day ago.
>
> Bug: chromium:1029737
> Change-Id: If2c3c5b5e7d86cb852a1f20f02b6ceae62b2e0c8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162186
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30097}

Bug: chromium:1029737
Change-Id: I5912822df8169fbb3097c0f440f7924527fa950b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162483
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30120}
2019-12-20 11:44:42 +00:00
Per Åhgren
9136abb45a AEC3: Ensure that the data size in the reverb computer is not fixed
This CL ensures that the no data vectors in the reverb computer code
are fixed. This allows arbitrary long filters to be used, and ensures
that a minimum required heap size is used.

Bug: webrtc:8671
Change-Id: I7085ed262a3f5965d796270434b6578f4030606e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162661
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30115}
2019-12-19 16:35:56 +00:00
Rasmus Brandt
5cad55b240 Signal requested resolution alignment requirements from sinks to sources.
Bug: webrtc:11218
Change-Id: I593b0515ea389bece472234a3c4082ccc5321ea5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162400
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30113}
2019-12-19 10:39:04 +00:00
Ilya Nikolaevskiy
f9d92ed2c8 Revert "Reland "Distinguish between send and receive video codecs""
This reverts commit 77eb338ae4.

Reason for revert: Speculative revert, as it seems to have broken webrtc-importer

Original change's description:
> Reland "Distinguish between send and receive video codecs"
> 
> This reverts commit f2d6fe62f2.
> 
> Reason for revert: Downstream test updated.
> 
> Original change's description:
> > Revert "Reland "Distinguish between send and receive video codecs""
> > 
> > This reverts commit 26e6afe93f.
> > 
> > Reason for revert: Breaks another downstream test.
> > 
> > Original change's description:
> > > Reland "Distinguish between send and receive video codecs"
> > > 
> > > This reverts commit f22af3cca7.
> > > 
> > > Reason for revert: Downstream tests have been updated.
> > > 
> > > Original change's description:
> > > > Revert "Distinguish between send and receive video codecs"
> > > > 
> > > > This reverts commit 18314bd8d2.
> > > > 
> > > > Reason for revert: Breaks downstream test.
> > > > 
> > > > Original change's description:
> > > > > Distinguish between send and receive video codecs
> > > > > 
> > > > > Even though send and receive codecs are the same,
> > > > > they might have different support in HW.
> > > > > Distinguish between send and receive codecs to be able to keep
> > > > > track of which codecs have HW support.
> > > > > 
> > > > > Bug: chromium:1029737
> > > > > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#30041}
> > > > 
> > > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > > 
> > > > Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> > > > No-Presubmit: true
> > > > No-Tree-Checks: true
> > > > No-Try: true
> > > > Bug: chromium:1029737
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> > > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30042}
> > > 
> > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > 
> > > # Not skipping CQ checks because original CL landed > 1 day ago.
> > > 
> > > Bug: chromium:1029737
> > > Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30078}
> > 
> > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > 
> > Change-Id: Ia4971b898c9209a3736a916a1c2c48d392dfdad6
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:1029737
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162140
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30079}
> 
> TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: chromium:1029737
> Change-Id: If2c3c5b5e7d86cb852a1f20f02b6ceae62b2e0c8
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162186
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30097}

TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org

Change-Id: I73d4fe3bb18e40a01f1b1b0c71f9dc7b85c513b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162208
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30100}
2019-12-16 15:28:41 +00:00
Harald Alvestrand
2697ac1a1b Stop an SCTP connection when the DTLS transport closes.
This CL propagates a "closed" signal from DTLS up to the
SCTP section of the data channel controller, where it causes
closing of all open datachannels.

Bug: chromium:1030631, webrtc:10360
Change-Id: I88bb9e1aff5c25f330edfd092ef609d4fcc3a9f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162206
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30099}
2019-12-16 14:54:56 +00:00
Artem Titov
8525a8028a Add ability to resize buffers pool in decoder and use it in IVF generator
Bug: webrtc:10138
Change-Id: I452f08f1d9af57de789bd947a1fcb95536845f80
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162183
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30098}
2019-12-16 14:51:16 +00:00
Johannes Kron
77eb338ae4 Reland "Distinguish between send and receive video codecs"
This reverts commit f2d6fe62f2.

Reason for revert: Downstream test updated.

Original change's description:
> Revert "Reland "Distinguish between send and receive video codecs""
> 
> This reverts commit 26e6afe93f.
> 
> Reason for revert: Breaks another downstream test.
> 
> Original change's description:
> > Reland "Distinguish between send and receive video codecs"
> > 
> > This reverts commit f22af3cca7.
> > 
> > Reason for revert: Downstream tests have been updated.
> > 
> > Original change's description:
> > > Revert "Distinguish between send and receive video codecs"
> > > 
> > > This reverts commit 18314bd8d2.
> > > 
> > > Reason for revert: Breaks downstream test.
> > > 
> > > Original change's description:
> > > > Distinguish between send and receive video codecs
> > > > 
> > > > Even though send and receive codecs are the same,
> > > > they might have different support in HW.
> > > > Distinguish between send and receive codecs to be able to keep
> > > > track of which codecs have HW support.
> > > > 
> > > > Bug: chromium:1029737
> > > > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#30041}
> > > 
> > > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > > 
> > > Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: chromium:1029737
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> > > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30042}
> > 
> > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > 
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> > 
> > Bug: chromium:1029737
> > Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30078}
> 
> TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> 
> Change-Id: Ia4971b898c9209a3736a916a1c2c48d392dfdad6
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1029737
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162140
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30079}

TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1029737
Change-Id: If2c3c5b5e7d86cb852a1f20f02b6ceae62b2e0c8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162186
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30097}
2019-12-16 14:03:46 +00:00
Johannes Kron
f2d6fe62f2 Revert "Reland "Distinguish between send and receive video codecs""
This reverts commit 26e6afe93f.

Reason for revert: Breaks another downstream test.

Original change's description:
> Reland "Distinguish between send and receive video codecs"
> 
> This reverts commit f22af3cca7.
> 
> Reason for revert: Downstream tests have been updated.
> 
> Original change's description:
> > Revert "Distinguish between send and receive video codecs"
> > 
> > This reverts commit 18314bd8d2.
> > 
> > Reason for revert: Breaks downstream test.
> > 
> > Original change's description:
> > > Distinguish between send and receive video codecs
> > > 
> > > Even though send and receive codecs are the same,
> > > they might have different support in HW.
> > > Distinguish between send and receive codecs to be able to keep
> > > track of which codecs have HW support.
> > > 
> > > Bug: chromium:1029737
> > > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#30041}
> > 
> > TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> > 
> > Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> > No-Presubmit: true
> > No-Tree-Checks: true
> > No-Try: true
> > Bug: chromium:1029737
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> > Reviewed-by: Johannes Kron <kron@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30042}
> 
> TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: chromium:1029737
> Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30078}

TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org

Change-Id: Ia4971b898c9209a3736a916a1c2c48d392dfdad6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162140
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30079}
2019-12-12 22:30:25 +00:00
Johannes Kron
26e6afe93f Reland "Distinguish between send and receive video codecs"
This reverts commit f22af3cca7.

Reason for revert: Downstream tests have been updated.

Original change's description:
> Revert "Distinguish between send and receive video codecs"
> 
> This reverts commit 18314bd8d2.
> 
> Reason for revert: Breaks downstream test.
> 
> Original change's description:
> > Distinguish between send and receive video codecs
> > 
> > Even though send and receive codecs are the same,
> > they might have different support in HW.
> > Distinguish between send and receive codecs to be able to keep
> > track of which codecs have HW support.
> > 
> > Bug: chromium:1029737
> > Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> > Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30041}
> 
> TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org
> 
> Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1029737
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
> Reviewed-by: Johannes Kron <kron@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30042}

TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1029737
Change-Id: Ia70b11376b43888e2495ef21838c2d2e3c68d735
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161734
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30078}
2019-12-12 22:13:02 +00:00
Sebastian Jansson
3927298c22 Adds queue length setter to simulated network node builder.
Bug: webrtc:9883
Change-Id: Icf3d2c78200f0a5e716c872ab973af0e4026f362
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161305
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30071}
2019-12-12 09:15:21 +00:00
Sebastian Jansson
ce911263a4 Allows creating a test network node builder without manager.
This is used to allow using a pre-configured builders as arguments to
fixture code.

Bug: webrtc:9510
Change-Id: I7837d284580fdbc926535ce5b2d8f582056534ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161948
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30070}
2019-12-12 09:14:34 +00:00
Hirokazu Honda
1154915024 video_encoder: Add RTC_EXPORT ScalingSettings
ScalingSettings has some public constructors. These should be
able to be called from exteranl code. However, a linker fails
on windows because ScalingSettings doesn't have RTC_EXPORT.

Bug: chromium:1031965
Test: build crrev.com/c/1949841
Change-Id: Iddaea77f87c52edbe8f77551322d7aa198bc0aeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161860
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30063}
2019-12-11 15:14:56 +00:00
Jonas Oreland
9a52bd733c STUN PING request
This patch introduces a new type of STUN ping,
GOOG_PING_REQUEST/RESPONSE which is similar
to a STUN_BINDING but does not transmit any values.

The Connection class automatically sends these if
no STUN attributes has changed since last call to Connection::Ping()
if the remote peer has signaled that it supports it.

BUG=webrtc:11100

Change-Id: Ib1b590f0b90ca6cb56f2eb07cd62f976e246bc8c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159961
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Taylor <deadbeef@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30062}
2019-12-11 14:23:30 +00:00
Johannes Kron
f22af3cca7 Revert "Distinguish between send and receive video codecs"
This reverts commit 18314bd8d2.

Reason for revert: Breaks downstream test.

Original change's description:
> Distinguish between send and receive video codecs
> 
> Even though send and receive codecs are the same,
> they might have different support in HW.
> Distinguish between send and receive codecs to be able to keep
> track of which codecs have HW support.
> 
> Bug: chromium:1029737
> Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30041}

TBR=steveanton@webrtc.org,andersc@webrtc.org,kron@webrtc.org

Change-Id: I7e5807460006db613e9b3b369ec6036b88f164fd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1029737
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161662
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30042}
2019-12-09 14:48:55 +00:00
Johannes Kron
18314bd8d2 Distinguish between send and receive video codecs
Even though send and receive codecs are the same,
they might have different support in HW.
Distinguish between send and receive codecs to be able to keep
track of which codecs have HW support.

Bug: chromium:1029737
Change-Id: I16a80da44c5061ca42f2aabda76e6bf0b879bf7b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161306
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30041}
2019-12-09 13:56:55 +00:00
Harald Alvestrand
dfbfb46062 Return an error when datachannel closes due to network error
This is the start of generating compliant errors, including diagnostics,
when datachannels close because of errors.

Bug: chromium:1030631
Change-Id: I39aa41728efb25bca6193a782db4cbdaad8e0dc1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161304
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30034}
2019-12-08 17:33:54 +00:00
Artem Titov
33f9d2b383 Migrate WebRTC on FrameGeneratorInterface and remove FrameGenerator class
Bug: webrtc:10138
Change-Id: If85290581a72f81cf60181de7a7134cc9db7716e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161327
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30033}
2019-12-07 00:54:26 +00:00
Florent Castelli
907dc806c7 Reland "Add support for RtpEncodingParameters::max_framerate"
Perf test failure was fixed separately.

TBR=steveanton@webrtc.org,sprang@webrtc.org,asapersson@webrtc.org

Original change's description:
> This adds the framework support for the max_framerate parameter.
> It doesn't implement it in any encoder yet.
>
> Bug: webrtc:11117
> Change-Id: I329624cc0205c828498d3623a2e13dd3f97e1629
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160184
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Commit-Queue: Florent Castelli <orphis@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29907}

Bug: webrtc:11117
Change-Id: I9c1daf7887c2024c6669dc79bff89d737417458c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161445
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30030}
2019-12-06 15:11:54 +00:00
Ivo Creusen
1518fd34d8 Add support for setting a custom NetEqFactory in PeerConnection level tests.
This allows running Peerconnection level tests with a custom NetEqFactory.

Bug: webrtc:11005
Change-Id: If3063cf61a6274a137e4ab74f9ec2665425f21ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161307
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30028}
2019-12-06 12:34:02 +00:00
Sebastian Jansson
cec2433c47 Exposing more features in the network emulation manager API.
Bug: webrtc:9883
Change-Id: I2a687b46e3374db0dd08b0c02dfea1482e6fb89f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161229
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30024}
2019-12-06 08:47:19 +00:00
Artem Titov
78782a806f Fix IVF FrameGenerator factory method name
Bug: webrtc:10138
Change-Id: I8175209beade8a67e63addf30fb0bda1d941f6c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161326
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30013}
2019-12-05 10:14:51 +00:00
Artem Titov
0020226e63 Replace VideoSourceInterface with FrameGeneratorInterface in AddVideoConfig
Replace VideoSourceInterface with FrameGeneratorInterface in
AddVideoConfig in PC quality test fixture.

Bug: webrtc:10138
Change-Id: I6e5fe91d286e0360bfcad1785af1fb1d8f890563
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161239
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30012}
2019-12-05 10:02:22 +00:00
Artem Titov
fd76b5fe86 Introduce factory method for IVF frame generator
Bug: webrtc:10138
Change-Id: I9039aa289c935b7fcc2f3ab4ddec6413eb1302c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161324
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30011}
2019-12-05 09:28:56 +00:00
Artem Titov
503d7237ce Introduce FrameGeneratorInterface
Introduce FrameGeneratorInterface to make FrameGenerator API available
for downstream projects.

Bug: webrtc:10138
Change-Id: I4216775e4b8b54c3f1c72d67ffbda31eb082fd7e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161234
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30009}
2019-12-04 21:09:57 +00:00
Sebastian Jansson
340af975e9 Always enter yield policy scope using simulated TimeControllers.
This makes the class easier to use at a minor cost of making it slightly
more magic.

Bug: webrtc:9883
Change-Id: If807cfbf046615333c3bcd3b58a001813102a9f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161231
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30008}
2019-12-04 17:16:32 +00:00
Eldar Rello
0095d37137 Replace hostCandidate with address and port in RTCPeerConnectionIceErrorEvent
Bug: chromium:1013564
Change-Id: Ie1bb86ed6a2a7d73fe6ee666f973d809ed05a7ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161084
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Eldar Rello <elrello@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#30004}
2019-12-04 13:18:22 +00:00
Markus Handell
9c27ed23d2 VideoRtpReceiver: Enable encoded frame sink.
This change finally wires up VideoRtpReceiver::OnGenerateKeyFrame and
OnEncodedSinkEnabled into internal::VideoReceiveStream so that encoded
frames can flow to sinks installed in VideoTrackSourceInterface.

Bug: chromium:1013590
Change-Id: I76f8226752294aee8fe137d1a78ee66548900cc2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161095
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30003}
2019-12-04 12:55:40 +00:00
Saurav Das
934afc6ba1 Deprecate RtpReceiver's SetParameters method
This removes the SetParameters method from AudioRtpReceiver and Video
RtpReceiver, which is currently not used and is not part of the
specifications.


Bug: webrtc:11111
Change-Id: I6f67773bfef2d4b51e9ab670bde17b5fbf5f94c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159307
Reviewed-by: Patrik Höglund <phoglund@google.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Daniela Jovanoska Petrenko <denicija@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Saurav Das <dinosaurav@chromium.org>
Cr-Commit-Position: refs/heads/master@{#29995}
2019-12-03 19:50:42 +00:00
Ken MacKay
831ce5f171 Export more symbols to fix Chromecast component build
When building certain Chromecast build flavors in component build mode,
there are some link errors due to symbols not being exported. This CL
fixes those issues.

TBR: kwiberg@webrtc.org
Bug: None
Change-Id: I408f0a84b8ac4610cc6b5aa6ff58248ea82c9c66
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161148
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29992}
2019-12-03 17:41:04 +00:00
Markus Handell
486cc55a02 TimeController: Rename Sleep to AdvanceTime.
This change renames TimeController's Sleep method to AdvanceTime, unifying
the same name with the same semantic as for downstream projects.

Bug: webrtc:11154
Change-Id: Id79bcf0eafcd0b47a76407ba220479d84df5a736
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161092
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29989}
2019-12-03 16:08:54 +00:00
Markus Handell
269ac81a86 VideoReceiveStream: Enable encoded frame sink.
This change ultimately enables wiring up VideoRtpReceiver::OnGenerateKeyFrame and
OnEncodedSinkEnabled into internal::VideoReceiveStream so that encoded frames
can flow to sinks installed in VideoTrackSourceInterface.

Bug: chromium:1013590
Change-Id: I0779932c251a2159880a39b2d42d5ce439cc88e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161090
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29988}
2019-12-03 15:55:04 +00:00
Artem Titov
5d3a418a26 Add explicit copy constructors and assign operators for some classes.
It should fix compilation errors that happen on some iOS bots saying
"definition of implicit copy assignment operator for 'Foo'
is deprecated because it has a user-declared copy constructor"

Bug: webrtc:11162
Change-Id: Ife3d1a800ed6a4cd08bdfd156cd0e320504ee8dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161221
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29984}
2019-12-03 14:27:45 +00:00
Florent Castelli
a8c2f5180f Remove unused non-standard RtpEncodingParameters members
Bug: webrtc:7580
Change-Id: Ic1a6e52f25eb35c797e669bffe8040ec84fec386
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160415
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29983}
2019-12-03 13:26:53 +00:00
Per Åhgren
6a05bb1b12 AEC3: Add signal dependent mixing before alignment
This CL adds code for doing signal-dependent downmixing
before the delay estimation in the multichannel case.

As part of the CL, the unittests of the render delay
controller are corrected. However, as that caused some of
them to fail, the CL (for now) as well disables the failing
test.

Bug: webrtc:11153,chromium:1029740, webrtc:11161
Change-Id: I0b765c28fa5e547aabd6dfbd24b626ff9a16346f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161045
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29980}
2019-12-03 11:30:48 +00:00
Per Åhgren
67d3bc2b3d Changed parameter name to match the use of it in AEC3
Bug: webrtc:8671
Change-Id: I016c8ad81556aef5b671466abcc88c0c15234465
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160783
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29977}
2019-12-03 10:18:14 +00:00
Per Åhgren
464741276f Make new method pure virtual in the EchoControl interface
Bug: webrtc:8671
Change-Id: I673e79fae1e763131b71fceb64d7a909e662f568
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160785
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29975}
2019-12-03 10:16:08 +00:00
Artem Titov
5256d8bc4b Refactor FrameGenerator to return VideoFrameBuffer with VideoFrame::UpdateRect
Bug: webrtc:10138
Change-Id: I22079e2630bb1f3bb27472795fe923f9143b3401
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161010
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29973}
2019-12-02 17:11:37 +00:00
Ivo Creusen
39cf3c723e Clean up the NetEqFactory API.
This CL decouples NetEqFactory and AudioDecoderFactory.
AudioDecoderFactory is used in more places than just inside of NetEq, so
decoupling these makes sense.

Bug: webrtc:11005
Change-Id: I78dd856e4248e398e69a65816b062ef30555b055
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161005
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29961}
2019-11-29 14:04:44 +00:00
Mirko Bonadei
c7a3b08f07 Prefix ENABLE_RTC_EVENT_LOG with WEBRTC_.
Since this macro can be considered public, it makes sense to prefix it
with WEBRTC_ (also to avoid potential conflicts with client code).

This CL also removes some definitions of this macro in order to define
it only where it is strictly needed (it is only used in a .cc file).

Bug: webrtc:11142
Change-Id: Idce7389301e71d8434e238b3cf4ceaa9cf97cd87
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161008
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29957}
2019-11-29 09:45:50 +00:00
Per Åhgren
9750e84d7a AEC3:Turning off default downmix in surround alignment
This CL changes the downmixing of the input to the delay estimation
for surround/stereo signals to be off by default.

A kill-switch is also added for enforcing the downmix to be on.

Bug: webrtc:10913
Change-Id: I1030fef593ba56416deeb13b80d2f3812bffb9ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/161012
Commit-Queue: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29951}
2019-11-28 17:44:40 +00:00
Jonas Oreland
253d50fbe6 Add new Stun utility functions
This patch introduces 3 new functions on StunMessages
- Clone, copy a message
- IsStunMethod, verifies that a buffer is a StunMessage
  w/o requring a fingerprint
- EqualAttributes, compare attributes in two stun messages
  (with filter)

This methods will be used to implement GOOG_PING

BUG=webrtc:11100

Change-Id: I284726c74aa0437be0bb9fbcf943c7d64a18acec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160281
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29950}
2019-11-28 16:57:30 +00:00
Erik Språng
7968530418 Removes caching SimulcastEncoderAdapter::GetEncoderInfo()
There are edge cases where the caching of encoder info will cause
issues. For instance if a sub-encoder fails en Encode call and falls
back to some other implementation, or if the fps targets shift due to
SetRates() triggering new layers to be enabled.

This CL forces a complete rebuild on every call to GetEncoderInfo().

It also adds new logging of when the info changes, as debugging issues
can be very time consuming if we can't tell that happened.

Bug: webrtc:11000
Change-Id: I7ec7962a589ccba0e188e60a11f851c9de874fab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160960
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29938}
2019-11-27 17:06:54 +00:00
Danil Chapovalov
b529b7aeba Add string<->VideoCodecType conversion for all codec types.
Use that conversion instead of duplicating it in call/

Bug: webrtc:11042
Change-Id: I035b161d429ec339dd2ad9e9ed3ede5045fb6199
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160881
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29936}
2019-11-27 14:15:07 +00:00
Florent Castelli
5cef9c3581 Revert "Add support for RtpEncodingParameters::max_framerate"
This reverts commit 15be5282e9.

Reason for revert: crbug.com/1028937

Original change's description:
> Add support for RtpEncodingParameters::max_framerate
> 
> This adds the framework support for the max_framerate parameter.
> It doesn't implement it in any encoder yet.
> 
> Bug: webrtc:11117
> Change-Id: I329624cc0205c828498d3623a2e13dd3f97e1629
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160184
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Commit-Queue: Florent Castelli <orphis@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29907}

TBR=steveanton@webrtc.org,asapersson@webrtc.org,sprang@webrtc.org,orphis@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:11117
Change-Id: Ic44dd36bea66561f0c46e73db89d451cb3e22773
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160941
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29935}
2019-11-27 14:01:53 +00:00
Per Åhgren
17e4c58318 Adding parametrization of the AEC3 howling mitigation behavior
Bug: webrtc:8671,b/145243047
Change-Id: If5bcbb66b72278b901a990cb9d6e11e42c9ac592
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160781
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29930}
2019-11-27 11:56:17 +00:00
Danil Chapovalov
dc36829db0 Add VideoCodecType::kVideoCodecAV1 value
Bug: webrtc:11042
Change-Id: I3c5151c9e47679760f8f7d79270488fa8f4c7db5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159282
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29927}
2019-11-27 10:18:45 +00:00
Steve Anton
c363982eea Convert proxy.h helper classes to variadic templates
Bug: None
Change-Id: I74f4e24a8c8b5a124782e8c8294a0673acef4faf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160741
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29925}
2019-11-27 00:29:50 +00:00
Bjorn A Mellem
7a9a092708 Delete media transport integration.
MediaTransport is deprecated and the code is unused.

No-Try: True
Bug: webrtc:9719
Change-Id: I5b864c1e74bf04df16c15f51b8fac3d407331dcd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160620
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29923}
2019-11-26 19:19:36 +00:00
Karl Wiberg
44d7ec0683 Add Opus-only audio codec factories
Many WebRTC users need only Opus, and no other audio codecs. This
makes it convenient for them to do the right thing.

To prove that the new factories work, use them in
PeerConnectionEndToEndTest.

Bug: webrtc:11130
Change-Id: I2c2450ba0fb33ef3b50da8f6cd325cad6b1e59a6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160648
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29921}
2019-11-26 18:28:07 +00:00
Ivo Creusen
68c6572980 Add a CreateNetEq method that takes an AudioDecoderFactory
The NetEqFactory is currently expected to wrap the AudioDecoderFactory,
but this turns out not to be a good idea. Instead, it makes more sense
to pass the AudioDecoderFactory through the CreateNetEq method.

Bug: webrtc:11005
Change-Id: I8027ff6593f40c92072e7e88157631dcf329a984
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160644
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29918}
2019-11-26 14:43:49 +00:00
Markus Handell
d5e2f215d6 VideoRtpTrackSource: implement encoded source methods.
This change implements the methods in VideoTrackSourceInterface
that are related to encoded output.

Bug: chromium:1013590
Change-Id: Id9ddbc00a7098e9b44cee1517c69002865a5fb33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159926
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29912}
2019-11-26 09:17:52 +00:00
Florent Castelli
15be5282e9 Add support for RtpEncodingParameters::max_framerate
This adds the framework support for the max_framerate parameter.
It doesn't implement it in any encoder yet.

Bug: webrtc:11117
Change-Id: I329624cc0205c828498d3623a2e13dd3f97e1629
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160184
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29907}
2019-11-25 16:43:59 +00:00
Gustaf Ullberg
f534a64047 AEC3: Sub-band nearend detector
Implements an alternative to the dominant nearend detector.

Bug: b/130016532
Change-Id: If4867d58aad036ccf4e456ef81689b8db0284f7d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159865
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29906}
2019-11-25 16:26:49 +00:00
philipel
c7a46c49a0 Fix VideoStreamEncoder to not reference encoded data from the RunPostEncode task.
Bug: webrtc:9378
Change-Id: I1ada7018507d0c78fee51523f8cd4fab76c35432
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160306
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29903}
2019-11-25 14:41:55 +00:00
Johannes Kron
00376e190a Add totalInterFrameDelay to RTCInboundRTPStreamStats
Bug: webrtc:11108
Change-Id: I0e0168ba303b127a8db3946d5fa5f97a1c90fb27
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160042
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29894}
2019-11-25 10:50:37 +00:00
Bjorn A Mellem
c4f865413a Add TimeController to api/test/ and add a CreateTimeController API.
Creates an abstraction for an "alarm clock" which can schedule
time-controller callbacks and exposes a time controller driven by
an external alarm.

Bug: webrtc:9719
Change-Id: I08c2aa9dba25603043bfba48f55c925716a55bae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158969
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29879}
2019-11-22 17:07:23 +00:00
Patrik Höglund
e43b531266 Nuke p2p/base/stun.h
All downstream users have been moved to the new one.

Bug: webrtc:11091
Change-Id: Ia18d0df94a7b95b1a58b4a53cfb195c61ef59ffd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160201
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29873}
2019-11-22 14:02:10 +00:00
Jonas Oreland
63737a918b Add new GOOG_PING and GOOG_MESSAGE_INTEGRITY_32
This patch adds
- Attribute: STUN_ATTR_GOOG_MESSAGE_INTEGRITY_32
  which is a ordinary message integrity but truncated to 32-bit
- Method: GOOG_PING,
  which will be used for webrtc:11100

Both the attribute and the method has been registered at iana,
https://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml#stun-parameters-4

BUG=webrtc:11100

Change-Id: Iddd5614473fd6f18fbbe76e72d047c617df7123f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160180
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29864}
2019-11-21 15:29:50 +00:00
Markus Handell
026f64fc54 Revert "VideoFrame: Store a reference to an encoded frame"
This reverts commit e6eded31e6.

Reason for revert: A better method for communicating encoded frames in VideoTrackSourceInterface surfaced.

Original change's description:
> VideoFrame: Store a reference to an encoded frame
> 
> Enable webrtc::VideoFrame to store a reference to an encoded frame.
> 
> Bug: chromium:1013590
> Change-Id: Id5a06f1c7249f104dfd328f08677cf8001958f0d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158788
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Philip Eliasson <philipel@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Markus Handell <handellm@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29809}

TBR=ilnik@webrtc.org,nisse@webrtc.org,stefan@webrtc.org,philipel@webrtc.org,handellm@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: chromium:1013590
Change-Id: I46384b7997e7b1cd3a2a2042cf17890fc977cca3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160204
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29863}
2019-11-21 14:55:21 +00:00
Erik Språng
662678dbf7 Adds injectable trials from peerconnection down to transport controller.
This will be immediately useful to guarantee consistent state across
components referencing the pacer, but will be a net benefit overall
imo.

Bug: webrtc:10809
Change-Id: I49630696f757a832ccf2e4c8597193bf087ce53b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159885
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29859}
2019-11-21 12:41:45 +00:00
Markus Handell
9982efa830 MediaStreamInterface: introduce encoded sinks.
This change adds a new type of sink for consuming encoded data from
a video source.

Bug: chromium:1013590
Change-Id: Ia7c4e372190c3d6bc007a0d4deb05c2d1bce58d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159927
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29856}
2019-11-21 12:03:35 +00:00
Ruslan Burakov
d51cc7bd71 Add absolute capture time property to rtp sources.
This part of the effort to implement A/V sync metric.

Bug: webrtc:10739
Change-Id: I4adba1b99b37b31868168e37d9aa8e03f8ea6d4e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159886
Commit-Queue: Ruslan Burakov <kuddai@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ruslan Burakov <kuddai@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29849}
2019-11-20 18:50:45 +00:00
Mirko Bonadei
6dd488b2e5 RTC_EXPORT RTCStatsMember's specialized members.
Without this, on some build configurations the symbols of the
specialized members don't get exported as explained at:
https://bugs.chromium.org/p/chromium/issues/detail?id=1026078#c10

Bug: chromium:1026078
Change-Id: I0c3058a82d60e6de5e401dbec5bb8501b7bbd8b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160046
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29846}
2019-11-20 13:53:37 +00:00
Jonas Oreland
1721de12bd Add STUN_ATTR_GOOG_MISC_INFO
This patch adds the new STUN attribute that has been registered at iana,
https://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml#stun-parameters-4

This is part of the effort to land https://webrtc-review.googlesource.com/c/src/+/85520.
I have merged that patch with upstream, and is now doing privacy review of it.

This attribute is hence not yet used.

BUG=webrtc:9446

Change-Id: Iaf177b0c28a6aa830a9422260b67436bb05ac756
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160043
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29843}
2019-11-20 13:07:25 +00:00
Ilya Nikolaevskiy
0660ceef0e Add scale and compare methods to VideoFrame::UpdateRect
Add tests for different UpdateRect methods as they are no longer trivial

This change will enable providing useful update rects after scaling
is done.

Bug: webrtc:11058
Change-Id: I2311dbbbb5eca5cfaf845306674e6890050f80c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159820
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29835}
2019-11-19 15:42:42 +00:00
Patrik Höglund
56d945233d Move stun.h to api/.
We now have two downstream users of stun.h, so it appears to be
generally usable. I put this in a new dir networking/, but I'm open to
suggestions here (maybe some things in api/ should move in there).

I checked what our downstream users are actually using, and it's

cricket::ComputeStunCredentialHash
cricket::<constants>
cricket::TurnMessage
cricket::GetStunErrorResponseType
cricket::StunAttribute::CreateAddress
cricket::StunErrorCodeAttribute
cricket::StunByteStringAttribute
StunAttribute::CreateUnknownAttributes
cricket::TurnErrorType
cricket::StunMessage

I reckoned that was pretty much everything in stun.h, so I didn't
bother splitting it up. They don't use every function and constant
in there, but all _types_ of functions and constants, so for the
sake of coherence I don't think it makes sense to split it.

There's some old stuff in there like GTURN which could arguably
be split out, but it should likely go away soon anyway, so I don't
think it's worth the effort.

Steps:
1) land this
2) update downstream to point to the new header and target
3) remove p2p/base:stun_types.

Bug: webrtc:11091
Change-Id: I1f05bf06055475d25601197ec6fefb8d3b55e8e3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159923
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29822}
2019-11-18 16:11:27 +00:00
Mirko Bonadei
92dd35d035 Reland "Force Chromium deps on the WebRTC component."
This is a reland of 53e157d25c

The issue has been fixed in
https://chromium-review.googlesource.com/c/chromium/src/+/1917204.

Original change's description:
> Force Chromium deps on the WebRTC component.
>
> This CL adds a visibility check to the rtc_* GN templates in order
> to force Chromium to depend only on publicly visible targets from
> //third_party/webrtc_overrides and not from //third_party/webrtc.
>
> This is required in order to ensure that the Chromium's component
> builds continues to work correctly without introducing direct
> dependency paths on WebRTC that would statically link it in multiple
> shared libraries.
>
> Bug: webrtc:9419
> Change-Id: Ib89f4fc571512f99678ee4f61696b316374346d9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154344
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29806}

TBR: kwiberg@webrtc.org
Bug: webrtc:9419
Change-Id: I7123d1b44ddbc23b11d9fa25aa39aa420359e33d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159922
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29816}
2019-11-18 12:16:43 +00:00
Mirko Bonadei
2419dc9cfc Revert "Force Chromium deps on the WebRTC component."
This reverts commit 53e157d25c.

Reason for revert: Breaks Chromium iOS FYI bots.
https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20ios-device/5088

Original change's description:
> Force Chromium deps on the WebRTC component.
>
> This CL adds a visibility check to the rtc_* GN templates in order
> to force Chromium to depend only on publicly visible targets from
> //third_party/webrtc_overrides and not from //third_party/webrtc.
>
> This is required in order to ensure that the Chromium's component
> builds continues to work correctly without introducing direct
> dependency paths on WebRTC that would statically link it in multiple
> shared libraries.
>
> Bug: webrtc:9419
> Change-Id: Ib89f4fc571512f99678ee4f61696b316374346d9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154344
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29806}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,dpranke@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

TBR: kwiberg@webrtc.org
Bug: webrtc:9419
Change-Id: Id4d906910d569a3e5db3afef8c03672fba6dad81
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159921
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29813}
2019-11-18 08:11:30 +00:00
Markus Handell
e6eded31e6 VideoFrame: Store a reference to an encoded frame
Enable webrtc::VideoFrame to store a reference to an encoded frame.

Bug: chromium:1013590
Change-Id: Id5a06f1c7249f104dfd328f08677cf8001958f0d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158788
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29809}
2019-11-16 10:15:38 +00:00
Qingsi Wang
25ec8882f7 Make ICE transports injectable.
Bug: chromium:1024965
Change-Id: I4961f50aee34c82701299f59a95cb90d231db6f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158820
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Honghai Zhang <honghaiz@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29807}
2019-11-15 21:31:19 +00:00
Mirko Bonadei
53e157d25c Force Chromium deps on the WebRTC component.
This CL adds a visibility check to the rtc_* GN templates in order
to force Chromium to depend only on publicly visible targets from
//third_party/webrtc_overrides and not from //third_party/webrtc.

This is required in order to ensure that the Chromium's component
builds continues to work correctly without introducing direct
dependency paths on WebRTC that would statically link it in multiple
shared libraries.

Bug: webrtc:9419
Change-Id: Ib89f4fc571512f99678ee4f61696b316374346d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154344
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29806}
2019-11-15 16:36:28 +00:00
Per Åhgren
c20a19cc4b Allow extracting the linear AEC output
This CL enables extracting the linear AEC output,
allowing for more straightforward
testing/development.

Bug: b/140823178
Change-Id: I14f7934008d87066b35500466cb6e6d96f811688
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153672
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29789}
2019-11-13 11:33:53 +00:00
Mirko Bonadei
759f161182 Use explicit template decl/def for RTCNonStandardStatsMember.
This should fix the error raised by lld-link while testing the WebRTC
component build (see [1]).

[1] - https://ci.chromium.org/p/chromium/builders/try/win_chromium_compile_dbg_ng/436729

Bug: webrtc:9419
Change-Id: Ia239f544432c55ae69e2da474b8284143c94a003
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159697
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29786}
2019-11-13 11:12:40 +00:00
Mirko Bonadei
d4002a733d RTC_EXPORT missing symbols for Chromium's component build.
This CL adds a dependecy on rtc_base/system:rtc_export to rtc_event but
only when built as part of Chromium (since rtc::Event should not be
used outside of WebRTC).

It also adds other missing RTC_EXPORTS.

Bug: webrtc:9419
Change-Id: Ib338004a5404a6b3c7929e146c29ad42572632cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159692
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29781}
2019-11-12 21:50:01 +00:00
Mirko Bonadei
f47c2ab889 RTC_EXPORT webrtc::RTCNonStandardStatsMember<T>.
Since webrtc::RTCNonStandardStatsMember<T> extends some explicit
template initializations, its symbols need to be exported as well.

Example of an lld-link error:
https://ci.chromium.org/p/chromium/builders/try/win_chromium_compile_dbg_ng/435974

Bug: webrtc:9419
Change-Id: I48bd484b821b17a214e0180e78ba34c38e247947
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159693
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29780}
2019-11-12 21:19:11 +00:00
Artem Titov
b4463eeedc Add ability to specify custom video source for PC framework.
Add ability to provide custom implementation of rtc::VideoSourceInterface
as source for video track in PC-framework based media quality tests.

Bug: webrtc:10138
Change-Id: I8ffd3015230c733a0a9a2e97fd4bb93a0c02b283
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159680
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29776}
2019-11-12 17:08:55 +00:00
Mirko Bonadei
051cae5d11 RTC_EXPORT IceServer, StatsReport::{IdBase,Value}.
The component build test failed close to the end of compilation because
of these three missing symbols, see [1].

[1] - https://ci.chromium.org/p/chromium/builders/try/win_chromium_compile_dbg_ng/435777

Bug: webrtc:9419
Change-Id: Icd32fc195229d612bc7b00451f41dc47e589e638
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159686
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29770}
2019-11-12 12:52:25 +00:00
Danil Chapovalov
ba916b7bd4 Mark scoped_refptr move and swap operations as noexcept
to align with chromium scoped_refptr implementation
and prefer move over copy in some cases.

Bug: webrtc:11078
Change-Id: I3178e74e611e4b23435668878e6bcc98bc2ce77d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159541
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29768}
2019-11-12 10:17:22 +00:00
Mirko Bonadei
8fa616f3b0 Add 2 more RTC_EXPORT.
The component build test failed close to the end of compilation because
of these two missing symbols, see [1].

[1] - https://ci.chromium.org/p/chromium/builders/try/win_chromium_compile_dbg_ng/435732

Bug: webrtc:9419
Change-Id: Ic46acf1acbf3bc04e7410f8d9858785739ca98d6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159683
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29766}
2019-11-12 09:44:29 +00:00
Mirko Bonadei
62a19d0798 RTC_EXPORT RTCStatsMember::StaticType and VideoFrame::Builder.
Bug: webrtc:9419
Change-Id: I093a00926af5f5169e14d2680a65c8cbda6cbfba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159542
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29760}
2019-11-11 19:40:25 +00:00
Gustaf Ullberg
2c6f373a27 Remove legacy EchoControlFactory::Create
Bug: webrtc:10913
Change-Id: I34af9abe76f5b08d7dc5c3e0281fafc14a71eed8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159031
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29741}
2019-11-08 09:58:27 +00:00
Mirko Bonadei
54875d05f1 Add missing RTC_EXPORT for the Chromium Windows build.
After fixing the issue with crbug.com/1018579, lld-link complained
that some symbols need to be exported, see [1].

[1] - https://ci.chromium.org/p/chromium/builders/try/win_chromium_compile_dbg_ng/432025

Bug: webrtc:9419
Change-Id: I9107a9c76361f4c66463a9af2e81a3991ae14df5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159007
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29721}
2019-11-07 09:32:24 +00:00
Sebastian Jansson
bae12756da Using unit types in TransportFeedbackAdapter.
Bug: webrtc:9883
Change-Id: I6d7d653079bb969fa3bc6f62fd35f2aa870edab6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158792
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29705}
2019-11-06 12:25:00 +00:00
Henrik Boström
ee6f4f67ef [PeerConnection] Implement asynchronous version of AddIceCandidate().
This is the same as the existing version, except it uses the Operations
Chain. As such, if an asynchronous operation that uses the chain is
currently pending, such as CreateOffer() or CreateAnswer(),
AddIceCandidate() will not happen until the previous operation
completes.

Bug: chromium:1019222
Change-Id: Ie6e5fc386fa9c29b5e2f8e3f65bfbaf9837d351c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158741
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29704}
2019-11-06 12:16:00 +00:00
Mirko Bonadei
1e6aa1f8bf Remove RTC_EXPORT from RTCStatsMember<T> template declaration.
Starting from [1], explicit template declaration/definition is in use
for this template so there is no need to RTC_EXPORT its declaration.
Doing so leads to this error on clang-cl:

../../third_party/webrtc\api/stats/rtc_stats.h(372,1): error: explicit instantiation declaration should not be 'dllexport' [-Werror,-Wdllexport-explicit-instantiation-decl]
WEBRTC_DECLARE_RTCSTATSMEMBER(bool);
^
../../third_party/webrtc\api/stats/rtc_stats.h(369,3): note: expanded from macro 'WEBRTC_DECLARE_RTCSTATSMEMBER'
  extern template class RTC_EXPORT_TEMPLATE_DECLARE(RTC_EXPORT)  \
  ^
../../third_party/webrtc\api/stats/rtc_stats.h(287,7): note: attribute is here
class RTC_EXPORT RTCStatsMember : public RTCStatsMemberInterface {
      ^
../..\third_party/webrtc/rtc_base/system/rtc_export.h(24,31): note: expanded from macro 'RTC_EXPORT'

Full log: https://ci.chromium.org/p/chromium/builders/try/win_chromium_compile_dbg_ng/430931

[1] - https://webrtc-review.googlesource.com/c/src/+/158795

Bug: webrtc:9419
Change-Id: I9f0893ae26b45049f186e19f862a1d138a320a24
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158891
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29703}
2019-11-06 10:26:45 +00:00
Sergey Silkin
df8fd28d0b Add output_path to VideoCodecTestFixture::Config.
This lets test to set output path explicitly.

Bug: none
Change-Id: I756484775f4c7f44cd1bb904c89d9215ffa48fe1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158798
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29702}
2019-11-06 08:48:52 +00:00
Per Åhgren
4e5c709ed4 Reland "Correct AEC3 multichannel functionality activation"
This is a reland of 9dda1b3a48

Original change's description:
> Correct AEC3 multichannel functionality activation
> 
> This CL corrects the AEC3 multichannel activation
> to also work for the case when a factory is used
> for the activation.
> 
> Bug: webrtc:10913
> Change-Id: Ic2807d8bcef759261fde14447cff30633ba248dc
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158794
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29676}

Bug: webrtc:10913
Change-Id: I1cb3d0de61ea0b299158ca85433f2442c65c196f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158886
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29690}
2019-11-05 14:38:49 +00:00
Per Åhgren
1983458981 Revert "Reland "Correct AEC3 multichannel functionality activation""
This reverts commit d5a7838926.

Reason for revert: Causing errors in downstream tests.

Original change's description:
> Reland "Correct AEC3 multichannel functionality activation"
> 
> This is a reland of 9dda1b3a48
> 
> Original change's description:
> > Correct AEC3 multichannel functionality activation
> > 
> > This CL corrects the AEC3 multichannel activation
> > to also work for the case when a factory is used
> > for the activation.
> > 
> > Bug: webrtc:10913
> > Change-Id: Ic2807d8bcef759261fde14447cff30633ba248dc
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158794
> > Commit-Queue: Per Åhgren <peah@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#29676}
> 
> Bug: webrtc:10913
> Change-Id: Ibfe4e8a51183390a4054514bb294c89c2ea201e9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158880
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29685}

TBR=saza@webrtc.org,peah@webrtc.org

Change-Id: I6e27bc7fd1c9d4d5550fdc6ae14c39ca84fb03f8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10913
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158883
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29687}
2019-11-05 09:54:06 +00:00
Mirko Bonadei
3ac6375bb3 Add 3 missing RTC_EXPORT.
These two annotations are now needed to correctly compile Chromium
with is_component_build=true and the WebRTC component.

TBR: kwiberg@webrtc.org
Bug: webrtc:9419
Change-Id: Id5603cf747357c0c2a4b41684eb4fd607cccfdea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158881
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29686}
2019-11-05 09:40:03 +00:00
Per Åhgren
d5a7838926 Reland "Correct AEC3 multichannel functionality activation"
This is a reland of 9dda1b3a48

Original change's description:
> Correct AEC3 multichannel functionality activation
> 
> This CL corrects the AEC3 multichannel activation
> to also work for the case when a factory is used
> for the activation.
> 
> Bug: webrtc:10913
> Change-Id: Ic2807d8bcef759261fde14447cff30633ba248dc
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158794
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29676}

Bug: webrtc:10913
Change-Id: Ibfe4e8a51183390a4054514bb294c89c2ea201e9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158880
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29685}
2019-11-05 09:11:23 +00:00
Mirko Bonadei
054f18513e Use template instantiation declaration/definition for RTCStatsMember<T>.
This CL works around an "Explicit specialization after instantiation
error" when building with clang-cl and is_component_build=true (see
crbug.com/1018579). On top of that it uses "template instantiation
declarations/declarations" in order to avoid to instantiate the
template in clients code.

TBR: hbos@webrtc.org
Bug: webrtc:9419, chromium:1018579
Change-Id: I1b2862de678586afc81e8f7a407947322f8a06c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158795
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29683}
2019-11-04 16:24:37 +00:00
Per Åhgren
cc9bf6398c Revert "Correct AEC3 multichannel functionality activation"
This reverts commit 9dda1b3a48.

Reason for revert: The CL is causing downstream issues

Original change's description:
> Correct AEC3 multichannel functionality activation
> 
> This CL corrects the AEC3 multichannel activation
> to also work for the case when a factory is used
> for the activation.
> 
> Bug: webrtc:10913
> Change-Id: Ic2807d8bcef759261fde14447cff30633ba248dc
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158794
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29676}

TBR=saza@webrtc.org,peah@webrtc.org

Change-Id: Ic487f77f5c11485a0f25a2a1d3797d0ec956f913
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10913
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158797
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29678}
2019-11-04 08:49:30 +00:00
Per Åhgren
9dda1b3a48 Correct AEC3 multichannel functionality activation
This CL corrects the AEC3 multichannel activation
to also work for the case when a factory is used
for the activation.

Bug: webrtc:10913
Change-Id: Ic2807d8bcef759261fde14447cff30633ba248dc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158794
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29676}
2019-11-04 08:23:27 +00:00
Ivo Creusen
c3d1f9b0cd Enable injection of a custom NetEqFactory into PeerConnectionFactory.
Injecting both a custom NetEqFactory and an AudioDecoderFactory is not
supported, in that case the AudioDecoderFactory should be wrapped inside
the NetEqFactory.

Bug: webrtc:11005
Change-Id: I4e311eb1bfa03c91bca587d70540e81829f881c9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158720
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29673}
2019-11-01 11:30:36 +00:00
Philipp Hancke
2ebbff83ee do not offer gcm as the preferred cipher suite
Move the GCM srtp cipher suites below the default SRTP_AES128_CM_SHA1_80 one.
This will not negotiate them by default since they have an impact on packet overhead for audio-only calls.
GCM can still be negotiated if the peer offers it as preferred cipher suite or answers with just that cipher suite.

BUG=chromium:713701

Change-Id: I79bd4ab827e5c7f55f5550d14db3f4217a7eff86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158404
Reviewed-by: Justin Uberti <juberti@google.com>
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Justin Uberti <juberti@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29672}
2019-10-31 20:59:42 +00:00
Ivo Creusen
3ce44a3540 Move NetEq headers to api/
This CL also introduces NetEqFactory and NetEqControllerFactory
interfaces, as well as several convenience classes for working with
them: DefaultNetEqFactory, DefaultNetEqControllerFactory and
CustomNetEqFactory.

Bug: webrtc:11005
Change-Id: I1e8fc5154636ac2aad1a856828f80a2a758ad392
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156945
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29671}
2019-10-31 15:43:59 +00:00
Sebastian Jansson
cd2a92f8e0 Removes RPLR based FEC controller.
This is not used and adds a lot of maintenance overhead to
the code since it requires that the transport feedback adapter
communicates directly with audio send stream.

This also means that the packet loss tracker used as input for
this can be removed and a lot of wiring up code overall.

Bug: webrtc:9883
Change-Id: I25689fb622ed89cbb378c27212a159485f5f53be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156502
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29667}
2019-10-31 13:56:44 +00:00
Ilya Nikolaevskiy
9560d7dc58 Make update_rect optional in VideoFrame
For the automatic content type detection we need to know if the update
rect is trusted or just not available.

Currently we only care if it's not empty, so in case of no update rect
available, full frame resolution was set as a changed region.

This CL makes the update_rect field optional but should be a no-op in the
current code, as absence of update_rect is treated as a full update via
a new getter method |update_rect_or_full_frame()|.

Bug: webrtc:11058
Change-Id: I913545b71ac2fc845861549ac34eb1b630012109
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158673
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29654}
2019-10-30 11:27:54 +00:00
Henrik Boström
4e19670d3a [PeerConnection] Implement parameterless SetLocalDescription().
For background, motivation, requirements and implementation notes, see
https://docs.google.com/document/d/1XLwNN2kUIGGTwz9LQ0NwJNkcybi9oKnynUEZB1jGA14/edit?usp=sharing

The parameterless SetLocalDescription() will implicitly create an
offer or answer to be set by chaining create offer or answer with
setting the session description, as per spec:
https://w3c.github.io/webrtc-pc/#dom-peerconnection-setlocaldescription

Bug: chromium:980885
Change-Id: Ia430160869df18fd47b756b9adf9e7e23ba8e969
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157444
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29653}
2019-10-30 10:24:44 +00:00
Per Åhgren
ae40e19805 AEC3: Adding a configurable render signal gain
Bug: webrtc:8671
Change-Id: I405d669517382ce195065caa3147eabace5ec18a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158669
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29647}
2019-10-29 23:26:38 +00:00
Harald Alvestrand
c6c3f862e2 Expose TLS version and SRTP cipher to API
Bug: webrtc:10261
Change-Id: I5e0821e66a34448042cf73866511d79eefe40dfb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158662
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29645}
2019-10-29 22:20:49 +00:00
Harald Alvestrand
5cb7807a36 Implement crypto stats on DTLS transport
Bug: chromium:1018077
Change-Id: I585d4064f39e5f9d268b408ebf6ae13a056c778a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158403
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29628}
2019-10-28 11:30:23 +00:00
Sam Zackrisson
492fdf40fe Make rtc_json poisonous in WebRTC
This does not help the attached bugs, but it does allow greater control
over what JSON code is running where. Long-term, the JSON library used
for parsing configuration should likely be a library already present
in Chromium builds, to avoid duplication. And if that happens, then
WebRTC bug 9804 may be passé.

Note that this CL also sorts our poisons alphabetically.

Bug: chromium:895814, webrtc:9804
Change-Id: I70c3efe05a0eba9212895407f73978d8216df920
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158400
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29615}
2019-10-25 13:46:03 +00:00
philipel
16cec3be2c Added allow_codec_switching parameter to RTCConfig.
Bug: webrtc:10795
Change-Id: I5507f1d801e262223bd18198c685b5fffa644b0b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157891
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29612}
2019-10-25 11:06:31 +00:00
Gustaf Ullberg
b394a565ab Cleanup of EchoControl interface after downstream fixes
Bug: b/130016532
Change-Id: I94e92974c290e7080ab5c88fb2a91101a9856124
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158401
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29608}
2019-10-25 08:51:59 +00:00
Gustaf Ullberg
3cb6104864 AEC3: Support negative delay with external delay estimator
Bug: b/130016532
Change-Id: If41121e9ad95f235200c4b6b146ba8a8749daac4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158220
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29602}
2019-10-24 14:33:21 +00:00
Åsa Persson
fcf79cca7b Add estimatedPlayoutTimestamp to RTCInboundRTPStreamStats.
https://w3c.github.io/webrtc-stats/#dom-rtcinboundrtpstreamstats-estimatedplayouttimestamp

Partial implementation: currently only populated when a/v sync is enabled.

Bug: webrtc:7065
Change-Id: I8595cc848d080d7c3bef152462a9becf0e5a2196
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155621
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29581}
2019-10-23 07:46:39 +00:00
Mirko Bonadei
c04792ebef Component Build support for api/task_queue:task_queue_test.
Chromium tests depend on api/task_queue:task_queue_test but it
cannot be added to the WebRTC component in Chromium (which is not
testonly).

A possible solution is to make api/task_queue:task_queue_test
depend on the WebRTC component which lives in Chromium only
when `build_with_chromium=true`.

Bug: webrtc:9419
Change-Id: I1cbe1fb97f21ef7a201d09d2f0f729104d01ed90
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157427
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29578}
2019-10-22 23:21:06 +00:00
Sam Zackrisson
528a03441e Fix fuzzer-found inconsistency in AEC3 config json parsing
Type mismatches will silently fail and skip reading a parameter
in the JSON parsing, except when parsing a size_t from a negative int.

This CL updates the parsing to silently ignore negative values provided
for size_t config parameters, instead of explicitly DCHECKing.

Tested: Ran the fuzzer on the crash test case with + without this fix.

Bug: chromium:1016139
Change-Id: I3899e81e1183aa54b708030efeb6e0006b8cd881
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157894
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29568}
2019-10-22 10:21:53 +00:00
Danil Chapovalov
e34fb878b9 Clarify NetworkControl interface: result of each function must be used
Bug: None
Change-Id: Iff93513d36ed60d2c1bcbabb4dd5f8716e40d183
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157860
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29558}
2019-10-21 12:35:07 +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
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
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
Sam Zackrisson
ffc8452730 AEC3: Add support for logging warnings on delay buffer changes
This reintroduces the WARNING log level of a previous CL [1],
via a default-off config flag.

[1] https://webrtc-review.googlesource.com/c/src/+/148528

Bug: None
Change-Id: Ica8583cbb24a1611cfc684ae02d5a0f582004024
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156566
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29489}
2019-10-15 12:16:51 +00:00
Niels Möller
ac0a4cbbd8 Reland "Fix GetStats bytesSent/Received, wireup headerBytesSent/Received"
This is a reland of fbde32e596

The chromium problem should be fixed with
https://chromium-review.googlesource.com/c/chromium/src/+/1862437

Original change's description:
> Fix GetStats bytesSent/Received, wireup headerBytesSent/Received
>
> Changes the standard GetStats, legacy GetStats unchanged.
>
> Bug: webrtc:10525
> Change-Id: Ie10fe8079f1d8b4cc6bbe513f6a2fc91477b5441
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156084
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29462}

Tbr: kwiberg@webrtc.org
Bug: webrtc:10525
Change-Id: I3b61f9535aa3f1fca2ed84f068233803d4ec9fe2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157045
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29485}
2019-10-15 10:43:59 +00:00
Mirko Bonadei
35214fcfe2 Add missing RTC_EXPORT for the component build.
Bug: webrtc:9419
Change-Id: I3225259fb4cc55e9820f590928795f4587f1e3cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153884
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29479}
2019-10-15 09:07:44 +00:00
Mirko Bonadei
ef0627fb50 Revert "Fix GetStats bytesSent/Received, wireup headerBytesSent/Received"
This reverts commit fbde32e596.

Reason for revert: It seems to break WebRTC FYI tests in Chromium.

https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Linux%20Tester/4763

Original change's description:
> Fix GetStats bytesSent/Received, wireup headerBytesSent/Received
> 
> Changes the standard GetStats, legacy GetStats unchanged.
> 
> Bug: webrtc:10525
> Change-Id: Ie10fe8079f1d8b4cc6bbe513f6a2fc91477b5441
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156084
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29462}

TBR=kwiberg@webrtc.org,hbos@webrtc.org,nisse@webrtc.org,hta@webrtc.org

Change-Id: I6a983ea4d5ff38e49f096a8ff5cd9b426768f955
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10525
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157043
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29478}
2019-10-15 08:55:06 +00:00
Mirko Bonadei
3f0d8e46a8 Revert "Delete methods EncodedImage::Allocate and EncodedImageBufferInterface::Realloc"
This reverts commit d6bb18479f.

Reason for revert: Breaks Chromium Roll.
Example: https://ci.chromium.org/p/chromium/builders/try/android-kitkat-arm-rel/382446
Roll: https://chromium-review.googlesource.com/c/chromium/src/+/1859941

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}

TBR=ilnik@webrtc.org,nisse@webrtc.org,philipel@webrtc.org

Change-Id: I7209c5ae2be2d512572210cf08a4751ee2ee5bc4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9378
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157040
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29473}
2019-10-15 07:04:09 +00:00
Honghai Zhang
f8998cf8c4 Add a turn port prune policy to keep the first ready turn port.
Bug: webrtc:11026
Change-Id: I6222e9613ee4ce2dcfbb717e2430ea833c0dc373
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155542
Commit-Queue: Honghai Zhang <honghaiz@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29470}
2019-10-14 19:08:23 +00:00
Niels Möller
fbde32e596 Fix GetStats bytesSent/Received, wireup headerBytesSent/Received
Changes the standard GetStats, legacy GetStats unchanged.

Bug: webrtc:10525
Change-Id: Ie10fe8079f1d8b4cc6bbe513f6a2fc91477b5441
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156084
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29462}
2019-10-14 13:07:13 +00:00
Eldar Rello
5ab79e62f6 Reland "Implement rollback for setRemoteDescription"
This is a reland of 16d4c4d4fb after
downstream project was updated to be prepared for the new SdpType.

Original change's description:
> Implement rollback for setRemoteDescription
>
> Bug: chromium:980875
> Change-Id: I4575e9ad1902a20937f9812f49edee2a2441f76d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153525
> Commit-Queue: Eldar Rello <elrello@microsoft.com>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29422}

TBR=steveanton@webrtc.org

Bug: chromium:980875
Change-Id: Iba8d25bf2dc481b25a03eeae9818bd5f4c3eaa2d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156569
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29460}
2019-10-14 12:40:53 +00:00
Niels Möller
d6bb18479f 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}
2019-10-14 12:13:31 +00:00
Per Åhgren
8be669fd96 AEC3: Add support for multiple channels to the reverb modelling
This CL adds support for multiple channels in the reverb
modelling. As a side effect, it also partly adds multi-channel
supports for the sections of the code.

Beyond adding the multi-channel support, a bug is fixed as part of
this CL. Since the bug fix affects the bitexactness, as a safety
precaution the CL includes the ability to override the bugfix.

Apart from the contributions from the bugfix, the changes have
been verified to be bitexact for a large set of mono recordings.

Bug: webrtc:10913
Change-Id: I1f307b532be85ef4182f8db41384f44d40a25219
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156382
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29456}
2019-10-11 21:49:58 +00:00
Artem Titov
9afdddfed0 Enable capturing from camera in PC framework
Bug: webrtc:10138
Change-Id: Idcf10331b9f5208010b2bd29324e0fc1341db2d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156241
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29431}
2019-10-10 13:06:39 +00:00
Alex Loiko
907f1548af Revert "Implement rollback for setRemoteDescription"
This reverts commit 16d4c4d4fb.

Reason for revert: breaks downstream dependency. (The new enum value kRollback is not handled correctly downstream).

Original change's description:
> Implement rollback for setRemoteDescription
> 
> Bug: chromium:980875
> Change-Id: I4575e9ad1902a20937f9812f49edee2a2441f76d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153525
> Commit-Queue: Eldar Rello <elrello@microsoft.com>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29422}

TBR=steveanton@webrtc.org,mbonadei@webrtc.org,aleloi@webrtc.org,hbos@webrtc.org,aleloi@google.com,hta@webrtc.org,shampson@webrtc.org,elrello@microsoft.com

Change-Id: If76f6b672fdc59b7f00dfc7c150abda16614cd04
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:980875
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156304
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29427}
2019-10-10 09:09:14 +00:00
Gustaf Ullberg
8675eeec26 Bypass unnecessary resampling.
This change keeps the original 48 kHz signal and uses it for the
fullband processing given that the following requirements are
fulfilled:
- Input signal is 48 kHz
- Output signal is 48 kHz
- Multiband processing is performed at 32 kHz
- The multiband processing does not modify the original signal
This avoids unnecessary, lossy resampling and band merging.

Bug: b/130016532
Change-Id: I690c26faba07eab0cbff6c0a95a81d89255dd1a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155966
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29425}
2019-10-10 08:38:41 +00:00
Mirko Bonadei
ba700de81f Add missing dependencies to the static library.
These missing deps were causing linker errors as reported on
https://groups.google.com/forum/#!topic/discuss-webrtc/wYrjr-LAkmg.

Bug: None
Change-Id: I2b1e80c188bcf45f299d14fd19c5775f23dc8463
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148073
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29424}
2019-10-10 08:22:59 +00:00
Eldar Rello
16d4c4d4fb Implement rollback for setRemoteDescription
Bug: chromium:980875
Change-Id: I4575e9ad1902a20937f9812f49edee2a2441f76d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153525
Commit-Queue: Eldar Rello <elrello@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29422}
2019-10-09 17:13:04 +00:00
Ilya Nikolaevskiy
5963c7cf0a Count disabled due to low bw streams or layers as bw limited quality in GetStats
Bug: webrtc:11015
Change-Id: I65cd890706f765366d89ded8c21fa7507797fc23
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155964
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29421}
2019-10-09 16:58:34 +00:00
Ivo Creusen
99a2096248 Added support for skipping get_audio events, adding dummy packets and setting a field trial string.
Bug: webrtc:10337
Change-Id: I0507da4d955daa914af774c946be16a4168be21a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150780
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29392}
2019-10-07 12:26:44 +00:00
Niels Möller
b9bfe655d4 Delete VCMEncodedFrame::VerifyAndAllocate
And mark EncodedImage::Allocate as deprecated.

Bug: webrtc:9378
Change-Id: I03ce907fa6b87803ddb72f548f60a9bf1b7c317d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155163
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29383}
2019-10-04 14:16:49 +00:00
Sebastian Jansson
79f3287fcf Cleanup of simple TODO(srte) comments.
Just fixing some minor TODOs in my name. Not worth splitting into
separate CLs as the changes are minor.

Bug: webrtc:9883
Change-Id: I05c54b76507a1d51b92cad080ca4e2dfe8546bf1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155520
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29377}
2019-10-04 07:57:16 +00:00
Erik Språng
78c82a4040 Adds trial to always start probes with a small padding packet.
This will reduce bias caused by uncertainty in averaging window.

Bug: None
Change-Id: I5c4fe39ffe69fb4af87d86995196a54115d3e0b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144720
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29374}
2019-10-03 17:19:22 +00:00
Sebastian Jansson
62aee9379c Adds trial to calculate audio overhead based on available data.
This adds the ability to disable legacy overhead calculation so we'll
use the available data on per packet over head and frame length range
to set the min and max total  allocatable bitrate.

Bug: webrtc:11001
Change-Id: I2a94499433e15bad11a08f81fe7f1dfc27982cdf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155175
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29368}
2019-10-02 13:42:15 +00:00
Erik Språng
f4e0c29ed1 SimulcastEncoderAdapter: support per layer fallback and single encoder proxying
This CL adds an optional second encoder factory to SimulcastEncoderAdapter,
that can be used to create software fallback adapter per simulcast layer.

It also adds logic to check if the encoder supports simulcast natively, if so
it only allocates a single instance and delegates the simulcast logic to that
encoder instead. This means we will be able to remove EncoderSimulcastProxy.

Bug: webrtc:11000
Change-Id: Ifd5f029cc281ee2cedf9d18efa5e7e460884d6ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155171
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29364}
2019-10-01 17:31:44 +00:00
Niels Möller
bfcec4c6d8 Delete old placeholders for moved api/ header files
The header files

  api/congestion_control_interface.h
  api/data_channel_transport_interface.h
  api/datagram_transport_interface.h
  api/media_transport_config.h
  api/media_transport_interface.h

have been moved into the api/transport/ and api/transport/media
subdirectories.

Bug: webrtc:8733
Change-Id: I98752c4d1306b54559bafa71712b105932c08834
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153522
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29357}
2019-10-01 12:23:19 +00:00
Evan Shrubsole
7c079f650d Reland "Fix minor regression caused by a8336d3"
This is a reland of 809198edff

A fix was made in https://webrtc-review.googlesource.com/c/src/+/154343
which fixed the regression issues caused by the original patch.

Original change's description:
> Fix minor regression caused by a8336d3
>
> VideoEncoder::SetRates was being called unnessesarily when the fields
> appended to RateControlParameters were changed. Since SetRates only
> cares about RateControlParameters, it should have only been called if
> the RateControlParameters themselves were actually changed.
>
> Bug: webrtc:10126
> Change-Id: Ic47d67e642a3043307fec950e5fba970d9f95167
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152829
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Cr-Commit-Position: refs/heads/master@{#29208}

Bug: webrtc:10126
Change-Id: Iecc3ab6a5cd1193a1fa8e824dcf4f0b8165f9bf8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154359
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29356}
2019-10-01 11:49:38 +00:00
Bjorn A Mellem
8e1343aeda Add an alt-protocol to SDP to indicate which m= sections use a plugin transport.
The plugin transport parameters (a=x-opaque: lines) relate to how to create and
set up a plugin transport.  When SDP bundle is used, the x-opaque line needs to
be copied into the bundled m= section.  This means x-opaque can appear on a
section even if the offerer does not intend to use the transport for the media
described by that section.  Consequently, the answerer cannot currently tell
whether the caller is offering an alternate transport for media, data, or both.

This change adds an a=x-alt-protocol: line to SDP.  The value following this
line matches the <protocol> part of the x-opaque:<protocol>:<params> line.
However, alt-protocol is not bundled--it only ever applies to the m= section
that contains the line.  This allows the offerer to express which m= sections
should actually use an alternate transport, even in the case of bundle.

Note that this is still limited by the available configuration options:
datagram transport can be used for media (audio + video) and/or data.  It is
still not possible to use it for audio but not video, or vice versa.

PeerConnection places an alt-protocol line in each media (audio/video) m=
section if it is configured to use a datagram transport for media.  It places
an alt-protocol line in each data m= section if it is configured to use a
datagram transport for data channels.  PeerConnection leaves alt-protocol in
media (audio/video) m= sections of the answer if it is configured to use a
datagram transport for media, and in data m= sections of the answer if it is
configured to use a datagram transport for data channels.

JsepTransport now negotiates use of the datagram transport independently for
media and data channels.  It only uses it for media if the m= sections for
bundled audio/video have an alt-protocol line matching the x-opaque protocol,
and only uses it for data channels if a bundled m= section for data has an
alt-protocol line matching the x-opaque protocol.

Bug: webrtc:9719
Change-Id: I773e4fc10c57d815afcd76a2a74da38dd0c52b3b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154763
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29351}
2019-09-30 23:10:34 +00:00
Ilya Nikolaevskiy
002b6f4f23 Fixes for support of disabling lower spatial layers in VP9
1) Always allocate at least one spatial layer in svc rate allocator

2) Ensure tests reflect known existing failing scenario
(k-svc video with no external ref control).

3) Update log representation of bitrate allocation, as it looks very
confusing with lower layers disabled.

Was:
[
[],
[], [x, y, z]]
New:
[
[]
[]
[x,y,z]]

Bug: webrtc:10977
Change-Id: I248d9b44c8848710aa5a194a5c1b96df6a2734ac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154744
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29345}
2019-09-30 13:20:12 +00:00
Niels Möller
2449d7aa78 Refactor legacy FrameBuffer to use EncodedImageBuffer::Realloc
Preparation for deleting VCMEncodedFrame::VerifyAndAllocate and
EncodedImage::Allocate.

Bug: webrtc:9378
Change-Id: If7c16061962bbd58c3e7d5720189854e00a3d7bf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154570
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29339}
2019-09-30 09:48:26 +00:00
Bjorn A Mellem
7da4e563b7 Allow receive-only use of datagram transport for data channels.
Adds a field trial and configuration parameter to control whether
datagram transport may be used for data channels in a receive-only
manner.  By default, if use_datagram_transport_for_data_channels is
enabled, PeerConnection will create a datagram transport and offer its
use for outgoing calls as well as accept incoming offers with compatible
datagram transport parameters.

With this change, a receive_only mode is added for datagram transport
data channels.  When receive_only is set, the PeerConnection will not
create or offer datagram transports for outgoing calls, but will accept
incoming calls that offer compatible datagram transport parameters.

Bug: webrtc:9719
Change-Id: I35667bcc408ea4bbc61155898e6d2472dd262711
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154463
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29327}
2019-09-26 20:01:06 +00:00
Artem Titov
89e7fcb726 Revert "Enable capturing from camera in PC framework"
This reverts commit 482d26ce9d.

Reason for revert: Reduced amount of captured frames on some devices. Will require deeper look on it.

Original change's description:
> Enable capturing from camera in PC framework
> 
> Bug: webrtc:10138
> Change-Id: I6b2eaddf4975ddc7237932511de06744ef962489
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154357
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29318}

TBR=ilnik@webrtc.org,kwiberg@webrtc.org,titovartem@webrtc.org

Change-Id: Ie9db3b1a13fa6ebfd8e277b68b5d808533a84620
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10138
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154560
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29320}
2019-09-26 12:00:01 +00:00
Artem Titov
482d26ce9d Enable capturing from camera in PC framework
Bug: webrtc:10138
Change-Id: I6b2eaddf4975ddc7237932511de06744ef962489
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154357
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29318}
2019-09-26 11:42:29 +00:00
Bjorn A Mellem
bc3eebc722 Reland "Reland "Refactor SCTP data channels to use DataChannelTransportInterface.""
This is a reland of 487f9a17e4

Original change's description:
> Reland "Refactor SCTP data channels to use DataChannelTransportInterface."
> 
> Also clears SctpTransport before deleting JsepTransport.
> 
> SctpTransport is ref-counted, but the underlying transport is deleted when
> JsepTransport clears the rtp_dtls_transport.  This results in crashes when
> usrsctp attempts to send outgoing packets through a dangling pointer to the
> underlying transport.
> 
> Clearing SctpTransport before DtlsTransport removes the pointer to the
> underlying transport before it becomes invalid.
> 
> This fixes a crash in chromium's web platform tests (see
> https://chromium-review.googlesource.com/c/chromium/src/+/1776711).
> 
> Original change's description:
> > Refactor SCTP data channels to use DataChannelTransportInterface.
> >
> > This change moves SctpTransport to be owned by JsepTransport, which now
> > holds a DataChannelTransport implementation for SCTP when it is used for
> > data channels.
> >
> > This simplifies negotiation and fallback to SCTP.  Negotiation can now
> > use a composite DataChannelTransport, just as negotiation for RTP uses a
> > composite RTP transport.
> >
> > PeerConnection also has one fewer way it needs to manage data channels.
> > It now handles SCTP and datagram- or media-transport-based data channels
> > the same way.
> >
> > There are a few leaky abstractions left.  For example, PeerConnection
> > calls Start() on the SctpTransport at a particular point in negotiation,
> > but does not need to call this for other transports.  Similarly, PC
> > exposes an interface to the SCTP transport directly to the user; there
> > is no equivalent for other transports.
> 
> Bug: webrtc:9719
> Change-Id: I64e94b88afb119fdbf5f22750f88c8a084d53937
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151981
> Reviewed-by: Benjamin Wright <benwright@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Commit-Queue: Benjamin Wright <benwright@webrtc.org>
> Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29120}

Bug: webrtc:9719
Change-Id: I28481a3de64a3506bc57748106383eeba4ef205c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152740
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29290}
2019-09-24 17:10:52 +00:00
Sebastian Jansson
f34116e356 Replacing bandwidth adaptation trial with stable target in Opus encoder.
This also means that the NetworkEstimate::bandwidth can be deprecated
as it's currently just a copy of the target_rate.

Bug: webrtc:10981
Change-Id: I1bc57b98480bd77ce052736b19d630c775428546
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153669
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29288}
2019-09-24 16:35:02 +00:00
Niels Möller
ef14f072a9 Delete AudioDecoder method IncomingPacket
Only the ISAC codec had an non-trivial implementation, for its unused
adaptive mode. This cl deletes that implementation, and the call
from NetEq, and the interface method.

Bug: webrtc:10098
Change-Id: Iaf7667e0ae867fc9d64286dff4c01a8ce0b6e2a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153882
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29279}
2019-09-24 08:30:24 +00:00
Bjorn A Mellem
cd40de94ef Delete the deprecated GetTransportParametersOffer().
Transport parameters are no longer retreived using this method, and no
implementations currently override it.

Bug: webrtc:9719
Change-Id: Iba0e1c7a320266f199aab6f2add36c6a22b48458
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154004
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29272}
2019-09-23 20:52:18 +00:00
Bjorn A Mellem
37ad5ab940 Change DatagramTransportInterface methods to pure virtual.
These methods are implemented everywhere, and no longer need to provide
default implementations.

Bug: webrtc:9719
Change-Id: I2b33ace17696ec832a9936cf02a81c4973158046
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154003
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29263}
2019-09-20 20:11:24 +00:00
Bjorn A Mellem
88db835278 Change DataChannelTransportInterface/Sink methods to pure virtual.
These methods are implemented everywhere, so they no longer need to
provide default implementations.

Bug: webrtc:9719
Change-Id: Idf67a78010a55f545d882793d0d6edbccfae525b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/154002
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29262}
2019-09-20 20:06:14 +00:00
Mirko Bonadei
fb59a6aa3f Return const char* from ToString(RTCErrorType error).
Returning absl::string_view causes problems to the Chromium/WebRTC
component build because absl::operator<< needs to be exported.

This CL switches to `const char*` which should be enough to avoid
to generate temporaries.

Bug: webrtc:9419
Change-Id: If169a6f95c7efd21ac8ce108c7f2f80a76ff2313
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153842
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29250}
2019-09-20 08:27:52 +00:00
Niels Möller
e24557f51e Declare api:libjingle_peerconnection_api dependency on media:media_base
Deletes one of the two // nogncheck comments in peerconnection_interface.h.

Bug: webrtc:8733
Change-Id: I7cda4957206c4c5f36261517718b526734bad68a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150798
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29247}
2019-09-20 06:29:22 +00:00
Johannes Kron
c12db81e79 Add frame receive to frame rendered metric to video_quality_analyzer
Bug: webrtc:10975
Change-Id: I6b36566efbbb52d27ca6cb44cb3b40aaf0cacb7b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153660
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29243}
2019-09-19 14:43:04 +00:00
Niels Möller
e942b141d8 New build target api:media_interface
Bug: webrtc:8733
Change-Id: I84bbefb1a5ef8e592db29b79499d60ac80c23464
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153180
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29234}
2019-09-19 09:32:27 +00:00
Sebastian Jansson
0a5ed896e2 Adds remote estimates to rtc event log.
Bug: webrtc:10742
Change-Id: I0db998a05492603fcdeedca780d9ee3d64aa00d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151651
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29233}
2019-09-19 09:22:37 +00:00
Sebastian Jansson
93b1ea2168 Using struct for bitrate allocation limits.
Bug: webrtc:9883
Change-Id: I855c29808ffa14626d78842491fdf81cd00589e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153344
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29227}
2019-09-18 17:03:59 +00:00
Niels Möller
7b04a91f4a Delete almost all default methods on PeerConnectionInterface
Keeping default implementations only for methods involved in
ongoing transitions.

Intended to catch inconsistencies between the interface and the
PeerConnectionProxy class, at compile time.

Bug: webrtc:10716
Change-Id: I4cb126c353855f7288ba09273fa6f87aaa0f32eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140860
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29224}
2019-09-18 16:27:44 +00:00
Evan Shrubsole
b6a45dda4c Revert "Fix minor regression caused by a8336d3"
This reverts commit 809198edff.

Reason for revert: Performance regressions that need to be addressed.

Original change's description:
> Fix minor regression caused by a8336d3
> 
> VideoEncoder::SetRates was being called unnessesarily when the fields
> appended to RateControlParameters were changed. Since SetRates only
> cares about RateControlParameters, it should have only been called if
> the RateControlParameters themselves were actually changed.
> 
> Bug: webrtc:10126
> Change-Id: Ic47d67e642a3043307fec950e5fba970d9f95167
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152829
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Cr-Commit-Position: refs/heads/master@{#29208}

TBR=sprang@webrtc.org,eshr@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10126
Change-Id: I133cbe5d8cb894ed944ae8a2d0f63a78bbed72ee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153484
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29221}
2019-09-18 14:38:15 +00:00
Mirko Bonadei
53227ccba9 Remove webrtc::MinPositive from api/.
Follow-up of https://webrtc-review.googlesource.com/c/src/+/153220,
where during code review it was suggested to move webrtc::MinPositive
out of the api/ directory.

Bug: None
Change-Id: I0c3b87a9ffd1cd205a85dddd9f44cfd95eb02206
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153480
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29220}
2019-09-18 12:52:09 +00:00
Johannes Kron
1162ba285d Add max/min encode bitrates to video config of peer connection tests
Extend PeerConnectionE2EQualityTestFixture::VideoConfig with
min_encode_bitrate_bps and max_encode_bitrate_bps.

These are needed to be able to specify the bitrate to be used in tests.

Bug: None
Change-Id: I8af88020e9b364d924e2cecb2bdcc12bf287394d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153352
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29219}
2019-09-18 09:15:03 +00:00
Mirko Bonadei
738bfa7bab Remove api/bitrate_constraints.h.
Bug: webrtc:8733
Change-Id: Iaeb26e07d399f25dc18b0c4af38ed400577a5d3a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153220
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29217}
2019-09-18 06:37:58 +00:00
Mirko Bonadei
317a1f09ed Use std::make_unique instead of absl::make_unique.
WebRTC is now using C++14 so there is no need to use the Abseil version
of std::make_unique.

This CL has been created with the following steps:

git grep -l absl::make_unique | sort | uniq > /tmp/make_unique.txt
git grep -l absl::WrapUnique | sort | uniq > /tmp/wrap_unique.txt
git grep -l "#include <memory>" | sort | uniq > /tmp/memory.txt

diff --new-line-format="" --unchanged-line-format="" \
  /tmp/make_unique.txt /tmp/wrap_unique.txt | sort | \
  uniq > /tmp/only_make_unique.txt
diff --new-line-format="" --unchanged-line-format="" \
  /tmp/only_make_unique.txt /tmp/memory.txt | \
  xargs grep -l "absl/memory" > /tmp/add-memory.txt

git grep -l "\babsl::make_unique\b" | \
  xargs sed -i "s/\babsl::make_unique\b/std::make_unique/g"

git checkout PRESUBMIT.py abseil-in-webrtc.md

cat /tmp/add-memory.txt | \
  xargs sed -i \
  's/#include "absl\/memory\/memory.h"/#include <memory>/g'
git cl format
# Manual fix order of the new inserted #include <memory>

cat /tmp/only_make_unique | xargs grep -l "#include <memory>" | \
  xargs sed -i '/#include "absl\/memory\/memory.h"/d'

git ls-files | grep BUILD.gn | \
  xargs sed -i '/\/\/third_party\/abseil-cpp\/absl\/memory/d'

python tools_webrtc/gn_check_autofix.py \
  -m tryserver.webrtc -b linux_rel

# Repead the gn_check_autofix step for other platforms

git ls-files | grep BUILD.gn | \
  xargs sed -i 's/absl\/memory:memory/absl\/memory/g'
git cl format

Bug: webrtc:10945
Change-Id: I3fe28ea80f4dd3ba3cf28effd151d5e1f19aff89
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153221
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29209}
2019-09-17 15:47:29 +00:00
Evan Shrubsole
809198edff Fix minor regression caused by a8336d3
VideoEncoder::SetRates was being called unnessesarily when the fields
appended to RateControlParameters were changed. Since SetRates only
cares about RateControlParameters, it should have only been called if
the RateControlParameters themselves were actually changed.

Bug: webrtc:10126
Change-Id: Ic47d67e642a3043307fec950e5fba970d9f95167
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152829
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#29208}
2019-09-17 13:34:18 +00:00
Patrik Höglund
7d00342f66 Remove old packet socket factory header.
Bug: webrtc:7447
Change-Id: I367e624070561349a2e98c00d1ce97ad8d12edeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153347
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29207}
2019-09-17 11:21:45 +00:00
Sebastian Jansson
e1b777717b Removing deprecated min_pacing_rate alias in StreamsConfig.
Bug: webrtc:9883
Change-Id: I8ca9f51b60b5fc24233f14404c13b411a5f2c253
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153343
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29206}
2019-09-17 11:20:34 +00:00
Danil Chapovalov
2c6ea52369 In TaskQueueTest::PostDelayedAfterDesctruct increase timeout
from 2x expected time to 10x.
To decrease flakiness for task queue implemntations that destroy tasks
after destruction of the task queue.

Bug: chromium:1000531
Change-Id: Ieb37ff782ead585e0aa2c84472e3993107c5c072
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152830
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29204}
2019-09-17 09:36:47 +00:00
Niels Möller
c1c6284cd1 New (empty) build target api:media_stream_interface
Will be populated in a later cl.

Bug: webrtc:8733
Change-Id: I7e136645380d2264697c72f2d49403b3b9f0f044
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/153341
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29203}
2019-09-17 08:59:15 +00:00
philipel
d9cc8c08dc Encoder switching based on network and/or resolution conditions.
In this CL:
 - Renamed EncoderFailureCallback to EncoderSwitchRequestCallback. An encoder
   switch request can now also be made with a configuration that specifies which
   codec/implementation to switch to.
 - Added "WebRTC-NetworkCondition-EncoderSwitch" field trial that specifies
   switching conditions and desired codec to switch to.
 - Added checks to trigger the switch based on these conditions.

Bug: webrtc:10795
Change-Id: I9d3a9a39a7c4827915a40bdceed10b581d70b90a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151900
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29196}
2019-09-16 13:43:29 +00:00
Niels Möller
c4e80ad3bb Delete forward declarations from peer_connection_interface.h
Bug: None
Change-Id: I011b5c8ae81055ae5b4941438af226665dcbd075
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152825
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29191}
2019-09-16 09:59:56 +00:00
Mirko Bonadei
eaaaf41298 Introduce api/crypto/BUILD.gn.
No-Try: True
Bug: webrtc:8733
Change-Id: I8679735be1e5069e371a9f1115a54e897e09964b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152622
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29186}
2019-09-13 17:21:47 +00:00
Niels Möller
e78fd80cc2 New class DummyPeerConnection
Intended as a utility base class for tests, to make it easier to
delete default implementations of PeerConnectionInterface methods.

Bug: webrtc:10716
Change-Id: Ie125747ad88d209c4797cc13253aef61275ed7b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152820
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29184}
2019-09-13 13:23:34 +00:00
Niels Möller
65f17ca6b4 Move MediaTransportInterface out of the libjingle_peerconnection_api target
And move related files into api/transport/ and api/transport/media/.
The moved files are unchanged, except that
congestion_control_interface.h and datagram_transport_interface.h
no longer include media_transport_interface.h, instead, they forward
declare the few MediaTransport* types they reference.

Bug: webrtc:8733
Change-Id: I4f4000d0d111f10d15a54c99af27ec26c46ae652
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152482
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29178}
2019-09-13 10:49:56 +00:00
Mirko Bonadei
fcfeefe033 Move rtc_error.{h,cc} to its own build target.
Bug: webrtc:8733
Change-Id: Idd34d9a88ae62a01b9ea50719872f8188069211e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152320
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29148}
2019-09-11 07:12:22 +00:00
Per Kjellander
52f7ae7c89 Make NetworkStateEstimator injectable in RemoteBitrateEstimator
The NetworkStateEstimator is updated on every incoming RTP packet if available.

A rtcp::RemoteEstimate packet is sent every time a rtcp::TransportFeedback packet is sent.

BUG=webrtc:10742

Change-Id: I4cd8e9d85d35faf76aeefd2e26c2a9fe1a62ca3b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152161
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29143}
2019-09-10 18:47:36 +00:00
Mirko Bonadei
9bc9885e98 Add placeholder target to move rtc_error out of the main API target.
No-Try: True
Bug: webrtc:8733
Change-Id: Ia9a3e2155b87d908b783d1ee2ba9aa7067083354
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152284
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29127}
2019-09-10 08:41:39 +00:00
Gustaf Ullberg
ee84d39fce AEC3: Downmix multichannel signals before delay estimation
Multichannel signals are downmixed to mono before decimation and
delay estimation. This is useful when not all channels play
audio content. The feature can be toggled in the AEC3 configuration.

Bug: webrtc:10913
Change-Id: I7d40edf7732bb51fec69e7f3ca063d821c5069c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151762
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29126}
2019-09-10 08:16:07 +00:00
Artem Titov
b3f1487cbe Add ability to provide TEXT hint only when requested in PC framework
Bug: webrtc:10138
Change-Id: I1e4d14d7dd02091c656643a77d2d858d5dd606ad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151913
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29123}
2019-09-10 07:53:59 +00:00
Evan Shrubsole
cc62b16658 Add qualityLimitationResolutionChanges stat
Implements the stat qualityLimitationResolutionChanges [1].

[1] https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationresolutionchanges

Bug: webrtc:10935
Change-Id: I391f2be5958a96b442e32c40ab7043752f3f71dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150882
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/master@{#29113}
2019-09-09 15:22:57 +00:00
Florent Castelli
a8336d3cf4 Connect the stable target rate to the video encoders
The stable target rate is used to make smarter choices in the rate
to chose which layers to enable in SVC or simulcast modes.
the addition of hysteresis, we can improve a call quality by reducing
the amount of resolution switch.


Bug: webrtc:10126
Change-Id: I04d0df9e6bbe247e2f2a668207ff74d475e2464c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150642
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29112}
2019-09-09 15:06:51 +00:00
Artem Titov
ddef8d1b6b Add support of displaying video during the PC level test
Bug: webrtc:10138
Change-Id: Ic74b58bc4f1be1793e0dd1a0c286f8d4200fe6f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151901
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29111}
2019-09-09 14:22:50 +00:00
Patrik Höglund
662e31ffec Prepare to move packet_socket_factory to api/.
I gave up on removing proxy_info, user_agent and tcp_options. I don't
think it's feasible to remove them without removing all the proxy code.
The assumption that you can set the proxy and user agent long after
you have created the factory is entrenched in unit tests and the code
itself. So is the ability to set tcp opts depending on protocol or
endpoint properties.

It may be easier to untangle proxy stuff from the factory later,
when it becomes a more first-class citizen and isn't passed via
the allocator.

Requires https://chromium-review.googlesource.com/c/chromium/src/+/1778870
to land first.

Bug: webrtc:7447
Change-Id: Ib496e2bb689ea415e9f8ec1dfedff13a83fa4a8a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150799
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29091}
2019-09-06 09:09:02 +00:00
Danil Chapovalov
9305d11f17 Delete deprecated rtc_event_log_factory_interface.h
Bug: webrtc:10206
Change-Id: I9a2cca368ff19b18218c457f6b1401d89c7f2fe4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151304
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29073}
2019-09-05 08:57:36 +00:00
Niels Möller
340e0c5f7a Delete old version of PeerConnection::SetConfiguration
Followup to https://webrtc-review.googlesource.com/c/src/+/149166

Bug: None
Change-Id: I7b33ee241e3259b8d43f924a38a1e79ec2cd697f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149812
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29057}
2019-09-04 08:23:18 +00:00
Per Åhgren
ce202a0f98 Reland "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3.""
This is a reland of a66395e72f

Original change's description:
> Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."
> 
> This is a reland of f3a197e553
> 
> Original change's description:
> > Add core multi-channel pipeline in AEC3
> > This CL adds basic the basic pipeline to support multi-channel
> > processing in AEC3.
> > 
> > Apart from that, it removes the 8 kHz processing support in several
> > places of the AEC3 code.
> > 
> > Bug: webrtc:10913
> > Change-Id: If5b75fa325ed0071deea94a7546cb4a7adf22137
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150332
> > Commit-Queue: Per Åhgren <peah@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#29017}
> 
> Bug: webrtc:10913
> Change-Id: Ifc4b13bd994cfd22dca8f8755fa5700617cc379d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151124
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29034}

Bug: webrtc:10913
Change-Id: Id8da5666df8c86f290c73ad5dc9958199f1a7ebe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151127
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29042}
2019-09-03 06:12:32 +00:00
Niels Möller
a837030f8f Split out RtpSource from libjingle_peerconnection_api
And moved declaration into a new api directory, as
api/transport/rtp/rtp_source.h.

Bug: webrtc:8733
Change-Id: Ia73b7b0630e6065de4707a37633adddfa00a2b8a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150880
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29039}
2019-09-02 14:04:47 +00:00
Per Åhgren
d112c75801 Revert "Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3.""
This reverts commit a66395e72f.

Reason for revert: Breaking downstream tests

Original change's description:
> Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."
> 
> This is a reland of f3a197e553
> 
> Original change's description:
> > Add core multi-channel pipeline in AEC3
> > This CL adds basic the basic pipeline to support multi-channel
> > processing in AEC3.
> > 
> > Apart from that, it removes the 8 kHz processing support in several
> > places of the AEC3 code.
> > 
> > Bug: webrtc:10913
> > Change-Id: If5b75fa325ed0071deea94a7546cb4a7adf22137
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150332
> > Commit-Queue: Per Åhgren <peah@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#29017}
> 
> Bug: webrtc:10913
> Change-Id: Ifc4b13bd994cfd22dca8f8755fa5700617cc379d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151124
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29034}

TBR=saza@webrtc.org,peah@webrtc.org

Change-Id: I0e9fd154da5910d73b7a4c82e4e588f3220fd39d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10913
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151126
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29038}
2019-09-02 13:57:07 +00:00
Per Åhgren
a66395e72f Reland "Add core multi-channel pipeline in AEC3 This CL adds basic the basic pipeline to support multi-channel processing in AEC3."
This is a reland of f3a197e553

Original change's description:
> Add core multi-channel pipeline in AEC3
> This CL adds basic the basic pipeline to support multi-channel
> processing in AEC3.
> 
> Apart from that, it removes the 8 kHz processing support in several
> places of the AEC3 code.
> 
> Bug: webrtc:10913
> Change-Id: If5b75fa325ed0071deea94a7546cb4a7adf22137
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150332
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29017}

Bug: webrtc:10913
Change-Id: Ifc4b13bd994cfd22dca8f8755fa5700617cc379d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/151124
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29034}
2019-09-02 12:08:27 +00:00
Ilya Nikolaevskiy
e3e30ae5c5 Revert "Add core multi-channel pipeline in AEC3"
This reverts commit f3a197e553.

Reason for revert: Speculative revert, as this may'be broken some build bots

Original change's description:
> Add core multi-channel pipeline in AEC3
> This CL adds basic the basic pipeline to support multi-channel
> processing in AEC3.
> 
> Apart from that, it removes the 8 kHz processing support in several
> places of the AEC3 code.
> 
> Bug: webrtc:10913
> Change-Id: If5b75fa325ed0071deea94a7546cb4a7adf22137
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150332
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29017}

TBR=saza@webrtc.org,peah@webrtc.org

Change-Id: I877d2993b9ccf024bd1d57bca1513c3e24d0bed3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10913
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150940
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29022}
2019-08-30 10:19:29 +00:00
Ilya Nikolaevskiy
ddd50ef921 Use HasOneRef to ensure safe reallocation of buffer in EncodedImage
If somehow buffer is shared between other locations, reallocating it may
lead to use-after-free error.

Bug: none
Change-Id: I01a0b722cfe6ee0e18546248f1dfb7b8ac3b7217
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150884
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29021}
2019-08-30 09:39:31 +00:00
Per Åhgren
f3a197e553 Add core multi-channel pipeline in AEC3
This CL adds basic the basic pipeline to support multi-channel
processing in AEC3.

Apart from that, it removes the 8 kHz processing support in several
places of the AEC3 code.

Bug: webrtc:10913
Change-Id: If5b75fa325ed0071deea94a7546cb4a7adf22137
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150332
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29017}
2019-08-30 08:07:27 +00:00
Mirko Bonadei
640aee2c97 Remove backwards compatibility names from api/uma_metrics.h.
Bug: webrtc:10198
Change-Id: Ibb10579768322ae5d3c6a4c5695f21f08af122b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150794
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29007}
2019-08-29 13:35:56 +00:00
Niels Möller
b4a6128e28 Delete unneeded dependencies on libjingle_peerconnection_api
Also annotate a few of the remaining uses, to guide further splits of
that large build target.

Bug: webrtc:8733
Change-Id: I16ac33ab48e6d39a1a8dbc2a3fc671d8db6dbfe9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150789
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29001}
2019-08-29 10:52:42 +00:00
Niels Möller
6dcd4dc56a New target for api/rtp_parameters.h and api/media_types.h.
The new target does not depend on libjingle_peerconnection_api, and to
do this, the named "audio" and "video" string literals had to be moved from
media_stream_interface.cc to media_types.cc.

In this cl, the dependency on libjingle_peerconnection_api can be
dropped from a few targets.

No-Presubmit: True
Bug: webrtc:8733
Change-Id: Icc675280d5c3c537f2255a9389ff18a482049921
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/53861
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28998}
2019-08-29 09:04:32 +00:00
Jonas Oreland
149dc72dfa Add support for RTCTransportStats.selectedCandidatePairChanges
This patch adds accounting and reporting needed for
newly added RTCTransportStats.selectedCandidatePairChanges,
https://w3c.github.io/webrtc-stats/#dom-rtctransportstats-selectedcandidatepairchanges

a) P2PTransportChannel counts everytime selected_connection_
is modified and reports this counter in the GetStats()-call.
b) RTCStatsCollector puts the counter into the standardized
stats object.

Bug: webrtc:10900
Change-Id: Ibaeca18706b8edcbcb44b0c6f2754854bcb545ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149830
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28987}
2019-08-28 13:22:08 +00:00
Jonas Oreland
3c02842f2e Add TURN_LOGGING_ID
This patch adds a new (optional) attribute to TURN_ALLOCATE_REQUEST,
TURN_LOGGING_ID (0xFF05).

The attribute is put into the comprehension-optional range
so that a TURN server should ignore it if it doesn't know if.
https://tools.ietf.org/html/rfc5389#section-18.2

The intended usage of this attribute is to correlate client and
backend logs.

Bug: webrtc:10897
Change-Id: I51fdbe15f9025e817cd91ee8e2c3355133212daa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149829
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28966}
2019-08-27 07:18:00 +00:00
Niels Möller
184b4af733 New empty build target api:rtp_parameters
To be populated after downstream dependencies are updated.

Bug: webrtc:8733
Change-Id: I393a7e8dba57f99fced50250e947c22f5cbdc02f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150222
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28951}
2019-08-26 08:42:25 +00:00
Per Åhgren
0aefbf0ec4 Use the AEC3 high-pass filter for the whole APM
This CL removes and replaces the legacy fixed-point high-pass filter in
APM with the floating point high-pass filter in AEC3.

Bug: webrtc:10907
Change-Id: I88cf8f622ab139e4ffa97f89a72425aa3becfc58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150103
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28950}
2019-08-23 20:04:10 +00:00
Florent Castelli
4e615d590a Wire the stable target bitrate from GoogCC to the BitrateAllocator
Deprecated the field BitrateAllocationUpdate::link_capacity since it is only
used by the Opus codec in order to smooth the target bitrate, which is
equivalent to the stable_target_bitrate field.

The unused field trial WebRTC-Bwe-StableBandwidthEstimate is also removed.

Bug: webrtc:10126
Change-Id: Ic4a8a9ca4202136d011b91dc23c3a27cfd00d975
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149839
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28941}
2019-08-22 15:25:15 +00:00
Niels Möller
3dd1985fe4 Delete unused function MediaTypeFromString
Bug: None
Change-Id: Id73fac43e46e8d209fe01d8c6467df0dd3dc11d7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150105
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28940}
2019-08-22 12:13:09 +00:00
Bjorn A Mellem
b689af4c99 Changes to enable use of DatagramTransport as a data channel transport.
PeerConnection now has a new setting in RTCConfiguration to enable use of
datagram transport for data channels.  There is also a corresponding field
trial, which has both a kill-switch and a way to change the default value.

PeerConnection's interaction with MediaTransport for data channels has been
refactored to work with DataChannelTransportInterface instead.

Adds a DataChannelState and OnStateChanged() to the DataChannelSink
callbacks.  This allows PeerConnection to listen to the data channel's
state directly, instead of indirectly by monitoring media transport
state.  This is necessary to enable use of non-media-transport (eg.
datagram transport) data channel transports.

For now, PeerConnection watches the state through MediaTransport as well.
This will persist until MediaTransport implements the new callback.

Datagram transport use is negotiated.  As such, an offer that requests to use
datagram transport for data channels may be rejected by the answerer.  If the
offer includes DTLS, the data channels will be negotiated as SCTP/DTLS data
channels with an extra x-opaque parameter for datagram transport.  If the
opaque parameter is rejected (by an answerer without datagram support), the
offerer may fall back to SCTP.

If DTLS is not enabled, there is no viable fallback.  In this case, the data
channels are negotiated as media transport data channels.  If the receiver does
not understand the x-opaque line, it will reject these data channels, and the
offerer's data channels will be closed.

Bug: webrtc:9719
Change-Id: Ic1bf3664c4bcf9d754482df59897f5f72fe68fcc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147702
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28932}
2019-08-21 18:47:58 +00:00
Artem Titov
728a0ee459 Reland "Introduce ability to test echo in PC level test framework"
This is a reland of 77acb015b6

Original change's description:
> Introduce ability to test echo in PC level test framework
> 
> Bug: webrtc:10138
> Change-Id: Ie638eaec5a46e37dc0eb52e9432fdebd0e4a1c4d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147866
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28892}

Bug: webrtc:10138
Change-Id: I0358239500ffadbdbae8090bf39535386fbfd40c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149805
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28917}
2019-08-20 12:18:28 +00:00
Artem Titov
a854921813 Enable custom metrics gathering from stats API in PC framework.
It is done by making QualityMetricsReporter implements
StatsObserverInterface.

Bug: webrtc:10138
Change-Id: Ied6c9a7e53bf942d0e48ce107f668b6af8e42735
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149807
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28916}
2019-08-20 11:33:18 +00:00
Niels Möller
2579f0c584 RTCError as return type for PeerConnectionInterface::SetConfiguration
Bug: None
Change-Id: I6dd7378ceac617e29945d72906cb8e2e0bd49538
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149166
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28910}
2019-08-20 06:52:05 +00:00
Sami Kalliomäki
5870503d5e Revert "Introduce ability to test echo in PC level test framework"
This reverts commit 77acb015b6.

Reason for revert: Downstream tests are failing.

Original change's description:
> Introduce ability to test echo in PC level test framework
> 
> Bug: webrtc:10138
> Change-Id: Ie638eaec5a46e37dc0eb52e9432fdebd0e4a1c4d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147866
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28892}

TBR=mbonadei@webrtc.org,saza@webrtc.org,kwiberg@webrtc.org,titovartem@webrtc.org

Change-Id: Idc87c1cb679712d701d30902bcae4e2c698cf1cd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10138
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149804
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28896}
2019-08-19 11:46:04 +00:00
Artem Titov
77acb015b6 Introduce ability to test echo in PC level test framework
Bug: webrtc:10138
Change-Id: Ie638eaec5a46e37dc0eb52e9432fdebd0e4a1c4d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147866
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28892}
2019-08-19 10:19:41 +00:00
Henrik Boström
6b430867b8 Reland "[GetStats] Expose video codec implementation in standardized metrics."
This is a reland of 2b9fa09fa3.

It got reverted because I forgot to whitelist the new metrics in chromium,
which has now been done:
https://chromium-review.googlesource.com/c/chromium/src/+/1760209
Relanding requires no changes to the CL.

Original change's description:
> [GetStats] Expose video codec implementation in standardized metrics.
>
> Spec issue: https://github.com/w3c/webrtc-stats/issues/445
> Spec PR: https://github.com/w3c/webrtc-stats/pull/473
>
> Now that the spec's RTCCodecStats.implementation has moved to
> RTCOutboundRtpStreamStats.encoderImplementation and
> RTCInboundRtpStreamStats.decoderImplementation, this CL implements them
> using the same string that the legacy getStats() API used.
>
> Bug: webrtc:10890
> Change-Id: Ic43ce44735453626791959df3061ee253356015a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149168
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28877}

TBR=ilnik@webrtc.org

Bug: webrtc:10890
Change-Id: Ib874b608856c2795b1ca08f6af43c61dd859ea21
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149800
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28887}
2019-08-19 09:09:18 +00:00
Johannes Kron
015c3cbf51 Remove deprecated constructors of RtpSource
Bug: webrtc:10650
Change-Id: I1dee27252068ad33e62978ee3a3b3f60b266a2c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149220
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28883}
2019-08-16 20:56:56 +00:00
Henrik Andreassson
df625f46c0 Revert "[GetStats] Expose video codec implementation in standardized metrics."
This reverts commit 2b9fa09fa3.

Reason for revert: speculative revert since it seems to break Chrome FYI bots. See https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Linux%20Tester/4206

Original change's description:
> [GetStats] Expose video codec implementation in standardized metrics.
> 
> Spec issue: https://github.com/w3c/webrtc-stats/issues/445
> Spec PR: https://github.com/w3c/webrtc-stats/pull/473
> 
> Now that the spec's RTCCodecStats.implementation has moved to
> RTCOutboundRtpStreamStats.encoderImplementation and
> RTCInboundRtpStreamStats.decoderImplementation, this CL implements them
> using the same string that the legacy getStats() API used.
> 
> Bug: webrtc:10890
> Change-Id: Ic43ce44735453626791959df3061ee253356015a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149168
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28877}

TBR=ilnik@webrtc.org,hbos@webrtc.org

Change-Id: Ia0b7f9806564cf28881c50d6371b8141a22e3431
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10890
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149175
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28879}
2019-08-16 15:29:28 +00:00
Henrik Boström
2b9fa09fa3 [GetStats] Expose video codec implementation in standardized metrics.
Spec issue: https://github.com/w3c/webrtc-stats/issues/445
Spec PR: https://github.com/w3c/webrtc-stats/pull/473

Now that the spec's RTCCodecStats.implementation has moved to
RTCOutboundRtpStreamStats.encoderImplementation and
RTCInboundRtpStreamStats.decoderImplementation, this CL implements them
using the same string that the legacy getStats() API used.

Bug: webrtc:10890
Change-Id: Ic43ce44735453626791959df3061ee253356015a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149168
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28877}
2019-08-16 14:10:46 +00:00
Alex Narest
bbeb10925e Reporting audio device underrun counter
Bug: webrtc:10884
Change-Id: I35636fcbc1e2a19a89242379cdff6ec5c12fd21a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149200
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Alex Narest <alexnarest@google.com>
Cr-Commit-Position: refs/heads/master@{#28874}
2019-08-16 11:49:55 +00:00
Minyue Li
c759f832e9 Avoid copying of vectors in RtpPacketInfos.
Bug: chromium:982260
Change-Id: Ia4dab497b662e825f80c16530cdf615b62f0a5c9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148523
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28859}
2019-08-14 15:46:02 +00:00
Jiawei Ou
608e6ba394 Add AudioDecoderIsacT::Config to include sampling rate and BWInfo object
This CL will make AudioDecoderIsacT symmetrical to AudioEncoderIsacT.

Bug: webrtc:10826
Change-Id: I78d1cf7bc2245bf4a282aabd81c8ece6ca23f285
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146683
Commit-Queue: Jiawei Ou <ouj@fb.com>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28847}
2019-08-14 00:40:19 +00:00
Bjorn A Mellem
05497f294a Pull a DataChannelTransportInterface out of MediaTransportInterface.
DataChannelTransportInterface takes the OpenChannel, SendData,
CloseChannel, and SetDataSink methods.  MediaTransportInterface inherits
from DataChannelTransportInterface.

DatagramTransportInterface, the newer alternative to
MediaTransportInterface, also inherits from
DataChannelTransportInterface.

This will allow further refactors to enable the use of media-transport
style data channels alongside the datagram transport.

Bug: webrtc:9719
Change-Id: I2dd873785ea52d38055b62545c17e9e17c4e70c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147840
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28846}
2019-08-13 22:07:47 +00:00
Sonia-Florina Horchidan
b75d14c802 audioproc_f: input AEC dump as string, output audio to vector
This CL adds the following options:

pass an input AEC dump as a string (currently, the tool can only accept a path to an AEC dump file)
write the processed capture samples to a given vector

Bug: webrtc:10808
Change-Id: I02863c97ec3cd8c03ade2ea8521836f2e7417050
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145208
Commit-Queue: Sonia-Florina Horchidan <soniahorchidan@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28826}
2019-08-12 09:17:36 +00:00
Niels Möller
5297cf368d Delete unused class MockTargetTransferRateObserver
Bug: None
Change-Id: I60e9dc05450207dfd572ae17a42cf1adaed4c1b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148525
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28813}
2019-08-09 06:15:06 +00:00
Per Åhgren
eac47f7fae Removing unused fallback variant for the reverb computation
This CL removes a long unused fallback behavior for the reverb
computation.

Bug: webrtc:8671
Change-Id: I4b57795a9bb33769237858f40392881ee235653e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148520
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28802}
2019-08-08 08:00:38 +00:00
Alex Narest
5b5d97c938 Reland of "Reporting of decoding_codec_plc events""
This is a reland of 0a88ea050c.

The new stat will not be reported unless it is GT 0.

Reporting of decoding_codec_plc events

Bug: webrtc:10838
Change-Id: Ic8585b4eeae9a2643374f15bc2578d1141e59683
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148448
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Alex Narest <alexnarest@google.com>
Cr-Commit-Position: refs/heads/master@{#28797}
2019-08-07 18:41:46 +00:00
Chen Xing
e08648dc70 Add AbsoluteCaptureTime to RtpPacketInfo.
This change stores the optional `AbsoluteCaptureTime` header extension in `RtpPacketInfo` so that we later can consume it in `SourceTracker`.

Bug: webrtc:10739
Change-Id: I975e8863117fcda134535cd49ad71079a7ff38ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148068
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28790}
2019-08-07 10:12:56 +00:00
Per Åhgren
f40a340756 Remove deprecated code related to AEC2
This CL removes code related to the usage of the delay agnostic and
extended filter modes in AEC2.

Bug: webrtc:8671
Change-Id: I1a2c7a9eba54b03f5a015df3adb617785f52a939
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133912
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28789}
2019-08-07 10:09:36 +00:00
Artem Titov
1e49ab2d40 Migrate part of Vp9 SVC tests on PC framework. Add temporal layers support.
Bug: webrtc:10138
Change-Id: I3f0fc38cbe8c31a2aea2f231fed4428b39e3125a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147260
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28782}
2019-08-07 04:18:46 +00:00
Alex Drake
00c7ecf625 Surface CandidatePairChange event
In order to be able to detect and measure context around candidate pair changes.

Bug: webrtc:10419
Change-Id: Iab0d7e7c80d925d1aa44617fc35975fdc6bbc6b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147340
Commit-Queue: Alex Drake <alexdrake@google.com>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28779}
2019-08-06 18:25:57 +00:00
Mirko Bonadei
a28590918c Revert "Adding new top-level directory crypto/"
This reverts commit 7f1c58938d.

Reason for revert: this has been temporarily postponed.

Original change's description:
> Adding new top-level directory crypto/
> 
> Adding the crypto root directory to WebRTC. The goal with this change is to
> centralize the management of crypto code into a single location.
> 
> Currently we have cryptography code scattered across pc/ and rtc_base/
> which makes it difficult audit and maintain.
> 
> By having a crypto/ directory we gain:
> 1. A clear first point of contact for auditing the cryptography in WebRTC.
> 2. Fine grain ownership to cryptography maintainers, we can include BoringSSL
>    maintainers in this directory.
> 3. It improves maintanability of crypto code as we have improved modularization.
>    It will not be deeply nested in all different parts of WebRTC.
> 4. Improved testability. We can cleanly build crypto libraries which plug into
>    pc/ which we can more easily mock.
> 5. Enforce stricter rules. For example we may want to enforce ZeroOnFreeBuffer
>    for all sensitive material. This is easier to enforce in a single directory.
> 
> Bug: webrtc:9600
> Change-Id: I8e76332c7dcdac0a45a470ba2e930196e1ccf395
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125142
> Commit-Queue: Benjamin Wright <benwright@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27028}

TBR=steveanton@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,benwright@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:9600
Change-Id: I3c99e733d53d76071179f0ff9ffdec965d20829d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147871
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28750}
2019-08-02 18:38:55 +00:00
Florent Castelli
8bbdb5b9bd Update VideoBitrateAllocator allocate to take a struct with more fields
We want to evaluate more data in order to make better choices in the
bitrate allocators.
In order to freely update the parameter list without
breaking the API many times for projects customizing them, we'll use a
struct instead.

Bug: webrtc:10126
Change-Id: I443f86781c5134950294cdd1e3197a47447cf973
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141418
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28748}
2019-08-02 13:52:54 +00:00
Sebastian Jansson
6acb069c2c Adds default for PeerConnectionObserver::OnIceConnectionChange
It's planned to be deprecated so it should not be required.

Bug: webrtc:9883
Change-Id: I7daa922786d3cbf6bca38e205f4f57773f3f8448
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147275
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28715}
2019-07-31 11:33:34 +00:00
Steve Anton
8e967dfdfc Use unique_ptr in JsepCandidateCollection
Bug: None
Change-Id: I80ffacf3a355879b56a03b5cb59bffa32114dac1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147601
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28712}
2019-07-31 01:48:07 +00:00
Mirko Bonadei
bedb7a8aea Revert "Reporting of decoding_codec_plc events"
This reverts commit 0a88ea050c.

Reason for revert: This CL breaks Chromium's FYI bots (example: https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Linux%20Tester/4033).

Original change's description:
> Reporting of decoding_codec_plc events
> 
> Change-Id: Id71b37244bc98bffaf25131a519127b3d2b86a8f
> 
> Bug: webrtc:10838
> Change-Id: Id71b37244bc98bffaf25131a519127b3d2b86a8f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147263
> Commit-Queue: Alex Narest <alexnarest@google.com>
> Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28700}

TBR=mflodman@webrtc.org,alexnarest@google.com

Change-Id: I5e5dd29ee375ba422f79932d4b8c3fd028a53db4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10838
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147269
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28707}
2019-07-30 14:39:09 +00:00
Artem Titov
46c7a1666a Update documentation on VideoConfig.simulcast_config.
Bug: webrtc:10138
Change-Id: I09acbb5ec833f16e19aa96e25c37ff0eaea3b84d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147262
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28703}
2019-07-30 11:13:17 +00:00
Alex Narest
0a88ea050c Reporting of decoding_codec_plc events
Change-Id: Id71b37244bc98bffaf25131a519127b3d2b86a8f

Bug: webrtc:10838
Change-Id: Id71b37244bc98bffaf25131a519127b3d2b86a8f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147263
Commit-Queue: Alex Narest <alexnarest@google.com>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28700}
2019-07-29 16:40:23 +00:00
Alessio Bazzica
8f319a3472 Reland "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.""
This reverts commit fab3460a82.

Reason for revert: fix downstream instead

Original change's description:
> Revert "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.""
> 
> This reverts commit 9973933d2e.
> 
> Reason for revert: breaking downstream projects and not reviewed by direct owners
> 
> Original change's description:
> > Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
> > 
> > This reverts commit 24192c267a.
> > 
> > Reason for revert: Analyzed the performance regression in more detail.
> > 
> > Most of the regression comes from the extra RtpPacketInfos-related memory allocations in every `NetEq::GetAudio()` call. Commit 1796a820f6 has removed roughly 2/3rds of the extra allocations from the impacted perf tests. Remaining perf impact is expected to be about "8 microseconds of CPU time per second" on the Linux benchmarking machines and "15 us per second" on Windows/Mac.
> > 
> > There are options to optimize further but they are unlikely worth doing. Note for example that `NetEqPerformanceTest` uses the PCM codec while the real-world use cases would likely use the much heavier Opus codec. The numbers from `OpusSpeedTest` and `NetEqPerformanceTest` suggest that Opus decoding is about 10x as expensive as NetEq overall.
> > 
> > Original change's description:
> > > Revert "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
> > >
> > > This reverts commit 3e8ef940fe.
> > >
> > > Reason for revert: This CL causes a performance regression in NetEq, see https://bugs.chromium.org/p/chromium/issues/detail?id=982260.
> > >
> > > Original change's description:
> > > > Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.
> > > >
> > > > This change adds the plumbing of RtpPacketInfo from ChannelReceive::OnRtpPacket() to ChannelReceive::GetAudioFrameWithInfo() for audio. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time.
> > > >
> > > > Bug: webrtc:10668
> > > > Change-Id: I03385d6865bbc7bfbef7634f88de820a934f787a
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139890
> > > > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > > > Reviewed-by: Minyue Li <minyue@webrtc.org>
> > > > Commit-Queue: Chen Xing <chxg@google.com>
> > > > Cr-Commit-Position: refs/heads/master@{#28434}
> > >
> > > TBR=kwiberg@webrtc.org,stefan@webrtc.org,minyue@webrtc.org,chxg@google.com
> > >
> > > Bug: webrtc:10668, chromium:982260
> > > Change-Id: I5e2cfde78c59d1123e21869564d76ed3f6193a5c
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145339
> > > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > > Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#28561}
> > 
> > TBR=kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com
> > 
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> > 
> > Bug: webrtc:10668, chromium:982260
> > Change-Id: Ie375a0b327ee368317bf3a04b2f1415c3a974470
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146707
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Commit-Queue: Chen Xing <chxg@google.com>
> > Cr-Commit-Position: refs/heads/master@{#28664}
> 
> TBR=kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com
> 
> Change-Id: I652cb0814d83b514d3bee34e65ca3bb693099b22
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10668, chromium:982260
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146712
> Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28671}

TBR=alessiob@webrtc.org,kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com

Change-Id: Id43b7b3da79b4f48004b41767482bae1c1fa1e16
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10668, chromium:982260
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146713
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28672}
2019-07-24 16:47:13 +00:00
Alessio Bazzica
fab3460a82 Revert "Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.""
This reverts commit 9973933d2e.

Reason for revert: breaking downstream projects and not reviewed by direct owners

Original change's description:
> Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
> 
> This reverts commit 24192c267a.
> 
> Reason for revert: Analyzed the performance regression in more detail.
> 
> Most of the regression comes from the extra RtpPacketInfos-related memory allocations in every `NetEq::GetAudio()` call. Commit 1796a820f6 has removed roughly 2/3rds of the extra allocations from the impacted perf tests. Remaining perf impact is expected to be about "8 microseconds of CPU time per second" on the Linux benchmarking machines and "15 us per second" on Windows/Mac.
> 
> There are options to optimize further but they are unlikely worth doing. Note for example that `NetEqPerformanceTest` uses the PCM codec while the real-world use cases would likely use the much heavier Opus codec. The numbers from `OpusSpeedTest` and `NetEqPerformanceTest` suggest that Opus decoding is about 10x as expensive as NetEq overall.
> 
> Original change's description:
> > Revert "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
> >
> > This reverts commit 3e8ef940fe.
> >
> > Reason for revert: This CL causes a performance regression in NetEq, see https://bugs.chromium.org/p/chromium/issues/detail?id=982260.
> >
> > Original change's description:
> > > Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.
> > >
> > > This change adds the plumbing of RtpPacketInfo from ChannelReceive::OnRtpPacket() to ChannelReceive::GetAudioFrameWithInfo() for audio. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time.
> > >
> > > Bug: webrtc:10668
> > > Change-Id: I03385d6865bbc7bfbef7634f88de820a934f787a
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139890
> > > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > > Reviewed-by: Minyue Li <minyue@webrtc.org>
> > > Commit-Queue: Chen Xing <chxg@google.com>
> > > Cr-Commit-Position: refs/heads/master@{#28434}
> >
> > TBR=kwiberg@webrtc.org,stefan@webrtc.org,minyue@webrtc.org,chxg@google.com
> >
> > Bug: webrtc:10668, chromium:982260
> > Change-Id: I5e2cfde78c59d1123e21869564d76ed3f6193a5c
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145339
> > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#28561}
> 
> TBR=kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: webrtc:10668, chromium:982260
> Change-Id: Ie375a0b327ee368317bf3a04b2f1415c3a974470
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146707
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Chen Xing <chxg@google.com>
> Cr-Commit-Position: refs/heads/master@{#28664}

TBR=kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com

Change-Id: I652cb0814d83b514d3bee34e65ca3bb693099b22
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10668, chromium:982260
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146712
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28671}
2019-07-24 16:41:13 +00:00
Chen Xing
9973933d2e Reland "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
This reverts commit 24192c267a.

Reason for revert: Analyzed the performance regression in more detail.

Most of the regression comes from the extra RtpPacketInfos-related memory allocations in every `NetEq::GetAudio()` call. Commit 1796a820f6 has removed roughly 2/3rds of the extra allocations from the impacted perf tests. Remaining perf impact is expected to be about "8 microseconds of CPU time per second" on the Linux benchmarking machines and "15 us per second" on Windows/Mac.

There are options to optimize further but they are unlikely worth doing. Note for example that `NetEqPerformanceTest` uses the PCM codec while the real-world use cases would likely use the much heavier Opus codec. The numbers from `OpusSpeedTest` and `NetEqPerformanceTest` suggest that Opus decoding is about 10x as expensive as NetEq overall.

Original change's description:
> Revert "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
>
> This reverts commit 3e8ef940fe.
>
> Reason for revert: This CL causes a performance regression in NetEq, see https://bugs.chromium.org/p/chromium/issues/detail?id=982260.
>
> Original change's description:
> > Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.
> >
> > This change adds the plumbing of RtpPacketInfo from ChannelReceive::OnRtpPacket() to ChannelReceive::GetAudioFrameWithInfo() for audio. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time.
> >
> > Bug: webrtc:10668
> > Change-Id: I03385d6865bbc7bfbef7634f88de820a934f787a
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139890
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Reviewed-by: Minyue Li <minyue@webrtc.org>
> > Commit-Queue: Chen Xing <chxg@google.com>
> > Cr-Commit-Position: refs/heads/master@{#28434}
>
> TBR=kwiberg@webrtc.org,stefan@webrtc.org,minyue@webrtc.org,chxg@google.com
>
> Bug: webrtc:10668, chromium:982260
> Change-Id: I5e2cfde78c59d1123e21869564d76ed3f6193a5c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145339
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28561}

TBR=kwiberg@webrtc.org,stefan@webrtc.org,ivoc@webrtc.org,minyue@webrtc.org,chxg@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10668, chromium:982260
Change-Id: Ie375a0b327ee368317bf3a04b2f1415c3a974470
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146707
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28664}
2019-07-24 14:15:28 +00:00
Sebastian Jansson
46bbdec1ab Allow AbsSendTime extension to be used for audio streams.
Bug: webrtc:10742
Change-Id: I565b58e9f8d70e09976775e0c87fe44c8f026e92
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146701
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28655}
2019-07-24 10:58:37 +00:00
Chen Xing
1796a820f6 Add performance optimization for empty RtpPacketInfos.
Bug: webrtc:10668
Change-Id: I879afbb2d6aad77e9db97f8b6a938bf760aab9f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146703
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28653}
2019-07-24 10:10:16 +00:00
Mirko Bonadei
61689ab063 Make api/video:encoded_image public.
Bug: webrtc:9378
Change-Id: I2cff5e1463f40af11fc011a41ecdddf3c763c4b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146601
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28645}
2019-07-23 13:05:19 +00:00
Sebastian Jansson
e34d62caec Revert "Makes send side network estimation opt-in."
This reverts commit c36c8e114d.

Reason for revert: Breaks downstream code.

Original change's description:
> Makes send side network estimation opt-in.
> 
> Bug: webrtc:10742
> Change-Id: I57159a3bf853ef8de32f5ba70ad4fa897ee5c528
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144046
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28631}

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

Change-Id: Ie9ce099d9154551fd123dbc1eca96ca2730fbc9f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10742
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146544
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28634}
2019-07-22 12:55:52 +00:00
Sebastian Jansson
c36c8e114d Makes send side network estimation opt-in.
Bug: webrtc:10742
Change-Id: I57159a3bf853ef8de32f5ba70ad4fa897ee5c528
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144046
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28631}
2019-07-22 12:17:29 +00:00
Artem Titov
39483c6662 Migrate some Vp8 simulcast and screen share tests on PC framework
Bug: webrtc:10138
Change-Id: I2fc1cafc128c9604bfad4967066a8718edc62d20
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146083
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28629}
2019-07-22 09:38:26 +00:00
Artem Titov
d70d80d882 Add support of negotiating Vp9 SVC in PC test framework.
SVC support is limited:
During SVC testing there is no SFU, so framework will try to emulate SFU
behavior in regular p2p call. Because of it there are such limitations:
 * if |target_spatial_index| is not equal to the highest spatial layer
   then no packet/frame drops are allowed.

   If there will be any drops, that will affect requested layer, then
   WebRTC SVC implementation will continue decoding only the highest
   available layer and won't restore lower layers, so analyzer won't
   receive required data which will cause wrong results or test failures.

Bug: webrtc:10138
Change-Id: I079566260ca9f1815935bce365d1bca10766663a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144882
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28612}
2019-07-19 10:01:43 +00:00
Mirko Bonadei
824fb38b9f Remove anonymous namespace around ABSL_FLAG.
TBR=tommi@webrtc.org

No-Try: True
Bug: webrtc:10616
Change-Id: I371801b1c32fbf5103ad40b56e6dd396b53a9007
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146201
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28607}
2019-07-19 07:27:24 +00:00
Mirko Bonadei
2ab97f6f8e Migrate WebRTC test infra to ABSL_FLAG.
This is the last CL required to migrate WebRTC to ABSL_FLAG, rtc::Flag
will be removed soon after this one lands.

Bug: webrtc:10616
Change-Id: I2807cec39e28a2737d2c49e2dc23f2a6f98d08f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145727
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28606}
2019-07-19 06:54:04 +00:00
Artem Titov
594597c25d Add ability to turn on conference mode during simulcast in PC framework.
Bug: webrtc:10138
Change-Id: I9ccb9674285121c8561745babc7e2109588d5053
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/146081
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28599}
2019-07-18 12:11:07 +00:00
Henrik Boström
79b6980020 [PeerConnection] Implement restartIce().
This is part of "Perfect Negotiation" (https://crbug.com/980872).
Spec PR here (merged): https://github.com/w3c/webrtc-pc/pull/2169
Spec: https://w3c.github.io/webrtc-pc/#dfn-localufragstoreplace

The restartIce() makes the next createOffer() generate new ICE
credentials, as if {iceRestart:true} was passed in as options. It also
causes negotiationneeded. This is better than manually restarting ICE
because it survives rollbacks (when that is implemented) and
restartIce() can be called regardless of current signalingState.

Bug: chromium:980881
Change-Id: I8e70bec31ce9d4d6a303bd35e91b2dcc28fcad60
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144941
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28596}
2019-07-18 10:00:10 +00:00
Jonas Olsson
0182a0300f Reland "Remove the injectable bitrate allocation strategy API."
This is a reland of 80cb3f6db6

Original change's description:
> Remove the injectable bitrate allocation strategy API.
>
> This removes PeerConnectionInterface::SetBitrateAllocationStrategy()
> plus a ton of now-dead code.
>
> Bug: webrtc:10556
> Change-Id: Icfae3bdd011588552934d9db4df16000847db7c3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133169
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28523}

TBR=kwiberg@webrtc.org

Bug: webrtc:10556
Change-Id: Ic17a7a7cc447292306876ee9582ad62fd2499765
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145900
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28585}
2019-07-17 10:20:45 +00:00
Sebastian Jansson
ea3dddf1d0 Use capacity bounds in AimdRateControl if available.
Bug: webrtc:10742
Change-Id: I139f7053d33092efe6430d82596b05c730855383
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145725
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28584}
2019-07-17 07:19:38 +00:00
Ivo Creusen
24192c267a Revert "Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker."
This reverts commit 3e8ef940fe.

Reason for revert: This CL causes a performance regression in NetEq, see https://bugs.chromium.org/p/chromium/issues/detail?id=982260.

Original change's description:
> Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.
>
> This change adds the plumbing of RtpPacketInfo from ChannelReceive::OnRtpPacket() to ChannelReceive::GetAudioFrameWithInfo() for audio. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time.
>
> Bug: webrtc:10668
> Change-Id: I03385d6865bbc7bfbef7634f88de820a934f787a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139890
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Minyue Li <minyue@webrtc.org>
> Commit-Queue: Chen Xing <chxg@google.com>
> Cr-Commit-Position: refs/heads/master@{#28434}

TBR=kwiberg@webrtc.org,stefan@webrtc.org,minyue@webrtc.org,chxg@google.com

Bug: webrtc:10668, chromium:982260
Change-Id: I5e2cfde78c59d1123e21869564d76ed3f6193a5c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145339
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28561}
2019-07-12 16:18:31 +00:00
Mirko Bonadei
e95b57cdfc Revert "Remove the injectable bitrate allocation strategy API."
This reverts commit 80cb3f6db6.

Reason for revert: Performance regression on downstream project.

Original change's description:
> Remove the injectable bitrate allocation strategy API.
> 
> This removes PeerConnectionInterface::SetBitrateAllocationStrategy()
> plus a ton of now-dead code.
> 
> Bug: webrtc:10556
> Change-Id: Icfae3bdd011588552934d9db4df16000847db7c3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133169
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28523}

TBR=henrika@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,srte@webrtc.org,alexnarest@webrtc.org,jonasolsson@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10556
Change-Id: Ife905d661e7b1a227662395c729a9336c62fd2d7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145338
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28560}
2019-07-12 15:27:19 +00:00
philipel
0bb0881892 Add VideoEncoderFactory::GetImplementations function.
The GetImplementations function is similar to the GetSupportedFormats function, but instead of providing one SdpVideoFormat per codec it provides one per codec implementation. These SdpVideoFormats can then be tagged so that a certain implementation can be instantiated when CreateVideoEncoder is called.

Bug: webrtc:10795
Change-Id: I79f2380aa03d75d5f9f36138625abf3543c2339d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145215
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28553}
2019-07-12 09:24:47 +00:00
Sergey Silkin
44cec0b5bd Handle non-integer frame rates in video codec tests.
Encoder API accepts non-integer frame rate since
https://webrtc-review.googlesource.com/c/src/+/131949.

Bug: webrtc:10812
Change-Id: I5fc9c5dfac4b182b84a735218a2946a95cc2b93c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143483
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28548}
2019-07-12 07:37:43 +00:00
Anton Sukhanov
ac6c09634f Integrate datagram feedback loop
This change removes RTCP Feedback loop if we are using datagram transport by removing transport sequence numbers from RTP packets and recreating RTCP Feedback from Datagram ACKs and Timestamps.

- For outgoing RTP packets, remove transport sequence number and store it with datagram_id. Note that removing transport sequence numbers does not only save 4-8 bytes per packet, but also prevents generation of feedback packets on the receiver side.

- When datagram ACKs, we re-created RTCP feedback with timestamp.

- Replacing previous assumption that datagram_id was the same as packet_id by storing incremental counter of datagram ids (I noticed some packets come without packet_id, which is a bit strange, but easy to support and it's also good not to rely on packet_ids being unique across multiple ssrcs).

Bug: webrtc:9719
Change-Id: Iecfe938ecea1a74e7c9e1484f0e985d72643d4a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/145269
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28542}
2019-07-11 16:22:00 +00:00
Danil Chapovalov
41300af876 Poison default task queue factory
Users of webrtc generally should be able to choose own task queue implementation.
Poison avoids accidental dependency of a low level component on the default implementation
Android and ios apis are still de-facto forced to use the default implementation.

Bug: webrtc:10284
Change-Id: I67ecf2317f43ee32b0c9e8a6e69f1e0987cf1914
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144786
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28524}
2019-07-10 14:08:20 +00:00
Jonas Olsson
80cb3f6db6 Remove the injectable bitrate allocation strategy API.
This removes PeerConnectionInterface::SetBitrateAllocationStrategy()
plus a ton of now-dead code.

Bug: webrtc:10556
Change-Id: Icfae3bdd011588552934d9db4df16000847db7c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133169
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28523}
2019-07-10 13:13:25 +00:00
Danil Chapovalov
b249c54209 Delete GlobalTaskQueueFactory as now unused
Bug: webrtc:10284
Change-Id: I80fd75b0bd306a26e0c022047551587ee5fd08cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144781
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28516}
2019-07-09 14:45:47 +00:00
Artem Titov
bc558cebdc Add support of specifying audio sample rate for PC test framework
Bug: webrtc:10138
Change-Id: I6f868ede4b762884d7b2e9e7dac51bc60e9925d0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144940
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28513}
2019-07-09 11:36:00 +00:00
Jonas Olsson
a4d873786f Format almost everything.
This CL was generated by running

git ls-files | grep -P "(\.h|\.cc)$" | grep -v 'sdk/' | grep -v 'rtc_base/ssl_' | \
grep -v 'fake_rtc_certificate_generator.h' | grep -v 'modules/audio_device/win/' | \
grep -v 'system_wrappers/source/clock.cc' | grep -v 'rtc_base/trace_event.h' | \
grep -v 'modules/audio_coding/codecs/ilbc/' | grep -v 'screen_capturer_mac.h' | \
grep -v 'spl_inl_mips.h' | grep -v 'data_size_unittest.cc' | grep -v 'timestamp_unittest.cc' \
| xargs clang-format -i ; git cl format

Most of these changes are clang-format grouping and reordering includes
differently.

Bug: webrtc:9340
Change-Id: Ic83ddbc169bfacd21883e381b5181c3dd4fe8a63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144051
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28505}
2019-07-08 13:45:15 +00:00
Ilya Nikolaevskiy
9455c305e6 Remove deprecation notice for VideoFrame::ntp_time_ms
Ntp timestamps are used for end-to-end delay measurements and can never
go away. The naming and number of timestamp fields in VideoFrame could
change in the future, but capture time in local clock will always be
there on the receive side.

Bug: none
Change-Id: I358689cd8a44b1da8503136b3dd898b936f2d693
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144542
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28498}
2019-07-05 18:37:41 +00:00
Artem Titov
48b1b18065 Add ability to create EmulatedNetworkNode from BuiltInNetworkBehaviorConfig
There is no public API to create NetworkBehaviorInterface from
BuiltInNetworkBehaviorConfig, so this CL will add direct method, that will
allow downstream projects to use BuiltInNetworkBehaviorConfig for network
emulation.

Bug: webrtc:10138
Change-Id: Iaec3ea17c12bd06b1c0ff3e5bc2b32cc1c4f62f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144628
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28494}
2019-07-05 12:43:17 +00:00
Artem Titov
386802ef7c Move network emulation framework under test/network
Bug: webrtc:10138
Change-Id: I654bc124866241ceca65462937e2fad6294cc62b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144622
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28492}
2019-07-05 11:08:42 +00:00
Florent Castelli
3fbf1e2e4a Reduce kMaxSimulcastStreams to 3
Because of webrtc:10801, we don't actually support 4 simulcast layers but 3.
Until this is fixed, we limit the value to what we can currently handle.

Bug: webrtc:8785
Change-Id: I513b7c8d4c889fa0d80c91adc1c4f874acb86fdc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144625
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28487}
2019-07-04 15:54:36 +00:00
henrika
2250b05778 Adding support for channel mixing between different channel layouts.
Two new classes are added to WebRTC from Chrome: ChannelMixer and
ChannelMixingMatrix but they are not yet utilized in the audio path for
WebRTC.

The idea is to utilize these new classes when adding support for multi-
channel encoding/decoding in WebRTC/Chrome.

Adds support for a new enumerator call webrtc::ChannelLayout and some
helper methods which maps between channel layout and number of channels.
These parts are also copied from Chrome.

Minor (cosmetic) changes are also done on the AudioFrame to prepare
for upcoming work.

Bug: webrtc:10783
Change-Id: I6cd7a13a3bc1c8bbfa19bc974c7a011d22d19197
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141674
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28482}
2019-07-04 10:10:54 +00:00
Henrik Boström
d2c336f892 [getStats] Implement "media-source" audio levels, fixing Chrome bug.
Implements RTCAudioSourceStats members:
- audioLevel
- totalAudioEnergy
- totalSamplesDuration
In this CL description these are collectively referred to as the audio
levels.

The audio levels are removed from sending "track" stats (in Chrome,
these are now reported as undefined instead of 0).

Background:
  For sending tracks, audio levels were always reported as 0 in Chrome
(https://crbug.com/736403), while audio levels were correctly reported
for receiving tracks. This problem affected the standard getStats() but
not the legacy getStats(), blocking some people from migrating. This
was likely not a problem in native third_party/webrtc code because the
delivery of audio frames from device to send-stream uses a different
code path outside of chromium.
  A recent PR (https://github.com/w3c/webrtc-stats/pull/451) moved the
send-side audio levels to the RTCAudioSourceStats, while keeping the
receive-side audio levels on the "track" stats. This allows an
implementation to report the audio levels even if samples are not sent
onto the network (such as if an ICE connection has not been established
yet), reflecting some of the current implementation.

Changes:
1. Audio levels are added to RTCAudioSourceStats. Send-side audio
   "track" stats are left undefined. Receive-side audio "track" stats
   are not changed in this CL and continue to work.
2. Audio level computation is moved from the AudioState and
   AudioTransportImpl to the AudioSendStream. This is because a) the
   AudioTransportImpl::RecordedDataIsAvailable() code path is not
   exercised in chromium, and b) audio levels should, per-spec, not be
   calculated on a per-call basis, for which the AudioState is defined.
3. The audio level computation is now performed in
   AudioSendStream::SendAudioData(), a code path used by both native
   and chromium code.
4. Comments are added to document behavior of existing code, such as
   AudioLevel and AudioSendStream::SendAudioData().

Note:
  In this CL, just like before this CL, audio level is only calculated
after an AudioSendStream has been created. This means that before an
O/A negotiation, audio levels are unavailable.
  According to spec, if we have an audio source, we should have audio
levels. An immediate solution to this would have been to calculate the
audio level at pc/rtp_sender.cc. The problem is that the
LocalAudioSinkAdapter::OnData() code path, while exercised in chromium,
is not exercised in native code. The issue of calculating audio levels
on a per-source bases rather than on a per-send stream basis is left to
https://crbug.com/webrtc/10771, an existing "media-source" bug.

This CL can be verified manually in Chrome at:
https://codepen.io/anon/pen/vqRGyq

Bug: chromium:736403, webrtc:10771
Change-Id: I8036cd9984f3b187c3177470a8c0d6670a201a5a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143789
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28480}
2019-07-04 08:13:45 +00:00
Sergey Silkin
3d642f8442 Rename ..BitrateThresholds to ..BitrateLimits.
Bug: webrtc:10798
Change-Id: I1975206323a520b557652760d1d54c01c26a7405
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144540
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28473}
2019-07-03 14:50:46 +00:00
Chen Xing
cd8a6e2f38 Add writing and parsing of the abs-capture-time RTP header extension.
This change adds the writing and parsing of the `abs-capture-time` RTP header extension defined at:

  http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time

We are still missing the code to:

- Negotiate the header extension.
- Collect capture time for audio and video and have the info sent with the header extension.
- Receive the header extension and use its info.

Bug: webrtc:10739
Change-Id: I75af492e994367f45a5bdc110af199900327b126
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144221
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28468}
2019-07-03 14:07:36 +00:00
philipel
e8ed83003d WebRtcVideoChannel encoder fallback.
In this CL:
 - Added WEBRTC_VIDEO_CODEC_ENCODER_FAILURE return code that can
   be returned by the encoder wrapper in case of a broken encoder.
 - Added EncoderFailureCallback interface that can be called
   to request encoder fallback to be performed. Implemented by
   WebRtcVideoChannel and called from the VideoStreamEncoder.
 - Updated SelectSendVideoCodec to select all compatible codecs instead
   of just one.

Bug: webrtc:10795
Change-Id: I87a83fd02e48c40493c930471c06c3d0941031ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140888
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28462}
2019-07-03 12:31:42 +00:00
Elad Alon
ed56cf44b0 Remove deprecated version of Vp8FrameBufferControllerFactory::Create
Bug: webrtc:10769
Change-Id: I31de2d21d5325eb4b175815739c2477352842425
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144381
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28448}
2019-07-02 14:40:20 +00:00
Elad Alon
45befc5f1f Pass FecControllerOverride to Vp8FrameBufferControllerFactory::Create
Previously, FecControllerOverride was passed to
Vp8FrameBufferController::SetFecControllerOverride. Passing to
the factory is a more elegant way, since it's only used when
the controller is constructed.

TBR=kwiberg@webrtc.org

Bug: webrtc:10769
Change-Id: Iae599889e7ca9003e3200c2911239cbb763ee65a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144380
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28443}
2019-07-02 10:55:55 +00:00
Johannes Kron
bfd343b9be Add totalDecodeTime to RTCInboundRTPStreamStats
Pull request to WebRTC stats specification:
https://github.com/w3c/webrtc-stats/pull/450

Bug: webrtc:10775
Change-Id: Id032cb324724329fee284ebc84595b9c39208ab8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144035
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28440}
2019-07-02 08:28:06 +00:00
Steve Anton
6fdfec13b9 Add overload to CreateIceTransport that takes additional dependencies
Bug: chromium:927579
Change-Id: I99c77af69b529ebd38c9f5a83882dfe6a2a1ffe9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144320
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28437}
2019-07-01 21:37:54 +00:00
Bjorn A Mellem
5985a0481e Add a field trial to control datagram transport use.
First, the existing configuration parameter (use_datagram_transport) is
now optional.

The new field trial has two flag values:
 1. Whether to enable the datagram transport (enabled)
 2. Whether to use the datagram transport by default (default_value)

The first is a kill-switch.  It disables the datagram transport, even
for applications which inject a datagram transport factory and specify
use_datagram_transport = true.  This allows applications which hard-code
a datagram transport to switch it off via field trials.

This flag defaults to true, to avoid breaking downstream projects which
already inject and configure a datagram transport.  It may be changed to
false after updating downstream to set this field trial flag to true
when required.

The second provides a default value to be used in case the
aforementioned use_datagram_transport parameter is unset.  Applications
which explicitly set use_datagram_transport will use that value.
Applications which do not explicitly specify whether or not to use the
datagram transport will use it (or not) according to the default_value
flag.

One goal of this flag is to simplify rollout in applications which
already set field trials based on configuration, but require code
changes for new RTCConfiguration parameters.  A second goal is to
provide platforms with a knob to control whether datagram transport is
"opt-in" or "opt-out".

This flag defaults to false, to prevent downstream projects from
unintentionally enabling the datagram tranpsort.

Bug: webrtc:9719
Change-Id: I521a5fa61c992e76e5081118678a1812a261d672
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144184
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28435}
2019-07-01 20:03:05 +00:00
Chen Xing
3e8ef940fe Add plumbing of RtpPacketInfos to each AudioFrame as input for SourceTracker.
This change adds the plumbing of RtpPacketInfo from ChannelReceive::OnRtpPacket() to ChannelReceive::GetAudioFrameWithInfo() for audio. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time.

Bug: webrtc:10668
Change-Id: I03385d6865bbc7bfbef7634f88de820a934f787a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139890
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28434}
2019-07-01 15:56:40 +00:00
Elad Alon
a63aede22b Make VideoStreamEncoderInterface::SetFecControllerOverride pure virtual
Clean-up after CL #143962

Bug: webrtc:10769
Change-Id: Ibf574b7b012c40846a88aaf2f1e7a6e2526a25ff
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143963
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28424}
2019-07-01 09:03:31 +00:00
Elad Alon
65764e4ed7 Add missing overrides in VideoEncoder proxies/adapters
Add:
1. OnPacketLossRateUpdate
2. OnRttUpdate
3. OnLossNotification

Add them to:
1. VideoEncoderSoftwareFallbackWrapper
2. SimulcastEncoderAdapter
3. MultiplexEncoderAdapter

Bug: None
Change-Id: I4b0799f7d8c19211741f48da87106daccd39af95
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144030
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28423}
2019-06-28 22:45:53 +00:00
Elad Alon
7e00c679a5 Pass FecControllerOverride to Vp8FrameBufferController
Bug: webrtc:10769
Change-Id: I06d875f5afdc7ebf290ad70934b6632e20ddf065
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143964
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28418}
2019-06-28 17:48:08 +00:00
Elad Alon
8f01c4e1b6 Define FecControllerOverride and plumb it down to VideoEncoder
The purpose of this interface is to allow VideoEncoder to override
the bandwidth allocation set by FecController in RtpVideoSender.

This CL defines the interface and sends it down to VideoSender.
Two upcoming CLs will:
1. Make LibvpxVp8Encoder pass it on to the (injectable)
   FrameBufferController, where it might be put to good use.
2. Modify RtpVideoSender to respond to the message sent to it
   via this API.

TBR=kwiberg@webrtc.org

Bug: webrtc:10769
Change-Id: I2ef82f0ddcde7fd078e32d8aabf6efe43e0f7f8a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143962
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28416}
2019-06-28 15:57:22 +00:00
Sebastian Jansson
dd4dc7a18e Adds additional fields to NetworkStateEstimate.
This is part of a series of CLs with the goal to make the network
state estimate fields more semantically useful.

Bug: webrtc:10742
Change-Id: I3185dc8c4574710a4dce44a4ffd6cefe0fb4e8cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144036
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28406}
2019-06-27 18:25:12 +00:00
Sebastian Jansson
49167de0be Adds interface for remote network estimates to NetworkControllerInterface.
Bug: webrtc:10742
Change-Id: I593fc17ce5d42c5dc17fd289f0621230319f9752
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/144039
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28405}
2019-06-27 16:57:32 +00:00
Rasmus Brandt
2efae7786e Add RTCStats for keyFramesEncoded, keyFramesDecoded.
This implements the correspondingly named JavaScript fields defined in
https://w3c.github.io/webrtc-stats/#inboundrtpstats-dict* and
https://w3c.github.io/webrtc-stats/#outboundrtpstats-dict*.

Bug: webrtc:7066
Change-Id: I431045bca80bf5faf27132c54f59c1f723c92952
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143683
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28404}
2019-06-27 14:59:47 +00:00
Niels Möller
e4ac723bdc Delete deprecated version of PeerConnectionFactoryInterface::StartAecDump
Bug: webrtc:6463
Change-Id: Ia60c34f7e1c9f3bb3f18417c7b621ba033e2ab5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141668
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28395}
2019-06-27 07:33:59 +00:00
Oleh Prypin
4d6951669c Don't use angle-bracket #includes for WebRTC's own files
Bug: None
Change-Id: I0c82815b21b1eb0be3e12cf6ad52bf6082dfea7a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143798
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28392}
2019-06-26 16:06:52 +00:00
Sergey Silkin
be0adee768 Add resolution bitrate thresholds to EncoderInfo.
When provided, these thresholds will be used instead of WebRTC default
limits specified in DropDueToSize() and GetMaxDefaultVideoBitrateKbps().

Bug: none
Change-Id: Ida45ea832041963b8b8475d69114b5c60a172fb7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142170
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28390}
2019-06-26 13:51:09 +00:00
Elad Alon
e8df482205 Clean-up after CL #140941
Bug: webrtc:10720
Change-Id: Ie41083ea89be23e183eaff6ac1bdf661160b70cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140942
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28388}
2019-06-26 12:22:52 +00:00
Niels Möller
3472b9ae22 Delete RTCInboundRTPStreamStats::fraction_lost
And delete corresponding plumbing via the internal stats attribute
MediaReceiverInfo::fraction_lost. The latter attribute is not deleted
yet, since downstream projects have to be updated first.

Bug: webrtc:10744
Change-Id: Id5401aeee7e5637a406ddf2fa33fbfe336abec9f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143178
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28385}
2019-06-26 11:43:23 +00:00
Sebastian Jansson
88290ae358 Reland "Cleanup of RTP references in GoogCC implementation."
This is a reland of fa79081dca

It crashed due to inability to handle small timestamps in probe
estimator. This was fixed by moving history window check to avoid
subtracting from the timestamp.

Original change's description:
> Cleanup of RTP references in GoogCC implementation.
>
> As the send time congestion controller now has been removed,
> we don't need the RTP related constructs anymore.
>
> Bug: webrtc:9510
> Change-Id: I02c059ed8ae907ab4672d183c5639ad459b581aa
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142221
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28330}

Bug: webrtc:9510
Change-Id: I3bf91222068e4fbb6aa159bfeb7a73e00bb6a0d7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143165
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28347}
2019-06-24 09:10:52 +00:00
Elad Alon
2ffcd8256f Make DefaultTemporalLayers explicitly request a key frame
Bug: webrtc:10758
Change-Id: I426bfee7c3cdc2ac058f7e7f44368530a28b02a5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143169
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28345}
2019-06-24 08:26:17 +00:00
philipel
6c42d92ccc Added video_coding::EncodedFrame copy ctor.
Bug: none
Change-Id: I45272e81509741dc022d613758466ad0f8de7a31
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143160
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28333}
2019-06-20 11:19:50 +00:00
Chen Xing
f00bf42d1c Add plumbing of RtpPacketInfos to each VideoFrame as input for SourceTracker.
This change adds the plumbing of RtpPacketInfo from RtpVideoStreamReceiver::OnRtpPacket() to VideoReceiveStream::OnFrame() for video. It is a step towards replacing the non-spec compliant ContributingSources that updates itself at packet-receive time, with the spec-compliant SourceTracker that will update itself at frame-delivery-to-track time.

Bug: webrtc:10668
Change-Id: Ib97d430530c5a8487d3b129936c7c51e118889bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139891
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28332}
2019-06-20 10:24:29 +00:00
Sebastian Jansson
7953ad5dab Revert "Cleanup of RTP references in GoogCC implementation."
This reverts commit fa79081dca.

Reason for revert: Breaks downstream project.

Original change's description:
> Cleanup of RTP references in GoogCC implementation.
> 
> As the send time congestion controller now has been removed,
> we don't need the RTP related constructs anymore.
> 
> Bug: webrtc:9510
> Change-Id: I02c059ed8ae907ab4672d183c5639ad459b581aa
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142221
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28330}

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

Change-Id: I562365fc5d1da68326d603338ccc6371114d7e12
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9510
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143164
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28331}
2019-06-20 10:21:51 +00:00
Sebastian Jansson
fa79081dca Cleanup of RTP references in GoogCC implementation.
As the send time congestion controller now has been removed,
we don't need the RTP related constructs anymore.

Bug: webrtc:9510
Change-Id: I02c059ed8ae907ab4672d183c5639ad459b581aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142221
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28330}
2019-06-20 10:08:29 +00:00
Danil Chapovalov
5bf58064f2 Force DefaultTaskQueueFactory in legacy CreatePeerConnectionFactory
Users that would like custom TaskQueueFactory (e.g. chromium) should use
CreateModularPeerConnectionFactory directly

Bug: webrtc:10284
Change-Id: I7ba55a0f21560d4beb71a7f93f6fa70b0fe74931
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142234
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28324}
2019-06-19 17:11:04 +00:00
Chen Xing
c16289fb60 Split the build rule for video_frame into a video_rtp_headers part.
This change is breaks the dependency between "api:rtp_headers" and "api/video:video_frame".

Bug: webrtc:10668
Change-Id: Ib827de2c0e33809ab1d58338037563aa2fa249bc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140949
Commit-Queue: Chen Xing <chxg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28322}
2019-06-19 09:20:10 +00:00
Niels Möller
505bac209b Add default implementation of deprecated StartAecDump method.
Intended to enable deletion in downstream mock classes.

Tbr: kwiberg@webrtc.org
Bug: webrtc:6463
Change-Id: Iecc568c3ef6a983d21467a2b02ad61c59cac7e4e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142231
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28318}
2019-06-19 07:45:54 +00:00
Niels Möller
4d504c76cb New interface EncodedImageBufferInterface, replacing use of CopyOnWriteBuffer
Bug: webrtc:9378
Change-Id: I62b7adbd9dd539c545b5b1b1520721482a4623c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138820
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28317}
2019-06-19 07:02:34 +00:00
Sebastian Jansson
23026ee6c3 Adds SortedByReceiveTime to TransportPacketsFeedback.
This is part of a series of CLs removing RTP dependencies from GoogCC
implementation.

Bug: webrtc:10749
Change-Id: I4d8ec92643f1a0d4b5fdac2fbcb067766afc6548
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142222
Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28300}
2019-06-17 17:43:27 +00:00
Elad Alon
d9c900f068 Add Clone() to Vp8FrameBufferControllerFactory
Bug: None
Change-Id: Ie59c795361420695ca9cb363ec5b3035728306f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/142227
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28297}
2019-06-17 13:16:38 +00:00
Sebastian Jansson
3d61ab12e6 Adds send time to ReceivedPacket struct.
Bug: webrtc:10742
Change-Id: I7e83d5ec2e23d1db38d02a0c883466ecdcd387c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141874
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28290}
2019-06-14 15:01:36 +00:00
Chen Xing
12d64deb6c Remove sequence_number from RtpPacketInfo.
This change removes sequence_number from RtpPacketInfo since it's currently not used.

Bug: webrtc:10668
Change-Id: I9b45c7476457df1d18173f37c421374108678931
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141873
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#28281}
2019-06-14 11:21:42 +00:00
Artem Titov
ef3fd9c8ad Add support for simulcast with Vp8 from caller into PC level quality tests.
Add support of negotiating simulcast offer/answer. Also fix some minor
issues around to make it finally work.

Bug: webrtc:10138
Change-Id: I382f5df04ca6ac04d8ed1e030e7b2ae5706dd10c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137425
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28274}
2019-06-13 17:27:09 +00:00
“Michael
3c396e52da Add injectable video encoder and decoder to video quality test.
Bug: webrtc:10738
Change-Id: Ia5180cf0252ecd1c58a2080e3954fcb886b066e3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141667
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28263}
2019-06-13 13:03:05 +00:00
Elad Alon
5cf390386b Allow Vp8FrameBufferController::UpdateConfiguration to reset set of overrides
Bug: webrtc:10737
Change-Id: Ifdf82f140465d114300eda1e3ba1a26c70aaef76
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141663
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28247}
2019-06-12 10:12:44 +00:00
Elad Alon
a27958421c Inform FrameBufferController of encoder capabilities
Bug: webrtc:10720
Change-Id: I958b83e29e8e87252e08419b8e16d554983a1a63
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140941
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28242}
2019-06-11 19:26:23 +00:00
Harald Alvestrand
ef10a4ceb6 Remove deprecated JsepSession initializer
Also removes SessionDescription::Copy.

Bug: webrtc:10612
Change-Id: Ib652d717531738c3ed5d1054e32a03961e16dba9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139903
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28239}
2019-06-11 17:35:30 +00:00
Elad Alon
370f93a34a Reland "Inform VideoEncoder of negotiated capabilities"
This is a reland of 11dfff0878

Now that I am sure that WebRTC code is not calling the obsolete
versions, I will just remove the NOT_REACHED and call the
new version from the old ones, so as not to trip up downstream
projects.

Original change's description:
> Inform VideoEncoder of negotiated capabilities
>
> After this CL lands, an announcement will be made to
> discuss-webrtc about the deprecation of one version
> of InitEncode().
>
> Bug: webrtc:10720
> Change-Id: Ib992af0272bbb16ae16ef7e69491f365702d179e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140884
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28224}

TBR=sakal@webrtc.org,kwiberg@webrtc.org,sprang@webrtc.org

Bug: webrtc:10720
Change-Id: I46c69e45c190805c07f7e51acbe277d7eebd1600
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141412
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28236}
2019-06-11 14:49:37 +00:00
Danil Chapovalov
95e0a607f6 Increase TaskQueueTest.PostALot timeouts
recent changed decreased timeout from forever to 1s which is not enough on some platforms
Increase timeout to forever for posting 65k tasks.
Also increase timeout for eventual destruction of the tasks to reduce change it would flake.

Bug: chromium:972917
Change-Id: I4948d49c1514833ab190856fdd25a47a5bad91eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141410
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28235}
2019-06-11 14:42:18 +00:00
Niels Möller
e8e4dc4c8b Change StartAecDump methods to work with FILE* and FileWrapper
Bug: webrtc:6463
Change-Id: Id275975decb9b2876021ced19ee9f279b07bea53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140283
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28233}
2019-06-11 13:43:36 +00:00
Philip Eliasson
49d661a7d3 Revert "Inform VideoEncoder of negotiated capabilities"
This reverts commit 11dfff0878.

Reason for revert: Downstream import failure.

Original change's description:
> Inform VideoEncoder of negotiated capabilities
> 
> After this CL lands, an announcement will be made to
> discuss-webrtc about the deprecation of one version
> of InitEncode().
> 
> Bug: webrtc:10720
> Change-Id: Ib992af0272bbb16ae16ef7e69491f365702d179e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140884
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28224}

TBR=sakal@webrtc.org,kwiberg@webrtc.org,eladalon@webrtc.org,kthelgason@webrtc.org,sprang@webrtc.org

Change-Id: I7f833055c67f1f879b01dd8c156ba7b8840e8747
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10720
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141411
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28225}
2019-06-11 11:56:04 +00:00
Elad Alon
11dfff0878 Inform VideoEncoder of negotiated capabilities
After this CL lands, an announcement will be made to
discuss-webrtc about the deprecation of one version
of InitEncode().

Bug: webrtc:10720
Change-Id: Ib992af0272bbb16ae16ef7e69491f365702d179e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140884
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28224}
2019-06-11 11:32:13 +00:00
Danil Chapovalov
1a5fc9035b in test/pc/e2e pass TaskQueueFactory explicitly
instead of relying on factories that use GlobalTaskQueueFactory

Bug: webrtc:10284
Change-Id: Icc32ae1c159c39a6594d2aaec79c68dcc826fea8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139894
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28220}
2019-06-11 08:48:56 +00:00
Sebastian Jansson
cf41eb1ce1 Reland "Cleanup of video packet overhead calculation."
This is a reland of 890bc3069c

Zero bitrate caused division by zero in DCHECK for max bitrate.
Added unit tests to ensure that setting zero bitrate does not crash.

> Original change's description:
> > Cleanup of video packet overhead calculation.
> >
> > This CL updates the video packet overhead calculation to make it more
> > clear. This prepares for future work on improving the accuracy of the
> > calculation.
> >
> > Bug: webrtc:9883
> > Change-Id: I1d623a3e0de45be7b6e4a1f9e3cbe54fd2b8a45a
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138077
> > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#28040}

Bug: webrtc:10674
Change-Id: I156d1ee5546ede7e43ae1d9a298dcaba6071230f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140890
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28212}
2019-06-10 15:47:48 +00:00
Chen Xing
5d24b16c77 Prepare for splitting the api/video:video_frames build rule.
This change is part of a change to break the dependency between "api:rtp_headers" and "api/video:video_frame". It does so by first creating an empty "api/video:video_rtp_headers" build rule so that downstream projects can be fixed before moving the source files.

Bug: webrtc:10668
Change-Id: I81aa6edfef3639b457a40aa93de048e62cbfd8ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140291
Commit-Queue: Chen Xing <chxg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28209}
2019-06-10 11:50:51 +00:00
Danil Chapovalov
f504dd305d Rewrite TaskQueueTest.PostALot
avoid waiting while executing a Task to discourage blocking.

fix accessing tasks_clean_up counter since after TaskQueue is destroyed,
it doesn't guarantee sequential execution of the destructors, nor
that all pending tasks are destroyed at that moment.
Instead verify that all posted tasks will be destroyed eventually.

Bug: None
Change-Id: I4cfc97ac0787fe2d0b9d2f0d712a37ae0ca9e1aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140288
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28208}
2019-06-10 11:00:44 +00:00
Niels Möller
dfd7f3074e Delete unneeded includes of string_utils.h
Bug: None
Change-Id: I3618903ebd6d6888c2a9548dc97761d0d2e74d0a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140040
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28207}
2019-06-10 10:44:40 +00:00
Niels Möller
dec9f74b8d Delete obsolete RtcEventLogOutputFile constructor
Followup to https://webrtc-review.googlesource.com/c/src/+/134460.

Bug: webrtc:6463
Change-Id: Ib6574b02b21fddc598c1f67c7e2b515f01d33204
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139887
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28206}
2019-06-10 09:44:35 +00:00
Fredrik Solenberg
27a7e9fb97 Remove myself from OWNERS in a few places.
Bug: none
Change-Id: I616da6e211705e6230ad849133e5a4abb8c88218
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140943
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28201}
2019-06-10 07:57:46 +00:00
Bjorn A Mellem
c85ebbe766 Reland: Implement true negotiation for DatagramTransport with fallback to RTP.
In short, the caller places a x-opaque line in SDP for each m= section that
uses datagram transport.  If the answerer supports datagram transport, it will
parse this line and create a datagram transport.  It will then echo the x-opaque
line into the answer (to indicate that it accepted use of datagram transport).

If the offer and answer contain exactly the same x-opaque line, both peers will
use datagram transport.  If the x-opaque line is omitted from the answer (or is
different in the answer) they will fall back to RTP.

Note that a different x-opaque line in the answer means the answerer did not
understand something in the negotiation proto.  Since WebRTC cannot know what
was misunderstood, or whether it's still possible to use the datagram transport,
it must fall back to RTP.  This may change in the future, possibly by passing
the answer to the datagram transport, but it's good enough for now.

Negotiation consists of four parts:
 1. DatagramTransport exposes transport parameters for both client and server
 perspectives.  The client just echoes what it received from the server (modulo
 any fields it might not have understood).

 2. SDP adds a x-opaque line for opaque transport parameters.  Identical to
 x-mt, but this is specific to datagram transport and goes in each m= section,
 and appears in the answer as well as the offer.
  - This is propagated to Jsep as part of the TransportDescription.
  - SDP files: transport_description.h,cc, transport_description_factory.h,cc,
    media_session.cc, webrtc_sdp.cc

 3. JsepTransport/Controller:
  - Exposes opaque parameters for each mid (m= section).  On offerer, this means
    pre-allocating a datagram transport and getting its parameters.  On the
    answerer, this means echoing the offerer's parameters.
  - Uses a composite RTP transport to receive from either default RTP or
    datagram transport until both offer and answer arrive.
  - If a provisional answer arrives, sets the composite to send on the
    provisionally selected transport.
  - Once both offer and answer are set, deletes the unneeded transports and
    keeps whichever transport is selected.

 4. PeerConnection pulls transport parameters out of Jsep and adds them to SDP.

Bug: webrtc:9719
Change-Id: Ifcc428c8d76fb77dcc8abaa79507c620bcfb31b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140920
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28198}
2019-06-07 20:14:36 +00:00
Sebastian Jansson
26b5e35276 Adds Frequency unit type.
Bug: webrtc:10674
Change-Id: Ic0ddca46d8522d994bbeba072a73836b506fe40f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138261
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28192}
2019-06-07 09:54:02 +00:00
Bjorn Mellem
7e8de0bf2d Revert "Implement true negotiation for DatagramTransport with fallback to RTP."
This reverts commit 71c6482baf.

Reason for revert: Lands too much at once and breaks downstream tests that need to implement new interfaces first.

Original change's description:
> Implement true negotiation for DatagramTransport with fallback to RTP.
> 
> In short, the caller places a x-opaque line in SDP for each m= section that
> uses datagram transport.  If the answerer supports datagram transport, it will
> parse this line and create a datagram transport.  It will then echo the x-opaque
> line into the answer (to indicate that it accepted use of datagram transport).
> 
> If the offer and answer contain exactly the same x-opaque line, both peers will
> use datagram transport.  If the x-opaque line is omitted from the answer (or is
> different in the answer) they will fall back to RTP.
> 
> Note that a different x-opaque line in the answer means the answerer did not
> understand something in the negotiation proto.  Since WebRTC cannot know what
> was misunderstood, or whether it's still possible to use the datagram transport,
> it must fall back to RTP.  This may change in the future, possibly by passing
> the answer to the datagram transport, but it's good enough for now.
> 
> Negotiation consists of four parts:
>  1. DatagramTransport exposes transport parameters for both client and server
>  perspectives.  The client just echoes what it received from the server (modulo
>  any fields it might not have understood).
> 
>  2. SDP adds a x-opaque line for opaque transport parameters.  Identical to
>  x-mt, but this is specific to datagram transport and goes in each m= section,
>  and appears in the answer as well as the offer.
>   - This is propagated to Jsep as part of the TransportDescription.
>   - SDP files: transport_description.h,cc, transport_description_factory.h,cc,
>     media_session.cc, webrtc_sdp.cc
> 
>  3. JsepTransport/Controller:
>   - Exposes opaque parameters for each mid (m= section).  On offerer, this means
>     pre-allocating a datagram transport and getting its parameters.  On the
>     answerer, this means echoing the offerer's parameters.
>   - Uses a composite RTP transport to receive from either default RTP or
>     datagram transport until both offer and answer arrive.
>   - If a provisional answer arrives, sets the composite to send on the
>     provisionally selected transport.
>   - Once both offer and answer are set, deletes the unneeded transports and
>     keeps whichever transport is selected.
> 
>  4. PeerConnection pulls transport parameters out of Jsep and adds them to SDP.
> 
> Bug: webrtc:9719
> Change-Id: Id8996eb1871e79d93b7923a5d7eb3431548c798d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140700
> Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28182}

TBR=steveanton@webrtc.org,mellem@webrtc.org,sukhanov@webrtc.org

Change-Id: I0d502c4a6d27516c35ed85154f3fa5869f88b3b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140822
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28188}
2019-06-07 06:17:50 +00:00
Bjorn A Mellem
71c6482baf Implement true negotiation for DatagramTransport with fallback to RTP.
In short, the caller places a x-opaque line in SDP for each m= section that
uses datagram transport.  If the answerer supports datagram transport, it will
parse this line and create a datagram transport.  It will then echo the x-opaque
line into the answer (to indicate that it accepted use of datagram transport).

If the offer and answer contain exactly the same x-opaque line, both peers will
use datagram transport.  If the x-opaque line is omitted from the answer (or is
different in the answer) they will fall back to RTP.

Note that a different x-opaque line in the answer means the answerer did not
understand something in the negotiation proto.  Since WebRTC cannot know what
was misunderstood, or whether it's still possible to use the datagram transport,
it must fall back to RTP.  This may change in the future, possibly by passing
the answer to the datagram transport, but it's good enough for now.

Negotiation consists of four parts:
 1. DatagramTransport exposes transport parameters for both client and server
 perspectives.  The client just echoes what it received from the server (modulo
 any fields it might not have understood).

 2. SDP adds a x-opaque line for opaque transport parameters.  Identical to
 x-mt, but this is specific to datagram transport and goes in each m= section,
 and appears in the answer as well as the offer.
  - This is propagated to Jsep as part of the TransportDescription.
  - SDP files: transport_description.h,cc, transport_description_factory.h,cc,
    media_session.cc, webrtc_sdp.cc

 3. JsepTransport/Controller:
  - Exposes opaque parameters for each mid (m= section).  On offerer, this means
    pre-allocating a datagram transport and getting its parameters.  On the
    answerer, this means echoing the offerer's parameters.
  - Uses a composite RTP transport to receive from either default RTP or
    datagram transport until both offer and answer arrive.
  - If a provisional answer arrives, sets the composite to send on the
    provisionally selected transport.
  - Once both offer and answer are set, deletes the unneeded transports and
    keeps whichever transport is selected.

 4. PeerConnection pulls transport parameters out of Jsep and adds them to SDP.

Bug: webrtc:9719
Change-Id: Id8996eb1871e79d93b7923a5d7eb3431548c798d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140700
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28182}
2019-06-07 01:09:04 +00:00
Eldar Rello
da13ea2f96 Reland "Added OnIceCandidateError to API and implementation"
This is a reland of 9469c784db

Original change's description:
> Added OnIceCandidateError to API and implementation
>
> Bug: webrtc:3098
> Change-Id: I27ffd015ebf9e8130c1288f7331b0e2fdafb01ef
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135953
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
> Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28173}

TBR=steveanton@webrtc.org

Bug: webrtc:3098
Change-Id: I77af2065fc1479273f399e2b3d919f98fe8ac23d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140641
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28179}
2019-06-06 16:59:22 +00:00
Yves Gerey
3b8ed28d72 Revert "Added OnIceCandidateError to API and implementation"
This reverts commit 9469c784db.

Reason for revert: Breaks downstream projects.

Original change's description:
> Added OnIceCandidateError to API and implementation
> 
> Bug: webrtc:3098
> Change-Id: I27ffd015ebf9e8130c1288f7331b0e2fdafb01ef
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135953
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
> Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#28173}

TBR=steveanton@webrtc.org,hbos@webrtc.org,qingsi@webrtc.org,amithi@webrtc.org,elrello@microsoft.com

Change-Id: I3d77242ca3556cb491f523c238fbc7d3e294839b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:3098
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140620
Reviewed-by: Yves Gerey <yvesg@google.com>
Commit-Queue: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#28177}
2019-06-06 14:08:24 +00:00
Steve Anton
7b06b9b202 Remove pthatcher@webrtc.org from OWNERS
Bug: webrtc:10381
No-Try: True
Change-Id: I485d3869eb340bdf078c829cb893f01b4fa9258b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140300
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28176}
2019-06-05 19:47:20 +00:00
Eldar Rello
9469c784db Added OnIceCandidateError to API and implementation
Bug: webrtc:3098
Change-Id: I27ffd015ebf9e8130c1288f7331b0e2fdafb01ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135953
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28173}
2019-06-05 16:34:02 +00:00
Sebastian Jansson
9930929303 Adds srte@ as OWNER of units.
Bug: webrtc:9883
Change-Id: I003a459ba5c37b7fe844a0aff7178c2fd8b2de81
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139247
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28171}
2019-06-05 15:08:57 +00:00
Ilya Nikolaevskiy
4fc0855a39 Cleanup video frame metadata copying
In several places VideoFrame::Builder is used to create a new VideoFrame
when intent is to change only one or two fields of a const VideoFrame&.

This approach is bad because each and every metadata field have to be
added to all the places.

Instead, this CL adds missing setters and refactors the code to use
full copy of a VideoFrame and update required fields only.

Along the way few actual bugs are fixed, e.g. when ColorSpace isn't copied
when frame rotation or buffer is cropped or converted.

Bug: webrtc:10460
Change-Id: I2895a473ca938b150eed2916c689060bdf58cb25
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140102
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28170}
2019-06-05 15:05:57 +00:00
Elad Alon
b64af4b168 Add retransmission_allowed flag to encoder output
Using this flag, an encoder may inform the RTP sender module that
the packet is not elligible for retransmission. Specifically, it
may not be retransmitted in response to a NACK message,
nor because of early loss detection (see CL #135881).

Bug: webrtc:10702
Change-Id: Ib6a9cc361cf10ea7214cf672e05940c27899a6be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140105
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28169}
2019-06-05 12:08:07 +00:00
philipel
781653c813 Added functions to control the VideoStreamDecoder playout delay.
Bug: none
Change-Id: I1ee311df9b18acaf0c7230bb2ad9cc88f996bb1a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140103
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28168}
2019-06-05 11:58:57 +00:00
Tim Haloun
74e63b8abb Add missing proxy function for overloaded StartRtcEventLog peer connection function.
TBR=kwiberg@webrtc.org

Bug: webrtc:6463, webrtc:10716
Change-Id: I1cdfb87e30a9aef5ecc297339721397591542646
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/140164
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28164}
2019-06-05 09:52:49 +00:00
Mirta Dvornicic
479a3c0f92 Add support for enabling and negotiating raw RTP packetization.
Raw RTP packetization is done using the existing RtpPacketizerGeneric
without adding the generic payload header. It is intended to be used
together with generic frame descriptor RTP header extension.

Bug: webrtc:10625
Change-Id: I2e3d0a766e4933ddc4ad4abc1449b9b91ba6cd35
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138061
Commit-Queue: Mirta Dvornicic <mirtad@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28154}
2019-06-04 14:35:54 +00:00
Åsa Persson
90bc1e1bad Fix comment typo about degradation preference.
Switched comments for MAINTAIN_FRAMERATE and MAINTAIN_RESOLUTION.

Bug: none
Change-Id: Ibad00978c5096112a119e5e76d40b11752334594
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139109
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28148}
2019-06-04 06:49:32 +00:00
Qingsi Wang
1fe119f12f Change the gating of surfacing candidates on ICE transport type change
from a field trial to RTCConfiguration.

The test coverage is also expanded for the underlying feature.

Bug: None
Change-Id: Ic9c1362867e4a956c5453be7a9355083b6a442f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138980
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Alex Glaznev <glaznev@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28143}
2019-06-03 18:41:13 +00:00
Chen Xing
d2a6686a10 Add RtpPacketInfo to hold information about a received RtpPacket.
This change adds classes so that we later can plumb information about received packets to each audio and video frame. It's not wired up to do anything yet.

Bug: webrtc:10668
Change-Id: I962df493a76692f668314f78d6792d7636c5a31b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138203
Commit-Queue: Chen Xing <chxg@google.com>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28138}
2019-06-03 14:37:01 +00:00
Niels Möller
695cf6ac42 Delete deprecated StartRtcEventLog override with PlatformFile
Bug: webrtc:6463
Change-Id: I57c2372a232d72b054d8e3e4f423e11b3fb22430
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134460
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28131}
2019-06-03 09:00:56 +00:00
Harald Alvestrand
f330183727 A threading explanation
Bug: None
Change-Id: I11a7ae5d1b0157b1d7b537fa7c071f0f48efe307
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/113147
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28130}
2019-06-03 08:15:09 +00:00
Bjorn A Mellem
eb22227c5b Add OnDatgramLost and default value for receive_timestamp.
The datagram sink needs to know when datagrams are lost in addition to
when they are acked.

DatagramAck::receive_timestamp needs a default value so that
DatagramAck's default ctor is not implicitly deleted.  Without a default
ctor, it's not possible to make this struct without specifying all its
fields, so users will still be broken when the interface adds a new
field.

Bug: webrtc:9719
Change-Id: I6688a938d68eea133f12b13a1228d4df4771d1b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139480
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28117}
2019-05-30 23:06:24 +00:00
Bjorn A Mellem
57dc02a5c2 Add receive_timestamp to DatagramAcks.
Whenever a datagram is acked, the datagram transport will provide the
remote peer's receive timestamp in this field.

Bug: webrtc:9719
Change-Id: I516b9d602e62179a3deda001e0ee9b484aa20d37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139440
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28114}
2019-05-30 18:35:07 +00:00
Anton Sukhanov
74bebc597e Add OnDatagramAcked interface
Bug: webrtc:9719
Change-Id: Ib394e02a4f0dcb36da64b9f005f068a53a50854c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139280
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28111}
2019-05-29 22:08:26 +00:00
Artem Titov
85a9d91cd4 Add ability to set min/start/max bitrate on peer's PC in PC quality tests
Bug: webrtc:10138, webrtc:10692
Change-Id: I4d7ae84dc2945fef6451a6671786b3b19cd9abd8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139108
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28107}
2019-05-29 13:25:26 +00:00
Karl Wiberg
7eb0a5e210 AudioDecoderOpus: Add support for 16 kHz output sample rate
In addition to the 48 kHz that we've always used.

Bug: webrtc:10631
Change-Id: If73bf7ff9c1c0d22e0d1caa245128612850f8e41
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138268
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28104}
2019-05-29 12:42:38 +00:00
Danil Chapovalov
ed69d41b62 Remove deprecated RtcEventLog Create functions
Bug: webrtc:10206
Change-Id: Iabf3eea20027ae42faadabba572dc68f9b678121
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/139105
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28103}
2019-05-29 12:39:08 +00:00
Mirta Dvornicic
28f0eb2dde Move H.264 SPS VUI rewriting to FrameEncodeMetadataWriter.
Bug: webrtc:10559
Change-Id: I956287e71a47856cfb6dd807d9715d6ee2572f55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138263
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirta Dvornicic <mirtad@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28100}
2019-05-29 10:37:22 +00:00
Henrik Boström
ce33b6a4cf Implement QualityLimitationReasonTracker and expose "reason".
This CL implements the logic behind qualityLimitationReason[1] and
qualityLimitationDurations[2]

This CL also exposes qualityLimitationReason in the standard getStats()
API, but does not expose qualityLimitationDurations because that is
blocked on supporting the "record<>" type in RTCStatsMember[3].

[1] https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationreason
[2] https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-qualitylimitationdurations
[3] https://crbug.com/webrtc/10685

TBR=stefan@webrtc.org

Bug: webrtc:10451, webrtc:10686
Change-Id: Ifff0be4ddd64eaec23d59c02af99fdbb1feb3841
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138825
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28090}
2019-05-28 16:23:55 +00:00
Ying Wang
8b27910cbc Include downlink delay into congestion window size.
Change-Id: I33db0c8134b6b3181a7b3abcf32a622a89ff3ab4

Bug: webrtc:10688
Change-Id: I33db0c8134b6b3181a7b3abcf32a622a89ff3ab4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138275
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28079}
2019-05-27 16:07:19 +00:00
Karl Wiberg
126f2b37ac AudioEncoderOpus: Add support for 16 kHz input sample rate
In addition to the 48 kHz that we've always used.

Bug: webrtc:10631
Change-Id: I5e4f6600e39a463d20d3988db098c7e38281f4a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138264
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28074}
2019-05-27 13:01:04 +00:00
Henrik Boström
883eefc59e Implement RTCRemoteInboundRtpStreamStats for both audio and video.
This implements the essentials of RTCRemoteInboundRtpStreamStats. This
includes:
- ssrc
- transportId
- codecId
- packetsLost
- jitter
- localId
- roundTripTime
https://w3c.github.io/webrtc-stats/#remoteinboundrtpstats-dict*

The following members are not implemented because they require more
work...
- From RTCReceivedRtpStreamStats: packetsReceived, packetsDiscarded,
  packetsRepaired, burstPacketsLost, burstPacketsDiscarded,
  burstLossCount, burstDiscardCount, burstLossRate, burstDiscardRate,
  gapLossRate and gapDiscardRate.
- From RTCRemoteInboundRtpStreamStats: fractionLost.

Bug: webrtc:10455, webrtc:10456
Change-Id: If2ab0da7105d8c93bba58e14aa93bd22ffe57f1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138067
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28073}
2019-05-27 12:45:22 +00:00
Bjorn A Mellem
34cd4858e3 Delete the remaining ORTC interfaces.
These are unused except in tests, and just add clutter.

Bug: webrtc:9824
Change-Id: Ica209d09850f5ff9b122ce21306aaf1bbfc7bda4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138280
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28064}
2019-05-24 18:17:37 +00:00
Elad Alon
fadb1811a8 Negotiate use of RTCP loss notification feedback (LNTF)
When the LossNotifications field trial is in effect, LNTF should
be offered/accepted in the SDP message, not assumed to be configured
on both sides equally.

Bug: webrtc:10662
Change-Id: Ibd827779bd301821cbb4196857f6baebfc9e7dc2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138079
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28056}
2019-05-24 12:44:14 +00:00
Anton Sukhanov
316f3ac13b Datagram Transport Integration
- Implement datagram transport adaptor, which wraps datagram transport in DtlsTransportInternal. Datagram adaptor owns both ICE and Datagram Transports.
- Implement setup of datagram transport based on RTCConfiguration flag use_datagram_transport. This is very similar to MediaTransport setup with the exception that we create DTLS datagram adaptor.
- Propagate maximum datagram size to video encoder via MediaTransportConfig.

TODO: Currently this CL can only be tested in downstream projects. Once we add fake datagram transport, we will be able to implement unit tests similar to loopback media transport.

Bug: webrtc:9719
Change-Id: I4fa4a5725598dfee5da4f0f374269a7e289d48ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/138100
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28047}
2019-05-23 23:36:05 +00:00
Sergey Silkin
2799e63bfb Add sizes of spatial layer frames to EncodedImage
WebRTC combines VP9 SVC spatial layer frames into superframe and passes
it to a decoder. The chromium HW VP9 decoder (wrapper) needs to know
location of each spatial layer frame in the frame buffer. To provide
decoder with such information this CL:
- Adds Set/SpatialLayerFrameSize methods to EncodedImage.
- Sets size of each spatial layer frame on superframe at assembly stage.

Bug: webrtc:10495
Change-Id: I68c3c0d668c67dfa1740e004059d860dd98f67f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/136922
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28032}
2019-05-23 07:16:42 +00:00
Henrik Boström
646fda0212 Implement RTCMediaSourceStats and friends in standard getStats().
This implements RTCAudioSourceStats and RTCVideoSourceStats, both
inheriting from abstract dictionary RTCMediaSourceStats:
https://w3c.github.io/webrtc-stats/#dom-rtcmediasourcestats

All members are implemented except for the total "frames" counter:
- trackIdentifier
- kind
- width
- height
- framesPerSecond

This means to make googFrameWidthInput, googFrameHeightInput and
googFrameRateInput obsolete.

Implemented using the same code path as the goog stats, there are
some minor bugs that should be fixed in the future, but not this CL:
1. We create media-source objects on a per-track attachment basis.
   If the same track is attached multiple times this results in
   multiple media-source objects, but the spec says it should be on a
   per-source basis.
2. framesPerSecond is only calculated after connecting (when we have a
   sender with SSRC), but if collected on a per-source basis the source
   should be able to tell us the FPS whether or not we are sending it.

Bug: webrtc:10453
Change-Id: I23705a79f15075dca2536275934af1904a7f0d39
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137804
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28028}
2019-05-22 16:03:41 +00:00
Sebastian Jansson
58c71db1b3 Fix for crash in event log when using scenario tests.
Scenario tests runs all its activities on task queues. This is not
allowed by the default event log writer, causing a DCHECK failure.
This CL makes it possible to stop the event asynchronously,
thereby avoiding the need for the DCHECK.

Bug: webrtc:10365
Change-Id: I1206982b29fd609ac85b4ce30ae9291cbec52041
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/136685
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28027}
2019-05-22 15:22:49 +00:00
Danil Chapovalov
b32f2c7f57 Publish rtc event log api and default factory for it in api/
Bug: webrtc:10206
Change-Id: I34194ddb6fd2b0a3d7c553fadc9ddc1ea9740da0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137500
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28023}
2019-05-22 13:38:25 +00:00
Henrik Boström
23aff9b737 Implement RTCOutboundRtpStreamStats.totalEncodedBytesTarget.
This is a standardized metric:
https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-totalencodedbytestarget

We estimate the target frame size in bytes from the current encoder
target bitrate and encoder framerate.

We would expect that the average bytes produced by the encoder would
over time match the average target, which is calculated by polling
getStats() twice and dividing the delta totalEncodedBytesTarget with
the delta framesEncoded. This is meant to make googTargetEncBitrate
obsolete.

Bug: webrtc:10446
Change-Id: Ib10ce236476a2f965582d5c536f419952926d4e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137200
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28022}
2019-05-22 10:59:39 +00:00
Johannes Kron
b5d918324c Add RTP timestamp to contributing sources
RTP timestamp was recently added to contributing sources in the WebRTC
specification. This CL implements that change in WebRTC.

Bug: webrtc:10650
Change-Id: Ic0ccfbea7049a5b66063fa6cf60d01d5bd713132
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137515
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28020}
2019-05-22 08:53:08 +00:00
Anton Sukhanov
4f08faae82 Introduce MediaTransportConfig
Currently we pass media_transport from PeerConnection to media layers. The goal of this change is to replace media_transport with struct MediaTransportCondif, which will enable adding different transports (i.e. we plan to add DatagramTransport) as well as other media-transport related settings without changing 100s of files.

TODO: In the future we should consider also adding rtp_transport in the same config, but it will require a bit more work, so I did not include it in the same change.


Bug: webrtc:9719
Change-Id: Ie31e1faa3ed9e6beefe30a3da208130509ce00cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137181
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28016}
2019-05-21 18:58:33 +00:00
Danil Chapovalov
3b112e2f35 Delete multi-parameter CreateModularPeerConnectionFactory
In favor of single-parameter CreateModularPeerConnectionFactory

Bug: None
Change-Id: Ie7e85ee4d76ff3168466440ce6471eaa75ace643
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132559
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28013}
2019-05-21 17:22:40 +00:00
Anton Sukhanov
c701dec22b Add GetTransportParametersOffer method for DatagramTransportInterface
This change adds missing GetTransportParametersOffer, which is required for datagram transport setup. We have exactly the same method in MediaTransportInterface. It's possible to add a separate interface, which will be used in both Media and Datagram transports, but I do not want to overcomplicate it now until we know more about future of media and datagram transports.


Bug: webrtc:9719
Change-Id: I8b6c9ebc9522acba75f74da2e18e4bb1eb0d1e4c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137861
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28011}
2019-05-21 16:13:43 +00:00
Anton Sukhanov
762076b886 Add flag to use datagram transport (without implementation)
Integration with datagram transport will come in next CLs.

NOTE that since we now have implemented negotiation for media transport, we can replace configuration flags with field trials, but it will be done later for both media and datagram transports.

Bug: webrtc:9719
Change-Id: Icf062d030899d53d5646977ba195d1634050704b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137820
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27996}
2019-05-20 22:42:31 +00:00
Guido Urdaneta
1ff16c87aa Add RtpSenderInterface.SetStreams
This is a reland of df5731e44d with fixes
to avoid existing chromium tests to fail.

Instead of replacing the existing RtpSender::set_stream_ids() to
also fire OnRenegotiationNeeded(), this CL keeps the old
set_stream_ids() and adds the new RtpSender::SetStreams() which sets
the stream IDs and fires the callback.

This allows existing callsites to maintain behavior, and reserve
SetStreams() for the cases when we want OnRenegotiationNeeded() to fire.

Using the SetStreams() name instead of SetStreamIDs() to match the W3C
spec and to make it more different that the existing set_stream_ids().

Original change's description:
> Improve spec compliance of SetStreamIDs in RtpSenderInterface
>
> This CL makes RtpSender::SetStreamIDs fire fire negotiationneeded
> event if needed and exposes the method on RtpSenderInterface.
>
> This is a spec-compliance change.
>
> Bug: webrtc:10129
> Change-Id: I2b98b92665c847102838b094516a79b24de0e47e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135121
> Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27974}

Bug: webrtc:10129
Change-Id: Ic0b322bfa25c157e3a39465ef8b486f898eaf6bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137439
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27992}
2019-05-20 18:38:06 +00:00
Henrik Andreassson
cc189177a6 Revert "Improve spec compliance of SetStreamIDs in RtpSenderInterface"
This reverts commit df5731e44d.

Reason for revert: Breaks WebRTC in Chrome FYI for all platforms.

https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Mac%20Tester/2966

Original change's description:
> Improve spec compliance of SetStreamIDs in RtpSenderInterface
>
> This CL makes RtpSender::SetStreamIDs fire fire negotiationneeded
> event if needed and exposes the method on RtpSenderInterface.
>
> This is a spec-compliance change.
>
> Bug: webrtc:10129
> Change-Id: I2b98b92665c847102838b094516a79b24de0e47e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135121
> Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27974}

TBR=steveanton@webrtc.org,hbos@webrtc.org,guidou@webrtc.org

# Passing all bots except for flaky webrtc_perf_tests
NOTRY=True

Bug: webrtc:10129
Change-Id: If97317f7a01b34465685fcebbeea0d7576ed7328
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137431
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27988}
2019-05-20 14:28:37 +00:00
Anton Sukhanov
6b319e68e9 Add CreateDatagram to MediaTransportFactory
Bug: webrtc:9719
Change-Id: I6e756d925917f032aa94a221706cd4241085b2a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137340
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27980}
2019-05-17 22:18:41 +00:00
Henrik Boström
9fe1834d5d Implement RTCOutboundRtpStreamStats.totalPacketSendDelay for video.
This is a standardized metric. Spec:
https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-totalpacketsenddelay

It is meant to replace the legacy googBucketDelay. The average
packet delay over any interval can be calculated as the delta
totalPacketSendDelay divided by the delta packetsSent between two
calls to getStats().

Bug: webrtc:10506
Change-Id: I3d6c6d66e5a06937d0ea8d182a82cd255084ad19
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137044
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27979}
2019-05-17 18:53:20 +00:00
Sebastian Jansson
3525f86c42 Adds feedback generator.
This is a useful tool to use for unittests of code that uses
TransportFeedback as input.

Bug: webrtc:10498
Change-Id: I171b22841eb9e16a5d5b785ff45ae9df5a6ccd7f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137423
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27975}
2019-05-17 16:14:32 +00:00
Guido Urdaneta
df5731e44d Improve spec compliance of SetStreamIDs in RtpSenderInterface
This CL makes RtpSender::SetStreamIDs fire fire negotiationneeded
event if needed and exposes the method on RtpSenderInterface.

This is a spec-compliance change.

Bug: webrtc:10129
Change-Id: I2b98b92665c847102838b094516a79b24de0e47e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135121
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27974}
2019-05-17 12:53:31 +00:00
Artem Titov
7581ff7375 Add screen share support to PC level test framework
Bug: webrtc:10138
Change-Id: I1a8ac683e91f8061387f407610d7db2a6d0d4fe9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/136805
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27950}
2019-05-15 14:07:00 +00:00
Anton Sukhanov
c136b06326 Add datagram_transport and congestion_control interface
This change introduces experimental datagram_transport interface and congestion_control interfaces. The goal is to integrate support for datagram transport in DTLS transport and set it up in a similar way we currently setup media_transport. Datagram transport will be injected in peer connection factory the same way media_transport is injected (we might even keep using the same factory which creates both media and datagram transports for now until we decided what to do next).

Bug: webrtc:9719
Change-Id: I80e70ce8d3827664ac5f5f7e55b706fe2dd2fbef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/136782
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27943}
2019-05-14 22:22:45 +00:00
Harald Alvestrand
4aa1192508 Change default SDP syntax for SCTP to spec-compliant.
This also introduces an option in CreateOfferOptions for
getting the non-spec behavior (2013 vintage) back.

Bug: chromium:962860
Change-Id: I72267408a61d6eb03e9895fe38b4cc803d8cbbaf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/136809
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27941}
2019-05-14 20:38:08 +00:00
Erik Språng
157b7814b9 Remove deprecated SetRates/SetRateAllocation from VideoEncoder.
This CL removes two deprecated methods from the VideoEncoder interface:
* int32_t SetRates(uint32_t, uint32_t);
* int32_t SetRateAllocation(const VideoBitrateAllocation&, uint32_t);

These are no longer used, instead the new version must be implemented:
  void SetRates(const RateControlParameters&) = 0;

Migrating is straight forward. For the old SetRates, simple replace:
  int32_t MyEncoder::SetRates(uint32_t bitrate, uint32_t framerate) {
with
  void MyEncoder::SetRates(const RateControlParameters& parameters) {
    uint32_t bitrate = parameters.bitrate.get_sum_kbps();
    uint32_t framerate =
      static_cast<uint32_t>(parameters.framerate_fps + 0.5);

For SetRateAllocation, replace:
  int32_t MyEncoder::SetRateAllocation(
      const VideoBitrateAllocation& allocation,
      uint32_t framerate) {
with
  void MyEncoder::SetRates(const RateControlParameters& parameters) {
    const VideoBitrateAllocation& allocation = parameters.bitrate;
    uint32_t framerate =
      static_cast<uint32_t>(parameters.framerate_fps + 0.5);

Two more things to note:
1. The new method is void. Previously the only use of the return value
   in production code was to log a more or less generic error message.
   Instead, log the actual error from the encoder when it happens,
   then just return.

2. The new method is pure virtual; it must be overriden even in test.

This CL is intended to be landed two weeks after creation, on Thursday
May 9th 2019.

Bug: webrtc:10481
Change-Id: I61349571a280bd40cd100ca9f93c4aa7748ed30d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134214
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27926}
2019-05-13 11:42:59 +00:00
Niels Möller
f00ca1a2b8 Make the output_period_ms argument to StartRtcEventLog optional
Intended to ease transition to new log format.

Bug: webrtc:6463, webrtc:8111
Change-Id: Icadaedb6a6a7d31038a45ff5eb0b054528f00f2f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135944
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27920}
2019-05-13 07:58:39 +00:00
Harald Alvestrand
8da35a60ab Deprecate owned naked pointers to cricket::SessionDescription
Recommended usage is to create copies with Clone() and to
call JsepSessionDescription::Initialize using std::move.

Bug: webrtc:10612
Change-Id: I626a08a35ba8e112471cec0374c944e96f8effbc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135941
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27911}
2019-05-10 11:43:08 +00:00
Niels Möller
418f580a5a Move kRtpCsrcSize from common_types.h to rtp_headers.h
Bug: webrtc:5876
Change-Id: I023aa9219cff56d7afa0c41d072d0877df5c2cee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135568
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27906}
2019-05-10 09:43:39 +00:00
Elad Alon
fb0878197e Reland "Refactor handling of configuration overrides from Vp8FrameBufferController"
This is a reland of 4d6795f828

Original change's description:
> Refactor handling of configuration overrides from Vp8FrameBufferController
>
> Make Vp8FrameBufferController::UpdateConfiguration return a set
> of desired overrides. These overrides are cumulative with
> previously returned override sets.
>
> Bug: webrtc:10382
> Change-Id: I1aa9544ae0cf6c57115e80963b3bbcdc3101db5e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134649
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27835}

TBR=brandtr@webrtc.org,sprang@webrtc.org

Bug: webrtc:10382
Change-Id: I0b313d19843edf429aeeaa4deafc5426c434a0fd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135942
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27904}
2019-05-10 08:44:02 +00:00
Elad Alon
3d622d6e5c Revert "Refactor handling of configuration overrides from Vp8FrameBufferController"
This reverts commit 4d6795f828.

Reason for revert: chromium:961253

Original change's description:
> Refactor handling of configuration overrides from Vp8FrameBufferController
>
> Make Vp8FrameBufferController::UpdateConfiguration return a set
> of desired overrides. These overrides are cumulative with
> previously returned override sets.
>
> Bug: webrtc:10382
> Change-Id: I1aa9544ae0cf6c57115e80963b3bbcdc3101db5e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134649
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Elad Alon <eladalon@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27835}

TBR=brandtr@webrtc.org,eladalon@webrtc.org,sprang@webrtc.org


Bug: chromium:961253
Change-Id: I06f0eafd4f38c441ddbdfeebae8055b02465eb9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135940
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27900}
2019-05-09 21:09:23 +00:00
Niels Möller
d8b9ed77cf Promote RtcEventLogOutputFile to api/
Preparation for deleting PeerConnectionInterface::StartRtcEventLog
method with a PlatformFile argument.

Bug: webrtc:6463
Change-Id: Ia9fa1d99a3d87f3bf193e73382690b782ffea65c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135285
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27879}
2019-05-08 12:29:42 +00:00
Mirko Bonadei
60f14ce217 Do not use absl::flat_hash_map in DefaultVideoQualityAnalyzer.
This CL removes the usage of absl::flat_hash_map because it transitively
depends on CCTZ which fails to link with lld-link after the switch to
libc++.

Since std::map doesn't support heterogeneous lookup until C++14, this
CL also stops using absl::string_view and switches to
`const std::string&`.

Bug: webrtc:10605
Change-Id: I4fc93969c6fc0cc7e7e62b4d2f801bdd27cff0f6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135566
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27877}
2019-05-08 10:23:59 +00:00
Elad Alon
6cdbf3fd74 Fix typo in SupportsEncoderFrameDropping's documentation
TBR=nisse@webrtc.org

Bug: None
Change-Id: I6cc0651a4d01e1d46941a6bb7ee97fdc98b11514
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135564
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27876}
2019-05-08 08:49:18 +00:00
Elad Alon
1f28c28498 Fix comment over Vp8FrameBufferController::SupportsEncoderFrameDropping
CL #132712 added OnFrameDropped, deprecating the previous
way this was conveyed (passing 0 length to OnEncodeDone).

Bug: None
Change-Id: Ie63e1f55429752fd3cd7db46795ed8f7b367ff69
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/135560
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27872}
2019-05-08 08:00:00 +00:00
Artem Titov
f65a89b7f7 Add support of specifying concrete codec for video stream
Bug: webrtc:10138
Change-Id: I074bfccfa5c8f619ea7fa17d6ca99f9b4cbb18b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/123386
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27864}
2019-05-07 11:46:57 +00:00
Sebastian Jansson
1391ed242a Allows injection of network controller factory in test fixture.
Bug: webrtc:9155
Change-Id: I929c4cde66ad6743b4a8df2df3abfa7593992977
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134645
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27843}
2019-05-03 13:22:45 +00:00
Ilya Nikolaevskiy
a8507e359b Remove deprecated interface in I420BufferInterface::GetI420
Bug: none
Change-Id: I55895a360308fd0be79099f2466a7487ef10ce47
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134463
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27841}
2019-05-03 12:16:34 +00:00
Ivo Creusen
8d8ffdbcca Expose new audio stats on the API
Several new audio stats were recently standardized and implemented in
WebRTC in https://webrtc-review.googlesource.com/c/src/+/133887. This CL
adds these to the GetStats API.

Bug: webrtc:10442, webrtc:10443, webrtc:10444
Change-Id: I0e898ac14777e82b1a9099b5e0a5584eb9cb5934
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134213
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27839}
2019-05-03 10:10:15 +00:00
Sebastian Jansson
e847481dc8 Adds debug printing of network estimate.
Bug: webrtc:10498
Change-Id: Idce952675ef079b5981f973ca58ca2cd7e5d5332
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134648
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27838}
2019-05-03 10:08:46 +00:00
Elad Alon
4d6795f828 Refactor handling of configuration overrides from Vp8FrameBufferController
Make Vp8FrameBufferController::UpdateConfiguration return a set
of desired overrides. These overrides are cumulative with
previously returned override sets.

Bug: webrtc:10382
Change-Id: I1aa9544ae0cf6c57115e80963b3bbcdc3101db5e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134649
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27835}
2019-05-03 09:12:56 +00:00
Sebastian Jansson
2db5fc00c0 Deprecating injection of event log into GoogCC factory.
Bug: webrtc:9883
Change-Id: I6087b4a0a2c934e6a9ab435fffaf2eb1fc2a29e4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134644
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27824}
2019-05-02 11:05:17 +00:00
Artem Titov
b93c4e622f Add propagation of test duration to PC framework user.
Add method to get real test execution time, where test execution time is
time from call setup to call terminated.

Bug: webrtc:10138
Change-Id: I7ae3995c0051ecb4fc796b895be1180c8aab77cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134302
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27822}
2019-05-02 10:20:26 +00:00
Florent Castelli
2d9d82ecef Implement RTCRtpTransceiver.setCodecPreferences
SetCodecPreferences allows clients to filter and reorder codecs in their
SDP offer and answer.

Bug: webrtc:9777
Change-Id: I716bed9b06496629b45210883b286f599c875239
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129727
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27817}
2019-05-01 20:14:59 +00:00
Henrik Lundin
44125faba5 Reland "Piping audio interruption metrics to API layer"
The metrics are now added as RTCNonStandardStatsMember objects in
RTCMediaStreamTrackStats. Unit tests are updated.

This is a reland of https://webrtc-review.googlesource.com/c/src/+/134303,
with fixes.

TBR=kwiberg@webrtc.org

Bug: webrtc:10549
Change-Id: I29dcc6fbfc69156715664e71acfa054c1b2d9038
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134500
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27806}
2019-04-29 15:39:50 +00:00
Henrik Andreassson
fc02a793c2 Revert "Piping audio interruption metrics to API layer"
This reverts commit 299c4e6846.

Reason for revert: https://ci.chromium.org/p/chromium/builders/webrtc.fyi/WebRTC%20Chromium%20FYI%20Win10%20Tester/2753

../../chrome/browser/media/webrtc/webrtc_browsertest_base.cc(539): error: Expected equality of these values:
  "ok-got-stats"
  ExecuteJavascript("verifyLegacyStatsGenerated()", tab)
    Which is: "Test failed: Error: \"googInterruptionCount\" is not a whitelisted stat. Exposing new metrics in the legacy getStats() API is not allowed. Please follow the standardization process: https://docs.google.com/document/d/1q1CJVUqJ6YW9NNRc0tENkLNny8AHrKZfqjy3SL89zjc/edit?usp=sharing\n    at failTest (http://127.0.0.1:50650/webrtc/test_functions.js:46:15)\n    at http://127.0.0.1:50650/webrtc/peerconnection.js:481:19"
With diff:
@@ -1,1 +1,3 @@
-ok-got-stats
+Test failed: Error: \"googInterruptionCount\" is not a whitelisted stat. Exposing new metrics in the legacy getStats() API is not allowed. Please follow the standardization process: https://docs.google.com/document/d/1q1CJVUqJ6YW9NNRc0tENkLNny8AHrKZfqjy3SL89zjc/edit?usp=sharing
+    at failTest (http://127.0.0.1:50650/webrtc/test_functions.js:46:15)
+    at http://127.0.0.1:50650/webrtc/peerconnection.js:481:19

Original change's description:
> Piping audio interruption metrics to API layer
>
> Bug: webrtc:10549
> Change-Id: Ie6abe5819c5b73dc5f5f89bdc375bad77f44ce97
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134303
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27788}

TBR=henrik.lundin@webrtc.org,kwiberg@webrtc.org,ivoc@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10549
Change-Id: I345306ba9758c0a3b1597724fa860d3e3fdb8995
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134464
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27802}
2019-04-29 11:23:16 +00:00
Ilya Nikolaevskiy
ade0dc9860 Make FrameBuffer be able to signal if it's trivially convertible to I420
Bug: chromium:930186,webrtc:10310
Change-Id: I7857c33d3616ac58738b22816f9c78fe9e6d1d3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134206
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27798}
2019-04-29 09:55:47 +00:00
Henrik Lundin
299c4e6846 Piping audio interruption metrics to API layer
Bug: webrtc:10549
Change-Id: Ie6abe5819c5b73dc5f5f89bdc375bad77f44ce97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134303
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27788}
2019-04-26 13:32:34 +00:00
philipel
da5aa4ddf5 Use CodecBufferUsage to determine dependencies.
In this CL:
 - Assign frame IDs so that simulcast streams share one frame ID space.
 - Added a CodecBufferUsage class that represent how a particular buffer
   was used (updated, referenced or both).
 - Calculate frame dependencies based on the CodecBufferUsage information.

Bug: webrtc:10342
Change-Id: I4ed5ad703f9376a7d995c04bb757c7d214865ddb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131287
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27784}
2019-04-26 12:13:28 +00:00
Elad Alon
544dece6c1 Allow Vp8FrameBufferController to override resilience mode
Bug: webrtc:10382
Change-Id: I626d616d7a1b50a696f5378345d026f6dce5b97f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/134207
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27777}
2019-04-25 18:30:08 +00:00
Alex Loiko
44c21f48ee Encoder side of Multistream Opus.
Follows https://webrtc-review.googlesource.com/c/src/+/129768 closely.
Adds an ENCODER and sets it up to parse SDP config for multistream
opus.

E.g. this is the new SDP syntax for 6.1 surround sound:
"multiopus/48000/6 channel_mapping=0,4,1,2,3,5 num_streams=4 coupled_streams=2"


Bug: webrtc:8649
Change-Id: I3fc341e76f5c41dab0243cf65f6461e4c3d9d67d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132001
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27775}
2019-04-25 15:07:38 +00:00
Sebastian Jansson
7ccaf8969d Cleanup of network controller handling in Scenario tests.
Removing functionality to choose congestion controller implementation,
using injection instead. Also cleaning up some related functionality
that's no longer needed, such as the injection of event logs into the
factory.

Bug: webrtc:9883
Change-Id: Ia528005625430ae31a15bc88881e2d4ac6ad1d42
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133890
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27768}
2019-04-25 12:40:00 +00:00
Artem Titov
1845922d5a Introduce QualityMetricsReporter and implement network stats gathering
QualityMetricsReporter helps to keep network emulation framework and
peer connection level test framework separated. Also it provides
ability to gather statistics from any component around with
correlation with call start and end.

Bug: webrtc:10138
Change-Id: Ib3330a8d35481fde77fcf77d2271d6cfcf188fec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132718
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27759}
2019-04-25 09:36:50 +00:00
Niels Möller
43f7002aff Delete DecodedImageCallback::ReceivedDecodedFrame
This was a companion method to ReceivedDecodedReferenceFrame, deleted
in https://webrtc-review.googlesource.com/c/src/+/133348.

Tbr: kwiberg@webrtc.org # Mock class update
Bug: webrtc:7408
Change-Id: I429f5f5c18f14c27136e82860297107a82c81d13
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133571
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27754}
2019-04-25 08:09:29 +00:00
Niels Möller
5d34dcfe60 Reland "Delete deprecated variant of VideoDecoder::Decode"
This is a reland of 3a86d9520c

Original change's description:
> Delete deprecated variant of VideoDecoder::Decode
> 
> Bug: webrtc:10379
> Change-Id: I4dd8b503625a9ea2a71177165238e128ac3e49bb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132554
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27712}

Bug: webrtc:10379
Change-Id: I7206756eb5cdbeb320fae74f286a97852fa4368b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133889
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27750}
2019-04-25 07:07:28 +00:00
Jesús de Vicente Peña
70a596386d AEC3: Stationary init: fixing a typo when reading the json configuration
Bug: webrtc:10554
Change-Id: I8c05b7c654117359ff294c7ae4604d7913505650
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133181
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27726}
2019-04-24 07:42:37 +00:00
Elad Alon
162a03979b Followup to Rename "UpdateLayerConfig" to "NextFrameConfig"
CL #133202 missed some documentation in vp8_frame_buffer_controller.h.
TBR=sprang@webrtc.org

Bug: None
Change-Id: I634f965c13a1cb179bcdc38f371e1c6e9380e4b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133909
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27721}
2019-04-23 15:20:27 +00:00
Per Åhgren
c1d209258a AEC3: Corrected the reading/creation of the json parameter file
Bug: webrtc:8671
Change-Id: Ide8693b3be023e56d3acca38e703c95ba0e9b69b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133623
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27714}
2019-04-23 13:29:53 +00:00
Danil Chapovalov
d8bf2d4986 Revert "Delete deprecated variant of VideoDecoder::Decode"
This reverts commit 3a86d9520c.

Reason for revert: breaks downstream project

Original change's description:
> Delete deprecated variant of VideoDecoder::Decode
> 
> Bug: webrtc:10379
> Change-Id: I4dd8b503625a9ea2a71177165238e128ac3e49bb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132554
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27712}

TBR=brandtr@webrtc.org,sakal@webrtc.org,nisse@webrtc.org,kthelgason@webrtc.org,sprang@webrtc.org

Change-Id: Ie971fd821f4de9e4b68e1608d7074835bdf2ed16
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10379
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133907
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27713}
2019-04-23 12:52:25 +00:00
Niels Möller
3a86d9520c Delete deprecated variant of VideoDecoder::Decode
Bug: webrtc:10379
Change-Id: I4dd8b503625a9ea2a71177165238e128ac3e49bb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132554
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27712}
2019-04-23 12:38:33 +00:00
Elad Alon
38ac7bf0ab Add Vp8FrameConfig::IntraFrame()
Simple function to check if the frame described by Vp8FrameConfig
will be an intra frame.

Bug: None
Change-Id: I0ba0476762a152e1be3711352024fc6e1bd35f12
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133560
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27709}
2019-04-23 11:58:18 +00:00
Ruslan Burakov
428dcb2517 Remove SetLatency/GetLatency from MediaSourceInterface API level
Bug: webrtc:10287
Change-Id: I74fad31db98b75791085688438064f9510b0b6fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133165
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27692}
2019-04-18 19:11:31 +00:00
Ying Wang
cab77fd1be Inject network state predictor into video quality test.
Bug: webrtc:10492
Change-Id: Ia2ae5de1019ac4ab89e54e261b1d94a482334ee9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133161
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27681}
2019-04-18 08:19:10 +00:00
Niels Möller
2317c5ee0a Delete method DecodedImageCallback::ReceivedDecodedReferenceFrame
The code invoking it was deleted in
https://codereview.webrtc.org/2753783002

Tbr: kwiberg@webrtc.org # Change to mock class in api/test
Bug: webrtc:7408
Change-Id: I576d7aacd7dc60e42a05d2ea837fddf16594e685
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133348
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27680}
2019-04-18 08:14:40 +00:00
Sebastian Jansson
40889f35fc Removes TimeMicros interface from ThreadProcessingFakeClock.
Bug: webrtc:9883
Change-Id: Ib48872f81f734b09e3ffa4d9d26da79177b02303
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133341
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27668}
2019-04-17 15:37:48 +00:00
Henrik Boström
cf96e0f87d Implement RTCOutboundRtpStreamStats.retransmitted[Bytes/Packets]Sent.
Spec: https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-retransmittedpacketssent

These are already existed in StreamDataCounters. This CL takes care of
the plumbing of these values to the standard stats collector.

TBR=solenberg@webrtc.org

Bug: webrtc:10447
Change-Id: I27d6c3ee3ab627d306303e6ee67e586ddf31cc81
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132012
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27663}
2019-04-17 13:04:50 +00:00
Elad Alon
979c4426a4 Rename "UpdateLayerConfig" to "NextFrameConfig"
Rename "UpdateLayerConfig" to the more appropriate "NextFrameConfig".
Also update some comments in vp8_frame_buffer_controller.h.

Bug: None
Change-Id: Iba8227f84e33e5ebd28d2eeb10fe03e776036603
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133202
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27660}
2019-04-17 11:59:07 +00:00
Elad Alon
123ee9be8f OnLossNotification() receives references
A typo in a previous CL made OnLossNotification() accept its
single argument as a const-value, rather than a const-reference.

Bug: webrtc:10501
Change-Id: I5e6f9c79f15205b75ec90a53d3fccf3dd9927e33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133343
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27659}
2019-04-17 11:47:25 +00:00
Jonas Oreland
a3aa9bd75b Make VideoBitrateAllocatorFactory injectable.
This patch makes VideoBitrateAllocatorFactory injectable
by adding to PeerConnectionDependencies instead of allowing it to be
overridden using MediaEngine (on PeerConnectionFactory).

With this patch VideoBitrateAllocatorFactory is owned
by the PeerConnection.

WANT_LGTM (examples) : sakal@
WANT_LGTM (api/pc) : steveanton@

Bug: webrtc:10547
Change-Id: I768d400a621f2b7a98795eb7f410adb48651bfd6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132706
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27654}
2019-04-17 06:17:34 +00:00
Henrik Boström
01738c63aa Wire up RTCInboundRtpStreamStats.lastPacketReceivedTimestamp.
This collects this metric for both audio and video streams.
https://w3c.github.io/webrtc-stats/#dom-rtcinboundrtpstreamstats-lastpacketreceivedtimestamp

This is a follow-up to https://webrtc-review.googlesource.com/c/src/+/130479
which calculated this metric. This CL is purely plumbing from
"StreamDataCounters::last_packet_received_timestamp_ms" to
RTCInboundRtpStreamStats.


Bug: webrtc:10449
Change-Id: I757ad19b5b8e84553da5edd4a75efa3e1fe30b56
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131397
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27628}
2019-04-15 16:06:01 +00:00
Sebastian Jansson
df88cc014a Allow injection of network estimator into GoogCC.
Bug: webrtc:10498
Change-Id: Ie9225411db201dfcfa0a37a3c40992acbdc215bb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132402
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27624}
2019-04-15 14:12:08 +00:00
Elad Alon
6796ec2289 Add OnFrameDropped() to Vp8FrameBufferController
Prior to this CL, this was indicated by passing |size_bytes| = 0
to the method.

Bug: webrtc:10501
Change-Id: Icff3bb83344834dc62d62bde5ec5d05096a08e11
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132712
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27620}
2019-04-15 12:35:45 +00:00
Erik Språng
16cb8f5d74 Reland "Replace usage of old SetRates/SetRateAllocation methods"
This is a reland of 7ac0d5f348

Original change's description:
> Replace usage of old SetRates/SetRateAllocation methods
>
> This rather large CL replaces all relevant usage of the old
> VideoEncoder::SetRates()/SetRateAllocation() methods in WebRTC.
> API is unchanged to allow downstream projects to update without
> breakage.
>
> Bug: webrtc:10481
> Change-Id: Iab8f292ce6be6c3f5056a239d26361962b14bb38
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131949
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27554}

TBR=brandtr@webrtc.org,sakal@webrtc.org,perkj@webrtc.org

Bug: webrtc:10481
Change-Id: I2978d5c527a18e885b7845c4e53a2424e8ad5b4b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132551
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27593}
2019-04-12 13:37:32 +00:00
Artem Titov
70f80e5962 Add support for creation of AEC dump during the test with PC framework.
Also add conversational speech into PC smoke test (with resource files).

Bug: webrtc:10138
Change-Id: I415a5565bc9146821476ffc60f57f47ed51f89c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132323
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27592}
2019-04-12 13:09:12 +00:00
Artem Titov
806299e09b Introduce network emulation layer stats API.
Bug: webrtc:10138
Change-Id: I32133cd14c7a1933dcbeaa37d4c9ce6748274ebe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131383
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27588}
2019-04-12 12:08:06 +00:00
Harald Alvestrand
114871b1ba Expose SSL ciphersuite on the webrtc::DtlsTransport interface
This allows the ciphersuite to be accessed from Blink code, which is
useful if we want to emit deprecation messages.

Bug: none
Change-Id: Idcf1f5402948406e4cf7c6e54b67a622a1a403ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132004
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27581}
2019-04-12 08:29:59 +00:00
Sebastian Jansson
b113862ccd Allow log print of data units.
Bug: webrtc:9709
Change-Id: I5987a9779e645115dc1893944302a73d540bcf2f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125680
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27578}
2019-04-12 07:36:49 +00:00
Harald Alvestrand
4d7160e41d Code cleanup: Make JsepSessionDescription::Initialize take std::unique_ptr
Bug: none
Change-Id: I5e03ff6a6f16bd2e67fa4830e218b510b702d1d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132321
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27577}
2019-04-12 05:42:46 +00:00
Rasmus Brandt
70c961f965 Delete unused members of VideoCodecH264.
profile-level-id for H.264 comes in through the SdpVideoFormat,
rather than through these members.

Bug: None
Change-Id: I9c4ea8873346ca16174aecf5f90a649cbaf913dd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132545
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27571}
2019-04-11 15:32:48 +00:00
Gustaf Ullberg
52caa0ef58 AEC3: Configuration parameter for disabling linear filter
The configuration parameter filter.use_linear_filter can be used to
disable the linear filtering. Disabling the linear filter is equivalent
to runing in non-linear mode.

Bug: b/130016532
Change-Id: I8ffdf474822888b9915444bba6cc1c25ec1efe5a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132552
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27566}
2019-04-11 13:19:42 +00:00
Niels Möller
7aacdd9515 Reland "Delete CodecSpecificInfo argument from VideoDecoder::Decode"
This is a reland of 39d3a7de02

Original change's description:
> Delete CodecSpecificInfo argument from VideoDecoder::Decode
>
> Bug: webrtc:10379
> Change-Id: I079b419604bf4e9c1994fe203d7db131a0ccddb6
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125920
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27022}

Tbr: kwiberg@webrtc.org
Bug: webrtc:10379
Change-Id: I8197bebd2ae7dc460644a98795b8257b033c27c2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126480
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27565}
2019-04-11 13:03:52 +00:00
Minyue Li
7ddef1af88 Revert "Replace usage of old SetRates/SetRateAllocation methods"
This reverts commit 7ac0d5f348.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Replace usage of old SetRates/SetRateAllocation methods
> 
> This rather large CL replaces all relevant usage of the old
> VideoEncoder::SetRates()/SetRateAllocation() methods in WebRTC.
> API is unchanged to allow downstream projects to update without
> breakage.
> 
> Bug: webrtc:10481
> Change-Id: Iab8f292ce6be6c3f5056a239d26361962b14bb38
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131949
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27554}

TBR=brandtr@webrtc.org,sakal@webrtc.org,nisse@webrtc.org,sprang@webrtc.org,perkj@webrtc.org

Change-Id: I576760b584e3f258013b0279c0c173c895bbb37e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10481
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132561
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27559}
2019-04-11 10:50:29 +00:00
Harald Alvestrand
7061e51b48 Expose DtlsTransport::remote_ssl_certificates
Bug: chromium:907849
Change-Id: If990d541099edb9a327230e1d78a03b406269885
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131951
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27558}
2019-04-11 09:47:33 +00:00
Erik Språng
7ac0d5f348 Replace usage of old SetRates/SetRateAllocation methods
This rather large CL replaces all relevant usage of the old
VideoEncoder::SetRates()/SetRateAllocation() methods in WebRTC.
API is unchanged to allow downstream projects to update without
breakage.

Bug: webrtc:10481
Change-Id: Iab8f292ce6be6c3f5056a239d26361962b14bb38
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131949
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27554}
2019-04-11 07:46:09 +00:00
Elad Alon
b6ef99bb33 Translate loss notifications and pass to encoder
Translate LossNotification RTCP messages (sequence number to
timestamp and additional information), then send the translted
message onwards to the encoder.

Bug: webrtc:10501
Change-Id: If2fd943f75c36cf813a83120318d8eefc8c595d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131950
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27545}
2019-04-10 15:31:53 +00:00
Ying Wang
0810a7c25a Add base class NetworkPredictor and NetworkPredictorFactory and wire up.
Add base class NetworkPredictor and NetworkPredictorFactory in /api, make it possible to inject customized NetworkPredictor in PeerConnectionFactory level. The NetworkPredictor object will be pass down to GoogCCNetworkControl and DelayBasedBwe.

Bug: webrtc:10492
Change-Id: Iceeadbe1c9388b11ce4ac01ee56554cb0bf64d04
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130201
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27543}
2019-04-10 12:38:58 +00:00
Benjamin Wright
2af5dcbe9e Reland "Refactor FrameDecryptorInterface::Decrypt to use new API."
This reverts commit 7dd83e2bf7.

Reason for revert: This wasn't the cause of the break. 

Original change's description:
> Revert "Refactor FrameDecryptorInterface::Decrypt to use new API."
> 
> This reverts commit 642aa81f7d.
> 
> Reason for revert: Speculative revert. The chromium roll is failing:
> https://ci.chromium.org/p/chromium/builders/try/linux-rel/64388
> But I can't figure out exactly what is failing, this looks suspecious.
> 
> Original change's description:
> > Refactor FrameDecryptorInterface::Decrypt to use new API.
> > 
> > This change refactors the FrameDecryptorInterface to use the new API. The new
> > API surface simply moves bytes_written to the return type and implements a
> > simple Status type.
> > 
> > Bug: webrtc:10512
> > Change-Id: I622c5d344d58e618853c94c2f691cf7c8fb73a36
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131460
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> > Commit-Queue: Benjamin Wright <benwright@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#27497}
> 
> TBR=brandtr@webrtc.org,steveanton@webrtc.org,solenberg@webrtc.org,ossu@webrtc.org,stefan@webrtc.org,benwright@webrtc.org
> 
> Change-Id: Ia9ec70263762c34671af13f0d519e636eb8473cd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10512
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132013
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27510}

TBR=brandtr@webrtc.org,steveanton@webrtc.org,solenberg@webrtc.org,hbos@webrtc.org,ossu@webrtc.org,stefan@webrtc.org,benwright@webrtc.org

Change-Id: I8e4b7965cf1d1a1554c3b46e6245f5ad0d2dcbb4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10512
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131982
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27529}
2019-04-09 20:08:56 +00:00
Mirko Bonadei
6a489f22c7 Fully qualify googletest symbols.
Semi-automatically created with:

git grep -l " testing::" | xargs sed -i "s/ testing::/ ::testing::/g"
git grep -l "(testing::" | xargs sed -i "s/(testing::/(::testing::/g"
git cl format

After this, two .cc files failed to compile and I have fixed them
manually.

Bug: webrtc:10523
Change-Id: I4741d3bcedc831b6c5fdc04485678617eb4ce031
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132018
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27526}
2019-04-09 17:18:20 +00:00
Sergey Silkin
cf267052b3 Field trial to control inter-layer prediction.
This adds WebRTC-Vp9InterLayerPred field trial that allows to control
inter-layer prediction mode in VP9 encoder.

Bug: chromium:949536
Change-Id: Iea03db07fd21f28ab58382c5fdaac68acacc701c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131322
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27521}
2019-04-09 13:40:55 +00:00
Henrik Boström
2e06926c95 Implement RTC[In/Out]boundRtpStreamStats.contentType.
Spec: https://henbos.github.io/webrtc-provisional-stats/#dom-rtcinboundrtpstreamstats-contenttype

This already exists as a goog-stat. This CL only plumbs the value to the
new stats collector.

Note: There is currently no distinction between the extension being
missing and it being present but the value being "unspecified". Until
https://crbug.com/webrtc/10529 is fixed, this metric is only exposed if
SCREENSHARE was present.

Bug: webrtc:10452
Change-Id: Ic8723f4d0efb43ab72a560e954676facd3b90659
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131946
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27520}
2019-04-09 13:02:03 +00:00
Elad Alon
20789e477d Name changes inside VideoEncoder
Change names of two members of VideoEncoder to enhance clarity.

Bug: webrtc:10501
Change-Id: I6bcf64a5936f828bc585e54c429f24676ccfb0ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131941
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27514}
2019-04-09 11:27:10 +00:00
Henrik Boström
7dd83e2bf7 Revert "Refactor FrameDecryptorInterface::Decrypt to use new API."
This reverts commit 642aa81f7d.

Reason for revert: Speculative revert. The chromium roll is failing:
https://ci.chromium.org/p/chromium/builders/try/linux-rel/64388
But I can't figure out exactly what is failing, this looks suspecious.

Original change's description:
> Refactor FrameDecryptorInterface::Decrypt to use new API.
> 
> This change refactors the FrameDecryptorInterface to use the new API. The new
> API surface simply moves bytes_written to the return type and implements a
> simple Status type.
> 
> Bug: webrtc:10512
> Change-Id: I622c5d344d58e618853c94c2f691cf7c8fb73a36
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131460
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Commit-Queue: Benjamin Wright <benwright@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27497}

TBR=brandtr@webrtc.org,steveanton@webrtc.org,solenberg@webrtc.org,ossu@webrtc.org,stefan@webrtc.org,benwright@webrtc.org

Change-Id: Ia9ec70263762c34671af13f0d519e636eb8473cd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10512
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132013
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27510}
2019-04-09 10:36:48 +00:00
Harald Alvestrand
f3736ed3d8 Datachannel: Use absl::optional for maxRetransmits and maxRetransmitTime.
These parameters are nullable in the JS API.
This allows cleaner handling of "unset" vs "set" in Chrome.

Backwards compatibility note: Behavior should not change, even for users
who set the values explicitly to -1 in the DataChannelInit struct.
Those who try to read back the value will get a compile-time error.

Bug: chromium:854385
Change-Id: Ib488ca5f70bc24ba8b4a3f71b506434c4d2c60b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131381
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27507}
2019-04-09 08:32:43 +00:00
Danil Chapovalov
b703db9bce Fix and test CreateVideoStreamDecoder
create TaskQueue using provided factory instead of through constructor that uses GlobalTaskQueueFactory
Rename interface to avoid collision with class in video/video_stream_decoder.h
Add simple unittest to avoid future breakages.

Bug: webrtc:10284, webrtc:10521
Change-Id: I647b31cc99a2b6beb79b936f05f482788861f1cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131398
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27503}
2019-04-09 07:57:18 +00:00
Henrik Boström
f71362f0cf Wire up RTCOutboundRtpStreamStats.totalEncodeTime.
This is a follow-up to
https://webrtc-review.googlesource.com/c/src/+/130517 that calculated
this metric.

This CL is purely plumbing, exposing
VideoSendStream::total_encode_time_ms in standard getStats() as
RTCOutboundRtpStreamStats.totalEncodeTime (in seconds):
https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-totalencodetime

Bug: webrtc:10448
Change-Id: I715f1ef937e441169dee55b5e8d4fbf98811c5f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131940
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27501}
2019-04-09 07:34:38 +00:00
Benjamin Wright
642aa81f7d Refactor FrameDecryptorInterface::Decrypt to use new API.
This change refactors the FrameDecryptorInterface to use the new API. The new
API surface simply moves bytes_written to the return type and implements a
simple Status type.

Bug: webrtc:10512
Change-Id: I622c5d344d58e618853c94c2f691cf7c8fb73a36
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131460
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27497}
2019-04-08 20:45:09 +00:00
Sebastian Jansson
c01367db40 Deprecating ThreadChecker specific interface.
All changes outside thread_checker.h are by:
s/CalledOnValidThread/IsCurrent/
s/DetachFromThread/Detach/

Bug: webrtc:9883
Change-Id: Idbb1086bff0817db58e770116acf4c9d60fae8b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131023
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27494}
2019-04-08 16:58:07 +00:00
Alex Loiko
e5b94160b5 Decoder for multistream Opus.
See https://webrtc-review.googlesource.com/c/src/+/121764 for the
overall vision.

This CL adds a multistream Opus decoder. It's a new code-path to not
interfere with the standard Opus decoder. We introduce new SDP syntax,
which uses terminology of RFC 7845. We also set up the decoder side to
parse it. The encoder part will come in a later CL.

E.g. this is the new SDP syntax for 6.1 surround sound:
"multiopus/48000/6 channel_mapping=0,4,1,2,3,5 num_streams=4 coupled_streams=2"

Bug: webrtc:8649
Change-Id: Ifbc584cbb6d07aed373f223512a20d6d72cec5ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129768
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27493}
2019-04-08 16:15:37 +00:00
Erik Språng
4c6ca30019 Update VideoStreamEncoder to use new VideoEncoder::SetRates() method.
This CL wires up the new SetRates() method of the video encoders, and
refactors a few things in the process:

Most notably, the VideoStreamEncoderInterface is update so that the
|target_headroom| parameter is replaced with |link_allocation|, meaning
that instead of indicating bitrate capacity in excess of the target
bitrate, it indicates to total network capacity allocated for the
stream including the target bitrate. This matches the VideoEncoder API.

The VideoEncoder::RateControlParameters struct gets a few new helper
methods.

In VideoStreamEncoder, instead of adding more fields to the
|last_observed_bitrate*| family, uses an optional struct that
inherits from VideoEncoder::RateControlParameters.

Bug: webrtc:10481
Change-Id: Iee3965531142ae9b964ed86c0d51db59b1cdd61c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131123
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27487}
2019-04-08 14:01:28 +00:00
Benjamin Wright
d1c6085cb3 Added FrameDecryptorInterface::Result constructor and IsOk() member function.
Bug: webrtc:10512
Change-Id: I48bdaad57739382b5c1040d94f4e3657e2054e4b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131364
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27475}
2019-04-08 07:04:07 +00:00
Mirko Bonadei
f948eb66aa Implement DefaultAudioQualityAnalyzer.
The DefaultAudioQualityAnalyzer will read stats reports (temporarily
using the old PeerConnectionInterface::GetStats) and for each audio
stream it will collect some NetEq related stats.

When DefaultAudioQualityAnalyzer::Stop is invoked by the framework,
it will report the following metrics:
- expand_rate
- accelerate_rate
- preemptive_rate
- speech_expand_rate
- preferred_buffer_size_ms

Bug: webrtc:10138
Change-Id: Ie493456fcb9ed86455b12dabdab98a317387ef46
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125980
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27474}
2019-04-07 14:32:33 +00:00
Benjamin Wright
72e977135c Add Result FrameDecryptorInterface::Decrypt
This change adds FrameDecryptorInterface::Result to the FrameDecryptorInterface
API. Result contains a Status and bytes_written. This removes requiring out
parameters from the API and provides a simpler status return code for the
function. This is in response to comments suggested here:
https://webrtc-review.googlesource.com/c/src/+/131358

int FrameDecryptorInterface::Decrypt() will be removed in a follow up CL.

Bug: webrtc:10512
Change-Id: I47f19f154d1d8430acd6e4a6f433ab24c455fd51
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131362
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27470}
2019-04-05 21:07:16 +00:00
Gustaf Ullberg
8f32b6c18c AEC3: Enable usage of external delay estimator
This change makes it possible to disable AEC3's render delay
controller and delay estimator, and instead rely on an external
delay estimator. The delay is communicated via SetAudioBufferDelay.

When the feature is enabled, no echo removal will be performed
until the first delay is provided.

The delay is

Bug: b/130016532
Change-Id: I16643109d78d770ff1d2713cf247b0b9cce1bc1c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131327
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27467}
2019-04-05 15:34:39 +00:00
Artem Titov
ff39312958 Add ability to have multiple connected remote endpoints
Bug: webrtc:10138
Change-Id: Ic305c2f247588d75b6ced17052ba12d937d1a056
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128864
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27460}
2019-04-05 10:27:14 +00:00
Gustaf Ullberg
ec51ce0ce1 AEC3: Remove unused config parameters
This change removes the following unused parameters from the AEC3
configuration:
- render_pre_window_size_init
- render_post_window_size_init
- nonlinear_hold
- nonlinear_release

Bug: webrtc:8671
Change-Id: I8f7a3d350387cd8ada4d507c3a9fab43b7813f5c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131321
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27450}
2019-04-04 12:36:48 +00:00
Elad Alon
6c371ca700 Add OnLossNotification() to VideoEncoder and Vp8FrameBufferController
Bug: webrtc:10501
Change-Id: I33e8bfcf16cf24aadcfdf214d7d9bcd495bf9348
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131021
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27449}
2019-04-04 10:57:02 +00:00
Ruslan Burakov
4bac79ece2 Add SetJitterBufferMinimumDelay method to RtpReceiverInterface.
This change is required to allow modification of Jitter Buffer delay
in javascript via Origin Trial Experiment.
Link to experiment description:
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/Tgm4qiNepJc

Bug: webrtc:10287
Change-Id: I4f21380aad5982a4a60c55683b5173ce72ce0392
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131144
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27444}
2019-04-04 09:00:16 +00:00
Artem Titov
ade945d834 Add ability to specify encoder bitrate multiplier in PC level tests
Bug: webrtc:10138
Change-Id: I40b42e83ccec7b08226606d2770f3afa80e3fcc6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130241
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27440}
2019-04-03 12:09:42 +00:00
Danil Chapovalov
9435c61021 Expose TaskQueueFactory for webrtc::Call in peer connection api
making a step for GlobalTaskQueueFactory to be optional way
to provide TaskQueueFactory

Bug: webrtc:10284
Change-Id: Ife838b3691c256820973118bc5b3cb372dea09cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130488
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27423}
2019-04-02 18:46:54 +00:00
Mirko Bonadei
66e7679fb8 Export symbols needed by the Chromium component build (part 8).
This CL uses RTC_EXPORT (defined in rtc_base/system/rtc_export.h)
to mark WebRTC symbols as visible from a shared library, this doesn't
mean these symbols are part of the public API (please continue to refer
to [1] for info about what is considered public WebRTC API).

[1] - https://webrtc.googlesource.com/src/+/HEAD/native-api.md

Bug: webrtc:9419
Change-Id: Ib2c29054b2ae008f5291bd3b762a504b18534326
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130513
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27410}
2019-04-02 10:13:36 +00:00
Niels Möller
9d8eaac4ee Delete unneeded direct includes of common_types.h
And delete corresponding dependencies on :webrtc_common. After this
change, common_types.h is included directly only from code in the
following directories:

api/
api/video/
api/video_codecs/
common_video/libyuv/include/
media/base/
modules/remote_bitrate_estimator/
modules/rtp_rtcp/source/
modules/video_coding/codecs/vp9/

There remains plenty of indirect dependencies on the types declared in
common_types.h, but the fewer direct dependencies should make it
easier to find the proper place for each type.

Bug: webrtc:5876
Change-Id: I93e8f214025ecb613c19fdec2015bd3f96c59aae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130501
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27376}
2019-04-01 07:18:13 +00:00
Mirko Bonadei
a7d8f19a77 Use 'public_deps' to depend on nacl_io [1].
Some NaCl system headers live in a special directory and the
toolchain doesn't propagate the -I compiler flag [2].

A common workaround in Chromium is to use 'public_deps' in order
to propagate //native_client_sdk/src/libraries/nacl_io:nacl_io_include_dirs
one step further in the build graph.

[1] - https://cs.chromium.org/chromium/src/native_client_sdk/src/libraries/nacl_io/
[2] - -Inative_client_sdk/src/libraries/third_party/newlib-extras

Bug: chromium:925028
Change-Id: I5145b80c2ae6969f79fcbfcf93a6b05c8a122746
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129701
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27373}
2019-03-31 12:58:02 +00:00
Jakob Ivarsson
aa023e2553 Add test-only group id.
Bug: chromium:943076
Change-Id: Ife855fe59fe5e358bc94e4bb0da704ee2647dbd9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129900
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27356}
2019-03-29 15:53:16 +00:00
Niels Möller
9d766b91df Delete deprecated variant of VideoEncoder::Encode
Bug: webrtc:10379
Change-Id: I027ceb3323d3fea84f478131dee31dff77e4c0aa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126228
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27346}
2019-03-28 15:26:23 +00:00
François Doray
8ea977d2fd Add ScopedAllowBaseSyncPrimitivesForTesting to Webrtc.
Chromium requires that all code that waits on a sync primitive be
annotated with ScopedAllowBaseSyncPrimitives(ForTesting). Webrtc
already imports ScopedAllowBaseSyncPrimitives.
ScopedAllowBaseSyncPrimitivesForTesting is equivalent but can only
be used in tests and doesn't required adding a friend declaration to
thread_restrictions.h.

Previously, the code that is annotated with
ScopedAllowBaseSyncPrimitivesForTesting in this CL didn't fail because
it ran on a TaskRunner annotated with the deprecated
WithBaseSyncPrimitives() trait (cf.
https://cs.chromium.org/chromium/src/content/renderer/media/webrtc/task_queue_factory_unittest.cc?l=23&rcl=362f3723ac358d932ea2e3af65512a1243697a31).

Change-Id: Id7cfa2ea108870de86dc887458ae783c807791cc
Bug: chromium:889029
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128823
Commit-Queue: Francois Pierre Doray <fdoray@chromium.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27339}
2019-03-28 13:07:33 +00:00
Artem Titov
e5cc85b5c5 Introduce dynamic endpoints
Bug: webrtc:10138
Change-Id: I7f6922adb93680cada6bea014539fc3089735834
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128480
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27336}
2019-03-28 12:27:41 +00:00
Danil Chapovalov
289f13d5ac Remove CreateVideoStreamEncoder version that uses GlobalTaskQueueFactory
Bug: webrtc:10284
Change-Id: Ic5537fa3d808ef073a7e188fabe2415c7f44c2a9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129762
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27331}
2019-03-28 10:19:52 +00:00
Erik Språng
4d9df38d82 Add new more flexible VideoEncoder::SetRate() method.
This CL changes the API for webrtc::VideoEncoder.

There is a legacy method called SetRates(). This is indicated as being
deprecated, but there seem to be a number of usages still left.

Then there is the new SetRateAllocation() method which takes a
VideoBitrateAllocation instance instead of a single target bitrate.

This CL adds a new version of SetRates() which moves all the existing
parameters in a RateControlParameters struct, and adds a bandwidth
allocation signal. The intent of this signal is to allow the encoder
to know how close to the target it needs to stay. If the encoder rate
is network restricted, it will need to be more aggressive in keep the
rate down and possibly drop frames. If there is some margin for
overshoot, it might do different trade-offs.

Furthermore, the frame rate signal is changes from an integer to a
floating point type in order to get more precise rates at low frame
rates and the return type has been changed to void since the only use
of the previous values to log it and that is better done inside encoder
where the error condition originates.

The intent is to properly deprecate the "old" SetRates() /
SetRateAllocation() methods, send out a PSA and then remove them in two
weeks. Changes required by users should be trivial, as using the new
headroom signal is optional.

Bug: webrtc:10155, webrtc:10481
Change-Id: I4f797b0b0c73086111869ef4ee5f42bf530f5fde
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129724
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27314}
2019-03-27 14:31:11 +00:00
Rasmus Brandt
7d72d0fb39 Change VideoCodecTestStats API.
- Add GetFrameStatistics API:
  This is useful for downstream test users that want to read frame-level stats.
- Remove other APIs that are not used by downstream tests:
    * AddFrame
    * GetFrame
    * GetFrameWithTimestamp
    * SliceAndCalcAggregatedVideoStatistic
    * PrintFrameStatistics
    * Size
    * Clear
  The implementations, which are used by the fixture implementation, are kept.

Bug: webrtc:10349
Change-Id: Id2f6fa5a36b8341a5ccb365725f71ebe0c0f1570
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128779
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27306}
2019-03-27 09:50:54 +00:00
Artem Titov
8ea8dcbae6 Rename create_network_emulation_manager_api into create_network_emulation_manager
Bug: webrtc:10138
Change-Id: I2feaa1009739556ca87fe4d081d808fed3957479
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128877
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27288}
2019-03-26 13:09:22 +00:00
Steve Anton
a59dcc3de2 Use Abseil container algorithms in api/
Bug: None
Change-Id: I87439a234d7018757eb61e99d5c6f9c7be4ab357
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128825
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27272}
2019-03-25 22:11:06 +00:00
Niels Möller
d57efc12fb Delete class StringRtpHeaderExtension, replaced with std::string
Bug: webrtc:10440
Change-Id: I52f865496f9838ac0981a6cd13f24b5b681b6616
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128609
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27265}
2019-03-25 12:32:41 +00:00
Niels Möller
0cd95081c0 Delete last traces of RtpTransportAdapter
Bug: None
Change-Id: I6bfac26ebd924c83f2f8a3adae983feb7d5bf00e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128770
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27258}
2019-03-25 08:52:45 +00:00
Amit Hilbuch
e155dd0fdb Adding reinterpret to ArrayView to allow data manipulation.
Reinterpret will only allow conversions when the underlying types are
fundamental and have the same size.

Bug: None
Change-Id: Id6a4e9784998fe65fb26ab3fd398710c892c4a67
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128228
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27249}
2019-03-22 18:15:22 +00:00
Artem Titov
d57628fed4 Move API for PC e2e test framework to the public API folder
Bug: webrtc:10138
Change-Id: If60019c9a7afe4760f4292e722cbc5aa229f437b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127891
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27247}
2019-03-22 16:52:16 +00:00
Steve Anton
ddb930a83b Update per-file OWNERS to reflect renamed file names
Bug: None
No-Try: True
Change-Id: I2404bd14296286a832943226c20e947d1efb73fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128920
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27246}
2019-03-22 16:47:56 +00:00
Niels Möller
8f7ce222e7 Make VideoFrameType an enum class, and move to separate file and target
Bug: webrtc:5876, webrtc:6883
Change-Id: I1435cfa9e8e54c4ba2978261048ff3fbb993ce0e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126225
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27239}
2019-03-22 12:44:51 +00:00
Kári Tristan Helgason
b163359751 Add interface class for bitstream parser.
Bug: webrtc:10439
Change-Id: I0decbbf4aa21a96db50f340f200ccf8adc9e8b53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128760
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27237}
2019-03-22 12:14:41 +00:00
Jakob Ivarsson
2293622f02 Add group_ids to RTCStatsMemberInterface.
Bug: chromium:943076
Change-Id: I1bd40cbbd121dbc3c961650926d9a28fe90f6883
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128769
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27235}
2019-03-22 11:45:51 +00:00
Artem Titov
741daaf039 Move rtc::FunctionView to the public API
Bug: webrtc:10138
Change-Id: Icc25a2a277a9608701aaddd546882366739991ca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127898
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27227}
2019-03-21 15:23:05 +00:00
Artem Titov
94b57c044e Cleanup BUILD.gn files from imports like foo:foo
Repalce all occurrences of foo:foo in deps with just foo in BUILD.gn
files.

Done with Sublime regex replace.
Find: \b([-a-zA-Z0-9_]+):+\1\b
In: *.gn
Replace with: \1

Bug: None
Change-Id: I40aba1b14face687a595b852ffe443cb20197611
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127899
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27225}
2019-03-21 13:05:28 +00:00
Artem Titov
533a9fec55 Clean BUILD.gn files: remove extra :memory
Use //third_party/abseil-cpp/absl/memory instead of
//third_party/abseil-cpp/absl/memory:memory in BUILD.gn files.

Bug: None
Change-Id: I47c915f0847b102b37c5b38009c91b315cd3a1b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128615
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27222}
2019-03-21 12:09:50 +00:00
Niels Möller
ef1052a134 Reland "Move api/rtp_headers.h to its own build target."
This is a reland of a67050debc

Original change's description:
> Move api/rtp_headers.h to its own build target.
>
> Reduces dependencies on the libjingle_peerconnection_api target from
> lower-level code.
>
> Bug: None
> Change-Id: I98576fc718c396cc0f720c3770acd2b696b9df89
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128565
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27213}

Bug: None
Tbr: kwiberg@webrtc.org
Change-Id: If15b05957e50bb8f18a33c2ed1321e672311b626
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127895
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27216}
2019-03-21 09:17:07 +00:00
Steve Anton
2baef3509f Revert "Move api/rtp_headers.h to its own build target."
This reverts commit a67050debc.

Reason for revert: breaks downstream projects

Original change's description:
> Move api/rtp_headers.h to its own build target.
> 
> Reduces dependencies on the libjingle_peerconnection_api target from
> lower-level code.
> 
> Bug: None
> Change-Id: I98576fc718c396cc0f720c3770acd2b696b9df89
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128565
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27213}

TBR=danilchap@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I8cccaa8be1700ca8db141db7252eb6ce588ba2e0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128645
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27215}
2019-03-20 16:47:30 +00:00
Niels Möller
a67050debc Move api/rtp_headers.h to its own build target.
Reduces dependencies on the libjingle_peerconnection_api target from
lower-level code.

Bug: None
Change-Id: I98576fc718c396cc0f720c3770acd2b696b9df89
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128565
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27213}
2019-03-20 16:00:49 +00:00
Elad Alon
cde8ab265e Use single FrameBufferController in VP8, created by a factory.
This CL paves the way to making FrameBufferController injectable.

LibvpxVp8Encoder can manage multiple streams. Prior to this CL,
each stream had its own frame buffer controller, all of them held
in a vector by LibvpxVp8Encoder. This complicated the code and
produced some code duplication (cf. SetupTemporalLayers).

This CL:
1. Replaces CreateVp8TemporalLayers() by a factory. (Later CLs
   will make this factory injectable.)
2. Makes LibvpxVp8Encoder use a single controller. This single
   controller will, in the case of multiple streams, delegate
   its work to multiple controllers, but that fact is not visible
   to LibvpxVp8Encoder.

This CL also squashes CL #126046 (Send notifications of RTT and
PLR changes to Vp8FrameBufferController) into it.

Bug: webrtc:10382
Change-Id: Id9b55734bebb457acc276f34a7a9e52cc19c8eb9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126483
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27206}
2019-03-20 11:54:02 +00:00
Ivo Creusen
5ec61565cb Allow passing an event log as string to NetEqSimulator.
Previously only reading from the filesystem was supported, this CL
allows parsing an event log from a string.

Bug: webrtc:10337
Change-Id: Iadde3319eb8fb4175625f510201fac9c01c80ed9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127296
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27202}
2019-03-20 10:27:14 +00:00
Niels Möller
b838952d37 Add empty target api:rtp_headers
The target should contain rtp_headers.{cc,h}, but downstream
dependencies must be adjusted before moving the files into the new
target.

Bug: None
Change-Id: Ie8a37c43200463762e2fdaa99d7b49d880298602
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128570
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27200}
2019-03-20 07:17:24 +00:00
Jakob Ivarsson
758d946106 Add origin trial ids to non-standard stats members.
Bug: chromium:943076
Change-Id: I2d8211d3acd844cf602ed1c7de08bb7441263950
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128420
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27186}
2019-03-19 16:53:47 +00:00
Piotr (Peter) Slatala
946b968111 Add support for target rate constraints
WebRTC video engine now configures bitrate on media transport
correctly.

Bug: webrtc:9719
Change-Id: I85884cd76644b7eca3763cec8ce9e31b5b64db27
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127941
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27167}
2019-03-18 18:54:58 +00:00
Piotr (Peter) Slatala
cb8284e419 Add ownership to fake_media_transport
No-Try: True
Bug: None
Change-Id: I411cdb48c9da23e72c575c59ede8f5d140a437e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128223
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27165}
2019-03-18 17:28:02 +00:00
Artem Titov
7bf8c7f8cc Add public API for NetworkEmulationManager
Bug: webrtc:10138
Change-Id: Ib5f8e95761813bd117a5e29adbc6822a5c6c73bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126122
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27146}
2019-03-15 14:50:59 +00:00
Jakob Ivarsson
647d5e6d91 Increase the default maximum jitter buffer size to 200 packets.
Bug: webrtc:10415
Change-Id: Iec5a5a263c11d92a23290c1c2de053fe9e5d5839
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128082
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27142}
2019-03-15 10:25:11 +00:00
Per Åhgren
e8efbbd61b AEC3: Removing unused parameters
This CL removes parameters for AEC3 which are no longer used. To reflect
that change, one of the parameters also is renamed

Bug: chromium:941949,webrtc:8671
Change-Id: I26609b396fa14ecb7523eebfe531a1338718103b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127780
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27128}
2019-03-14 12:06:40 +00:00
Gustaf Ullberg
9249fbf3a6 AEC3: Redesign delay headroom
This change reduces the risk of echo due to noise in the headroom
of the linear filter.

Changes:
- Use shorter delay headroom
- Delay headroom is specified in samples (not blocks)
- No hysteresis limit when delay is reduced

Bug: chromium:119942,webrtc:10341
Change-Id: I708e80e26d541dff8ca04b6da2d346a1d59cbfcb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126420
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27126}
2019-03-14 11:04:47 +00:00
Niels Möller
009ab3c438 Delete EncodedImage::GetBufferPaddingBytes
For the ffmpeg H.264 decoder, rely on ffmpeg being configured with
CONFIG_SAFE_BITSTREAM_READER.

Bug: webrtc:9378
Change-Id: Ia7a46580d520808e36581252a95feeb5f9c57bf9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/119665
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27124}
2019-03-14 09:08:19 +00:00
Harald Alvestrand
3cc45d4467 Add a test that all //api/test headers are compilable.
Bug: webrtc:10376
Change-Id: I2a1ea24ddf5980c76660724fae68c16179bb25a7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125682
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27119}
2019-03-14 05:27:53 +00:00
Benjamin Wright
3aa584ff11 Fixes ClangTidy issues in api/
These are manual edits please verify there are no typos.
Feel free to auto-submit if there are no issues.

Bug: webrtc:10410
Change-Id: I20190c01559ff315422be1b3f980853cbc5afbcb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127625
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27117}
2019-03-14 03:52:19 +00:00
Alessio Bazzica
5ad789ceff Reland "NetEQ RTP Play: Optionally write output audio file"
This reverts commit c4b391a257.

Reason for revert: issue fixed

Original change's description:
> Revert "NetEQ RTP Play: Optionally write output audio file"
>
> This reverts commit 6330818ec8.
>
> Reason for revert: This breaks api/test/neteq_simulator_factory.cc, which unfortunately was not caught by our bots.
>
> Original change's description:
> > NetEQ RTP Play: Optionally write output audio file
> >
> > This CL makes the output audio file optional to more
> > quickly run neteq_rtpplay when no audio output is needed.
> > The CL also includes necessary adaptations because of pre-existing
> > dependencies (e.g., the output audio file name is used to create
> > the plotting script file names).
> >
> > The command line arguments are retro-compatible - i.e., same behavior
> > when specifying the output audio file and the new flag
> > --output_files_base_name is not used.
> >
> > This CL also includes a test script with which the retro-compatibility
> > has been verified.
> >
> > Bug: webrtc:10337
> > Change-Id: Ie3f301b3b2ed0682fb74426d9cf452396f2b112b
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126224
> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> > Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#27067}
>
> TBR=henrik.lundin@webrtc.org,alessiob@webrtc.org,ivoc@webrtc.org
>
> Change-Id: I0c63a8ba9566ef567ee398f571f2a511916fa742
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10337
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127293
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27078}

TBR=henrik.lundin@webrtc.org,alessiob@webrtc.org,ivoc@webrtc.org

Change-Id: Ia7061f7c2d69db61638ad612e82cd429eb49d539
Bug: webrtc:10337
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127540
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27106}
2019-03-13 15:33:29 +00:00
Rasmus Brandt
3c589beee6 Reland "Change clip_name -> clip_path in VideoQualityTestFixture::Params::Video."
This is a reland of 184f6d5d75.

Incorrect build dependencies in downstream tests have been fixed,
and an initialization bug in this CL has also been fixed.

Original change's description:
> Change clip_name -> clip_path in VideoQualityTestFixture::Params::Video.
>
> This allows external users of this test fixture to specify a custom
> path, rather than just a custom file name.
>
> Bug: webrtc:10349
> Change-Id: I84e886c8bc28583017ce9ed7b9e7ee6a8e95730f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126227
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27033}

TBR: kwiberg@webrtc.org
Bug: webrtc:10349
Change-Id: I0ec9dd26cd96c3db8ac8482893a26e62a1b1eefc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127181
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27102}
2019-03-13 15:00:05 +00:00
Ruslan Burakov
2594f27bad Change some RTC_DCHECKs to RTC_DCHECK_EQ
This makes the error messages more informative.

Bug: webrtc:10398
Change-Id: I161aa4bfa53f60d06500d42c883f18add4c58531
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127200
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Cr-Commit-Position: refs/heads/master@{#27071}
2019-03-12 10:42:43 +00:00
Danil Chapovalov
4f779c6aec Remove legacy empty task_queue BUILD targets and build arg
Now that they are unused

Bug: webrtc:10191
Change-Id: Id5f1b70ed8e084555ca809fef2a75359266f2ca1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126980
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27070}
2019-03-12 10:06:04 +00:00
Sebastian Jansson
d155d686f8 Removes rtp level keep alive support.
This is not used in practice as there's functionality on
other levels that serves the same purpose.

Bug: None
Change-Id: I0488dc42459b07607363eba0f2b06f4c50f7cda4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125520
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27061}
2019-03-11 14:47:15 +00:00
Marina Ciocea
e448a3fb54 Update DataChannel bufferedamount implementation.
Call DataChannelObserver::OnBufferedAmountChange on each successful send.
Previously, the observer would get notified of buffered amount changes only when
queued send data is consumed. Data gets queued only if it cannot be sent right
away. According to the WebRTC standard[1], bufferedamount should be increased
before each sent and decreased after each successful sent. Update implementation
to be standard compliant.

Design doc: http://doc/1lorHBn-GMn5U0T0RQANxrsW0pXhw8XGZM-xZyVUOW90

[1] https://w3c.github.io/webrtc-pc/#dom-datachannel-bufferedamount

Bug: chromium:878682
Change-Id: Ife009d30c4a18dced9a54cf600a445bb1f02561d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/123237
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27057}
2019-03-11 13:21:36 +00:00
Danil Chapovalov
ad89528051 Reland "Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current"
This reverts commit 42d8c93ec3.

Reason for revert: Got Aliby for FEC test flakes

Original change's description:
> Revert "Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current"
> 
> This reverts commit 304e9d2df3.
> 
> Reason for revert: Breaks downstream projects.
> Seems to make VideoSendStreamTest.SupportsFlexfecSimulcastVp8 flaky.
> 
> Original change's description:
> > Delete rtc::TaskQueue::Current in favor of webrtc::TaskQueueBase::Current
> > 
> > Bug: webrtc:10191
> > Change-Id: I506cc50a90c73a6a4f6a3de36de0999cca72f5ba
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126230
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#27035}
> 
> TBR=danilchap@webrtc.org,kwiberg@webrtc.org
> 
> Change-Id: If98324f88e4b3d18bf2fe33597dfb9711867c243
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10191
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126484
> Reviewed-by: Yves Gerey <yvesg@webrtc.org>
> Commit-Queue: Yves Gerey <yvesg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27041}

TBR=danilchap@webrtc.org,kwiberg@webrtc.org,yvesg@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10191
Change-Id: Id87a17ae415142b8e0b11ba03ae7bad84a473fb0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126720
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27056}
2019-03-11 12:32:49 +00:00