Commit graph

614 commits

Author SHA1 Message Date
Mirko Bonadei
904903705f Simplify api/DEPS presubmit check.
After the problem fixed by [1], it seems wiser to only check that
`include_rules` contains all the top level directories and delegate the
action of adding a rule for .cc file to the first user of an header
from a new root level directory.

This should make the presubmit check more actionable (in [1] for example
the solution was to *not* add "+ios" but to consider ios/ as a non
WebRTC directory).

[1] - https://webrtc-review.googlesource.com/c/107707

Bug: webrtc:9887, webrtc:9924
Change-Id: Ic85e2153a2b83a4874c8faec3c5d1a8c61fe6faf
Reviewed-on: https://webrtc-review.googlesource.com/c/107731
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25386}
2018-10-26 12:24:41 +00:00
Niels Möller
7d76a31f3d Use MediaTransportInterface, for audio streams.
Bug: webrtc:9719
Change-Id: I6d3db66b781173b207de51d84193fbd34a7f3239
Reviewed-on: https://webrtc-review.googlesource.com/c/104642
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25385}
2018-10-26 11:40:57 +00:00
Jonathan Yu
327b7535f9 Split out a separate target for VP8EncoderSimulcastProxy
This will allow downstream projects to use it to construct their own
injected codecs without pulling in dependencies on software codecs that
they don't need.

TBR=shampson@webrtc.org

Bug: webrtc:7925
Change-Id: Ie5c246bbf8e2ef1b27562887f717af9e719a1edf
Reviewed-on: https://webrtc-review.googlesource.com/c/107698
Commit-Queue: Jonathan Yu <yujo@chromium.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25379}
2018-10-25 21:44:15 +00:00
Benjamin Wright
8c27ccac75 Promotoing webrtc::CryptoOptions to RTCConfiguration.
With the expanding use cases for webrtc::CryptoOptions it makes more sense for
it to be be available per peer connection instead of only as a factory option.

To support backwards compatability for now this code will support the factory
method of setting crypto options by default. However it will completely
overwrite these settings if an RTCConfiguration.crypto_options is provided.

Got LGTM offline from Sami, adding him to TBR if he has any further comments.

TBR=sakal@webrtc.org

Bug: webrtc:9891
Change-Id: I86914cab69284ad82afd7285fd84ec5f4f2c4986
Reviewed-on: https://webrtc-review.googlesource.com/c/107029
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25375}
2018-10-25 17:59:48 +00:00
Benjamin Wright
78410ad413 Fixes use after free error when setting a new FrameEncryptor on ChannelSend.
This change corrects a potential race condition when updating a FrameEncryptor
for the audio send channel. If a FrameEncryptor is set on an active audio
stream it is possible for the current FrameEncryptor attached to the audio channel to be  deallocated due to
the FrameEncryptors reference count reaching zero before the new FrameEncryptor is set on the
channel.

To address this issue the ChannelSend is now holds a scoped_reftptr<FrameEncryptor>
to only allow deallocation when it is actually set on the encoder queue.

ChannelSend is unique in this respect as the Audio Receiver a long with the
Video Sender and Video Receiver streams all recreate themselves when they have
a configuration change. ChannelSend instead reconfigures itself using the
existing channel object.

Added Seth as TBR as this only introduces mocks.

TBR=shampson@webrtc.org

Bug: webrtc:9907
Change-Id: Ibf391dc9cecdbed1874e0252ff5c2cb92a5c64f4
Reviewed-on: https://webrtc-review.googlesource.com/c/107664
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25374}
2018-10-25 17:36:57 +00:00
Niels Möller
039743e066 Reland "Delete CodecNamesEq, replaced with absl::EqualsIgnoreCase"
This is a reland of 80cd25bcfb

Original change's description:
> Delete CodecNamesEq, replaced with absl::EqualsIgnoreCase
>
> Bug: None
> Change-Id: I225fe1e16a3c96e5a03e3ae8fe975f368be7e6ad
> Reviewed-on: https://webrtc-review.googlesource.com/c/107303
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25312}

Tbr: kwiberg@webrtc.org
Bug: None
Change-Id: Id43a93bada9d6d66a4d0f0286f583066156aa2fc
Reviewed-on: https://webrtc-review.googlesource.com/c/107716
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25368}
2018-10-25 14:13:44 +00:00
Danil Chapovalov
ddc84e9819 Publish function_video_(en|de)coder_factory into api
Bug: None
Change-Id: Ibdae580c085cfc4b063fdc7f1edb8312de438722
Reviewed-on: https://webrtc-review.googlesource.com/c/107705
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@{#25360}
2018-10-25 12:15:43 +00:00
Johannes Kron
23524ced41 Add HDR metadata struct
Bug: webrtc:8651
Change-Id: Ie7e263e945eedb47776e36e2e817991977e6ef6d
Reviewed-on: https://webrtc-review.googlesource.com/c/107709
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25359}
2018-10-25 12:04:37 +00:00
Mirko Bonadei
977b46a59b Export symbols needed by the Chromium component build (part 7).
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: I1081af5ecf7ba55a7415e09e45357b783cf300aa
Reviewed-on: https://webrtc-review.googlesource.com/c/107708
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25358}
2018-10-25 11:41:16 +00:00
Per Åhgren
370bae466c APM: Adding more explicit handling of failures in the json config data
This CL creates a new API for the parser of APM json config that
that provides an explicit way for the user to know when there has
been an issue in the parsing of the json config data.

Bug: webrtc:9921
Change-Id: Idd8f40529f40ab6871efb5b356c0fd2cea21b7d9
Reviewed-on: https://webrtc-review.googlesource.com/c/107841
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25355}
2018-10-25 10:31:54 +00:00
Erik Språng
e2fd86a79c Move encoder metadata into EncoderInfo struct.
This deprecates the following methods in VideoEncoder:
  virtual ScalingSettings GetScalingSettings() const;
  virtual bool SupportsNativeHandle() const;
  virtual const char* ImplementationName() const;

Though they are not marked RTC_DEPRECATED since we still want to call
them from within the default GetEncoderInfo() until downstream
projects have been updated.

Furthmore, implementation name is changed from const char* to
std:string, which prevents some lifetime issues with dynamic encoder
names, and CodecSpecificInfo.codec_name is removed in favor of getting
the implementation name via GetEncoderInfo().

This CL removes calls to these deprecated methods, follow-ups will also
remove implementations of the methods and replace them with new
GetEncoderInfo() substitutions.

Bug: webrtc:9890
Change-Id: I6fd6e531480c0b952f53dbd5105e0b0adc3e3b0c
Reviewed-on: https://webrtc-review.googlesource.com/c/106905
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25351}
2018-10-25 08:51:53 +00:00
Mirko Bonadei
583d6d9d4f Add missing directory to api/DEPS and PRESUBMIT.py.
TBR: kwiberg@webrtc.org
Bug: webrtc:9887
Change-Id: Ib285005fc2a25549e72922bc38b05a170c6ef228
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/c/107707
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#25342}
2018-10-24 14:03:04 +00:00
Artem Titov
62ae178357 Remove deprecated pipe field from VideoQualityTestFixtureInterface::Params
To be landed after 23th October

Bug: webrtc:9630
Change-Id: I8de460d093438c8b72bca44cdfce49b72cbcc2d0
Reviewed-on: https://webrtc-review.googlesource.com/c/104481
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25341}
2018-10-24 13:21:28 +00:00
Artem Titov
e943d43926 Remove deprecated DefaultNetworkSimulationConfig
To be landed after 23th October

Bug: webrtc:9630
Change-Id: Ie322fe5428824b29ad51edaaa446121c5511b9ff
Reviewed-on: https://webrtc-review.googlesource.com/c/104600
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25339}
2018-10-24 12:57:31 +00:00
Mirko Bonadei
a418e67c53 Use checkdeps to ensure API headers don't include internal headers.
This CL updates the checkdeps configuration for the api/ folder in
order to explicitly avoid to #include non API headers from API headers.

In order to force a careful review of potential exceptions to this
rule, the CL also adds mbonadei@ and kwiberg@ as OWNERS of api/DEPS.

Bug: webrtc:9887
Change-Id: I0ada6f1020186b2782c7d060af36079c452ba1aa
Reviewed-on: https://webrtc-review.googlesource.com/c/106800
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@{#25338}
2018-10-24 12:55:01 +00:00
Artem Titov
ec9b77bc42 Remove deprecated API: NetwrokSimulationInterface.
To be landed after 23th October

Bug: webrtc:9630
Change-Id: Ibf9c09d16e86789284491b16812ce57a3cad0624
Reviewed-on: https://webrtc-review.googlesource.com/c/104061
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25337}
2018-10-24 12:52:51 +00:00
Per Åhgren
fb5c1eca30 AEC3: Included missing parsing of config parameter
Bug: webrtc:9912,chromium:898462
Change-Id: I8efb60367964d3880ba15ffd18349abd288d7307
Reviewed-on: https://webrtc-review.googlesource.com/c/107654
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25332}
2018-10-24 11:38:40 +00:00
Per Åhgren
700b4a4e65 AEC3: Allow limiting dominant nearend to the non-initial phase
This CL allows control over the dominant nearend functionality so that
it is not active during the initial phase, when estimates are less
certain.

Bug: webrtc:9906,chromium:898273
Change-Id: I5f61dac806ec3b1ebc1a3ec72f0a16d07a67f14a
Reviewed-on: https://webrtc-review.googlesource.com/c/107632
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25326}
2018-10-24 07:15:49 +00:00
Sam Zackrisson
877dc89f92 Fix errors in AEC3 JSON parsing
Some issues were surfaced during testing:
 - Config validation clamping silently passed NaNs
 - Config validation only fixed the first out-of-bounds parameter, and
   not any subsequent ones
 - Config validation did not check all values in the config
 - use_stationarity_properties_at_init is misspelled in JSON parsing

These changes are identical to those in this CL:
https://webrtc-review.googlesource.com/c/src/+/107120

Bug: webrtc:9535
Change-Id: I36c5e7c69ffdc2c0c24a9be86ccb1df59683c0fe
Reviewed-on: https://webrtc-review.googlesource.com/c/107640
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25318}
2018-10-23 13:29:07 +00:00
Oleh Prypin
6e8e2993dd Revert "Delete CodecNamesEq, replaced with absl::EqualsIgnoreCase"
This reverts commit 80cd25bcfb.

Reason for revert: Breaks downstream project

Original change's description:
> Delete CodecNamesEq, replaced with absl::EqualsIgnoreCase
>
> Bug: None
> Change-Id: I225fe1e16a3c96e5a03e3ae8fe975f368be7e6ad
> Reviewed-on: https://webrtc-review.googlesource.com/c/107303
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25312}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

No-Try: true
Bug: None
Change-Id: I77b66bc032e2d95d1bd408c6cdeceb4dcd511699
Reviewed-on: https://webrtc-review.googlesource.com/c/107643
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25317}
2018-10-23 13:21:27 +00:00
Sam Zackrisson
848273aa6a Revert "Increase coverage of AEC3 JSON config unit tests, fix bugs"
This reverts commit 8ee06a7b0c.

Reason for revert: ubsan triggers on config randomization

Original change's description:
> Increase coverage of AEC3 JSON config unit tests, fix bugs
> 
> The new test checks that json strings are unchanged when parsing to a
> config and back to a string. This ensures that everything in the json
> representations is parsed when created a config from the json.
> 
> This CL also adds the render_levels config substruct to the JSON parser.
> 
> Some issues were surfaced by the new test:
>  - Config validation clamping silently passed NaNs
>  - Config validation only fixed the first out-of-bounds parameter, and
>    not any subsequent ones
>  - Config validation did not check all values in the config
> 
> Bug: webrtc:9535
> Change-Id: Ie7b588731dc1fe26ba71d1eb2f177f3b3b8139e3
> Reviewed-on: https://webrtc-review.googlesource.com/c/107120
> Commit-Queue: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25310}

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

Change-Id: I12d4a6e35110241c51c13eff547ee5a640d141bc
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9535
Reviewed-on: https://webrtc-review.googlesource.com/c/107624
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25313}
2018-10-23 12:14:08 +00:00
Niels Möller
80cd25bcfb Delete CodecNamesEq, replaced with absl::EqualsIgnoreCase
Bug: None
Change-Id: I225fe1e16a3c96e5a03e3ae8fe975f368be7e6ad
Reviewed-on: https://webrtc-review.googlesource.com/c/107303
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25312}
2018-10-23 12:13:02 +00:00
Yves Gerey
988cc0870b [Cleanup] Add missing #include. Remove useless ones.
This CL is the result of running include-what-you-use tool on part
of the code base (audio target and dependencies) plus manual fixes.

bug: webrtc:8311
Change-Id: I277d281ce943c3ecc1bd45fd8d83055931743604
Reviewed-on: https://webrtc-review.googlesource.com/c/106280
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25311}
2018-10-23 11:32:56 +00:00
Sam Zackrisson
8ee06a7b0c Increase coverage of AEC3 JSON config unit tests, fix bugs
The new test checks that json strings are unchanged when parsing to a
config and back to a string. This ensures that everything in the json
representations is parsed when created a config from the json.

This CL also adds the render_levels config substruct to the JSON parser.

Some issues were surfaced by the new test:
 - Config validation clamping silently passed NaNs
 - Config validation only fixed the first out-of-bounds parameter, and
   not any subsequent ones
 - Config validation did not check all values in the config

Bug: webrtc:9535
Change-Id: Ie7b588731dc1fe26ba71d1eb2f177f3b3b8139e3
Reviewed-on: https://webrtc-review.googlesource.com/c/107120
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25310}
2018-10-23 11:08:54 +00:00
Niels Möller
2edab4c026 Delete use of STR_CASE_CMP, replaced with absl::EqualsIgnoreCase.
Bug: webrtc:5876
Change-Id: Ica2d47ca45b8ef01a548d8dbe31dbed740a0ebda
Reviewed-on: https://webrtc-review.googlesource.com/c/106820
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25306}
2018-10-23 09:24:15 +00:00
Per Åhgren
01cf44d397 AEC3: Adding missing elements to the json parser
Bug: webrtc:9894
Change-Id: I10c23c5df5b262cfb07fc89715e12bc99fc7be3f
Reviewed-on: https://webrtc-review.googlesource.com/c/107201
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25305}
2018-10-23 09:23:11 +00:00
Gustaf Ullberg
c9f9b8711f AEC3: Improve dominant nearend detection
This change makes the dominant nearend detection more accurate.
- The hangover is increased not leave nearend state between words.
- The SNR requirement is increased to not enter nearend state without
  speech activity.
- An early exit mechanism has been added to leave nearend state quickly
  when the echo is strong.

Bug: chromium:897701,webrtc:9897
Change-Id: I9e0f3e6ecb80eee1c0c917d4835f110555f74acf
Reviewed-on: https://webrtc-review.googlesource.com/c/107347
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25299}
2018-10-23 07:05:46 +00:00
Mirko Bonadei
ac19414512 Export symbols needed by the Chromium component build (part 6).
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: I67a4d016a11deca5ac5459826741dd2d3f7931d5
Reviewed-on: https://webrtc-review.googlesource.com/c/107400
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25298}
2018-10-23 06:48:51 +00:00
Jonas Olsson
635474e3d5 Compute RTCConnectionState and RTCIceConnectionState.
Compute these states in jseptransportController and store them. Eventually they should be passed on to the peer connection observer and exposed in the blink layer.

Bug: webrtc:9308
Change-Id: Ifdec39c24a607fcb8211c4acf6b9704eaff371b1
Reviewed-on: https://webrtc-review.googlesource.com/c/103506
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25288}
2018-10-22 11:33:17 +00:00
Karl Wiberg
e482ff8f70 Audio codecs API: Remove some weasel words in the docs
These things are no longer brand new, so it makes even less sense
than it once did to warn users that they may change at any time.

Bug: none
Change-Id: I43a6915d9e00fbfef30fdb89869873b129297c8d
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/106980
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25283}
2018-10-22 08:52:15 +00:00
Tim Haloun
648d28ad62 Media engine and channel support for per-channel dscp values, specified by RtpParameter
- Similar to network priority
 - Still requires MediaConfig.enable_dscp = true (i.e. googDscp == true to peerconnection)
 - Needs followups 1) Specify value in chrome renderer js idl 2) disable audio bwe when value differs from video  3)remove googDscp guard

Bug: webrtc:5008
Change-Id: Ibdcbb1183f0ca2ae85e3bced6d0aedbccae3ced4
Reviewed-on: https://webrtc-review.googlesource.com/c/93560
Commit-Queue: Tim Haloun <thaloun@chromium.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25280}
2018-10-19 21:47:55 +00:00
Niels Möller
3c7d599750 Replace _stricmp with absl::EqualsIgnoreCase
All uses check only for equality.

Bug: webrtc:6424
Change-Id: I8755dde02370c89dbc2226bb703664c9e4f88bdb
Reviewed-on: https://webrtc-review.googlesource.com/c/106383
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25274}
2018-10-19 14:17:31 +00:00
Mirko Bonadei
1ddc5b63cc Export symbols needed by the Chromium component build (part 5).
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: I452117a8385bb08f86c4863bb1079d3774a16a0d
Reviewed-on: https://webrtc-review.googlesource.com/c/107042
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25268}
2018-10-19 09:16:07 +00:00
Mirko Bonadei
bc6a06c058 Adding missing #include on absl/memory/memory.h.
These two files were using absl::make_unique without #including the
header that declares it.

Bug: None
Change-Id: I03019c9a7e06370631680b474d04dd33716b0fe3
Reviewed-on: https://webrtc-review.googlesource.com/c/107041
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25266}
2018-10-19 09:14:01 +00:00
Anton Sukhanov
98a462cead Reland "Reland "Propagate media transport to media channel.""
This is a reland of da65ed2adc

Original change's description:
> Reland "Propagate media transport to media channel."
>
> This reverts commit 37cf2455a4.
>
> Reason for revert: <INSERT REASONING HERE>
>
> Original change's description:
> > Revert "Propagate media transport to media channel."
> >
> > This reverts commit 8c16f745ab.
> >
> > Reason for revert: Breaks downstream project
> >
> > Original change's description:
> > > Propagate media transport to media channel.
> > >
> > > 1. Pass media transport factory to JSEP transport controller.
> > > 2. Pass media transport to voice media channel.
> > > 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> > >
> > > Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> > > Bug: webrtc:9719
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > > Reviewed-by: Peter Slatala <psla@webrtc.org>
> > > Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> > > Cr-Commit-Position: refs/heads/master@{#25152}
> >
> > TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com
> >
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> >
> > Bug: webrtc:9719
> > Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
> > Reviewed-on: https://webrtc-review.googlesource.com/c/105840
> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> > Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#25154}
>
> TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com
>
> Change-Id: I505ff3451eae81573531faef155ff35d7f894022
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9719
> Reviewed-on: https://webrtc-review.googlesource.com/c/106500
> Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
> Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25220}

Bug: webrtc:9719
Tbr: Steve Anton <steveanton@webrtc.org>
Tbr: Niels Moller <nisse@webrtc.org>
Change-Id: Ib45691ba8be9abb89ff8c6dac1861bdf59be4c8d
Reviewed-on: https://webrtc-review.googlesource.com/c/106561
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25240}
2018-10-17 20:54:06 +00:00
Benjamin Wright
bfb444ce2c Adds new CryptoOption crypto_options.frame.require_frame_encryption.
This change adds a new subcategory to the public native webrtc::CryptoOptions
structure: webrtc::CryptoOptions::Frame.

This new structure has a single off by default property:
crypto_options.frame.require_frame_encryption.

This new flag if set prevents RtpSenders from sending outgoing payloads unless
a frame_encryptor_ is attached and prevents RtpReceivers from receiving
incoming payloads unless a frame_decryptor_ is attached.

This option is important to enforce no unencrypted data can ever leave the
device or be received.

I have also attached bindings for Java and Objective-C.

I have implemented this functionality for E2EE audio but not E2EE video
since the changes are still in review.

Bug: webrtc:9681
Change-Id: Ie184711190e0cdf5ac781f69e9489ceec904736f
Reviewed-on: https://webrtc-review.googlesource.com/c/105540
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25238}
2018-10-17 17:44:19 +00:00
Oleh Prypin
9accc9f12b Revert "Reland "Propagate media transport to media channel.""
This reverts commit da65ed2adc.

Reason for revert: Breaks downstream project

Original change's description:
> Reland "Propagate media transport to media channel."
> 
> This reverts commit 37cf2455a4.
> 
> Reason for revert: <INSERT REASONING HERE>
> 
> Original change's description:
> > Revert "Propagate media transport to media channel."
> > 
> > This reverts commit 8c16f745ab.
> > 
> > Reason for revert: Breaks downstream project
> > 
> > Original change's description:
> > > Propagate media transport to media channel.
> > > 
> > > 1. Pass media transport factory to JSEP transport controller.
> > > 2. Pass media transport to voice media channel.
> > > 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> > > 
> > > Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> > > Bug: webrtc:9719
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> > > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > > Reviewed-by: Peter Slatala <psla@webrtc.org>
> > > Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> > > Cr-Commit-Position: refs/heads/master@{#25152}
> > 
> > TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com
> > 
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> > 
> > Bug: webrtc:9719
> > Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
> > Reviewed-on: https://webrtc-review.googlesource.com/c/105840
> > Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> > Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#25154}
> 
> TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com
> 
> Change-Id: I505ff3451eae81573531faef155ff35d7f894022
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9719
> Reviewed-on: https://webrtc-review.googlesource.com/c/106500
> Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
> Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25220}

TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com

Change-Id: I284bab7230e931cda9ee65cb780a8e7d46fa9072
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/106520
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25223}
2018-10-16 18:49:39 +00:00
Anton Sukhanov
da65ed2adc Reland "Propagate media transport to media channel."
This reverts commit 37cf2455a4.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Propagate media transport to media channel."
> 
> This reverts commit 8c16f745ab.
> 
> Reason for revert: Breaks downstream project
> 
> Original change's description:
> > Propagate media transport to media channel.
> > 
> > 1. Pass media transport factory to JSEP transport controller.
> > 2. Pass media transport to voice media channel.
> > 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> > 
> > Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> > Bug: webrtc:9719
> > Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> > Reviewed-by: Steve Anton <steveanton@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Peter Slatala <psla@webrtc.org>
> > Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> > Cr-Commit-Position: refs/heads/master@{#25152}
> 
> TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: webrtc:9719
> Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
> Reviewed-on: https://webrtc-review.googlesource.com/c/105840
> Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
> Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25154}

TBR=steveanton@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,sukhanov@webrtc.org,psla@webrtc.org,sukhanov@google.com

Change-Id: I505ff3451eae81573531faef155ff35d7f894022
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/106500
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25220}
2018-10-16 18:22:44 +00:00
Mirko Bonadei
276827cbdb Export symbols needed by the Chromium component build (part 3).
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).

Bug: webrtc:9419
Change-Id: I4d4e2ae52ee01de68147fd0f2cfe4c92d600ad94
Reviewed-on: https://webrtc-review.googlesource.com/c/106343
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25207}
2018-10-16 12:57:04 +00:00
Sebastian Jansson
0753675a3e Using more specific dependencies in rtc_base.
Bug: webrtc:9718, webrtc:9838
Change-Id: I604c8fea574aabb795da7d5bba3ea751f87acb4c
Reviewed-on: https://webrtc-review.googlesource.com/c/106300
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25206}
2018-10-16 12:00:09 +00:00
Rasmus Brandt
2d0c68744c Remove |hw_encoder| and |hw_decoder| from VideoCodecTestFixture::Config.
Only used for output filename nowadays. Previously, it was used for
selecting the codec implementation. That is now done by injecting
the appropriate codec factory.

Bug: webrtc:9317
Change-Id: Ia2bf28f7df165fb65410ecd1f5d646ee6604e1be
Reviewed-on: https://webrtc-review.googlesource.com/c/106023
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25204}
2018-10-16 10:59:23 +00:00
Sam Zackrisson
be65d4886a Remove AECM comfort noise setting from API
The internal functionality has already been disabled.
The default - no comfort noise - is now the only option.

Bug: webrtc:9535
Change-Id: Idcf233625857c0120c7b355048e24ef3124196c1
Reviewed-on: https://webrtc-review.googlesource.com/c/102560
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25199}
2018-10-16 09:42:16 +00:00
Niels Möller
2e47f7c4ee Implement test class LoopbackMediaTransport
Bug: webrtc:9719
Change-Id: I82aa962d1cb8f2c8f56f766cb12562690e595045
Reviewed-on: https://webrtc-review.googlesource.com/c/105661
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25196}
2018-10-16 09:21:28 +00:00
tzik
f0e926fbdd Add missing #include and deps to absl/memory
These files uses absl::WrapUnique or absl::make_unique without including
absl/memory/memory.h. They used to include it indirectly via some other
headers, but in C++17 mode, we need to include it explicitly.

Bug: chromium:752720
Change-Id: Ic9a85a4844a71f8b8786c071f18d5b9cc301c26b
Reviewed-on: https://webrtc-review.googlesource.com/c/105880
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#25192}
2018-10-16 04:13:49 +00:00
Mirko Bonadei
3b56ee73a3 Export symbols needed by the Chromium component build (part 2).
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).

Bug: webrtc:9419
Change-Id: I6f27003001548ea9d54412fdf62d5dd7a39cfd46
Reviewed-on: https://webrtc-review.googlesource.com/c/106022
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25187}
2018-10-15 19:52:31 +00:00
Erik Språng
c84cd950b7 Move MockVideoDecoder to api/test.
Move MockVideoDecoder from
modules/video_coding/include/mock/mock_video_codec_interface.h
to
api/test/mock_video_decoder.h

The mock encoder has already moved:
https://webrtc-review.googlesource.com/c/src/+/105620

Keeping the old header until downstream projects have been updated.

Bug: webrtc:9722
Change-Id: I4bc849173a04813064212f17761876695ca3fed4
Reviewed-on: https://webrtc-review.googlesource.com/c/105900
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25170}
2018-10-15 13:45:27 +00:00
Gustaf Ullberg
11539f0b29 AEC3: Simplify render buffering
This CL simplifies the buffering of render data. Instead of making assumptions
about the worst possible platform, it leverages recent improvements in
the delay estimator to quickly adapt when the conditions change.

Pros:
- No capture delay, delay is found ~200 ms faster.
- Cleaner code that makes the concept of delay more clear.
- Allows for removal of one matched filter because of the jitter headroom
removal.

Cons:
- Delay estimator needs to re-adapt when the call jitter increases.

The code can be deactivated by a kill switch. When the kill switch is
pulled the CL is bit exact.

Bug: webrtc:9726,chromium:895338
Change-Id: Ie2f9c8c5ce5b5a4510b4bdb95db2b970b57cd5d0
Reviewed-on: https://webrtc-review.googlesource.com/c/96920
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25169}
2018-10-15 13:31:50 +00:00
Oleh Prypin
37cf2455a4 Revert "Propagate media transport to media channel."
This reverts commit 8c16f745ab.

Reason for revert: Breaks downstream project

Original change's description:
> Propagate media transport to media channel.
> 
> 1. Pass media transport factory to JSEP transport controller.
> 2. Pass media transport to voice media channel.
> 3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.
> 
> Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
> Bug: webrtc:9719
> Reviewed-on: https://webrtc-review.googlesource.com/c/105542
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Peter Slatala <psla@webrtc.org>
> Commit-Queue: Anton Sukhanov <sukhanov@google.com>
> Cr-Commit-Position: refs/heads/master@{#25152}

TBR=steveanton@webrtc.org,nisse@webrtc.org,psla@webrtc.org,sukhanov@google.com

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

Bug: webrtc:9719
Change-Id: Ic78cdc142a2145682ad74eac8b72c71c50f0a5c1
Reviewed-on: https://webrtc-review.googlesource.com/c/105840
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25154}
2018-10-14 20:30:25 +00:00
Anton Sukhanov
8c16f745ab Propagate media transport to media channel.
1. Pass media transport factory to JSEP transport controller.
2. Pass media transport to voice media channel.
3. Add basic unit test that make sure if peer connection is created with media transport, it is propagated to voice media channel.

Change-Id: Ie922db78ade0efd893e019cd2b4441a9947a2f71
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/105542
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Anton Sukhanov <sukhanov@google.com>
Cr-Commit-Position: refs/heads/master@{#25152}
2018-10-12 22:48:26 +00:00
Benjamin Wright
5e23a41ef4 Removes backwards compatability CryptoOptions support.
CryptoOptions provided top level optional fields to support Chromium and
internal use cases. These locations have been updated to use the new API and
this CL removes these legacy compatability options.

This CL will be checked in after the chromium CL lands:
https://chromium-review.googlesource.com/c/chromium/src/+/1275025

Bug: webrtc:9860
Change-Id: I2790b42c91c49b83e5380a5271df2ceda556c53f
Reviewed-on: https://webrtc-review.googlesource.com/c/105644
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25148}
2018-10-12 18:22:23 +00:00