This unconditionally limits usage of VP9 SVC inter-layer prediction to
frames of key picture.
Ideally we would like to let an application to configure SVC options.
But currently there is no API for this.
Bug: none
Change-Id: I21a84dafc946be122514d5b6bf327b65251f1115
Reviewed-on: https://webrtc-review.googlesource.com/76640
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23224}
Now using attribute to ensure that we avoid error like these when bulding with -Wthread-safety-analysis:
error: mutex '_critSect' is still held at the end of function [-Werror,-Wthread-safety-analysis]
RTC_NO_THREAD_SAFETY_ANALYSIS is an attribute on functions or methods, which turns off thread safety
checking for that method. It provides an escape hatch for functions which are either
(1) deliberately thread-unsafe, or
(2) are thread-safe, but too complicated for the analysis to understand.
Bug: webrtc:9202
Change-Id: Ie332bca7eb7eb535ed965de5ddc42872c4f30602
Reviewed-on: https://webrtc-review.googlesource.com/76562
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23221}
This CL allows to reduce the code required to create fixed-size ArrayView
objects for std::array instances. Instead of passing .data() and .size(),
it is now sufficient to pass the std::array instance. When instancing an
array view with variable size, a different ctor is called.
Bug: webrtc:9076
Change-Id: I4fe133b27cd12827ed0206d40184279fc3a196f5
Reviewed-on: https://webrtc-review.googlesource.com/76160
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23220}
Changed minimum bit rate threshold formula to raise the minimum bit rate
at which 720p video is presented in VP9 SVC to ensure that the video
quality for VP9 SVC is the same or better than VP8 SIM. The minimum bit
rate threshold values for lower resolutions remain largely unchanged.
Also changed maximum bit rate threshold formula to lower the maximum
bit rate for low resolutions (e.g., 180p) in order to ensure higher
frame rates when downlink bit rates are very low (e.g., < 100 kbps).
Bug: webrtc:9242
Change-Id: I8f9c76c9188b98f3fd40a608551b576b0c3b8f34
Reviewed-on: https://webrtc-review.googlesource.com/75244
Commit-Queue: Michael Horowitz <mhoro@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23218}
This should fix our python presubmit tests.
Also make Artem and Patrik own the deps file.
Bug: webrtc:9264
Change-Id: I430c56e0b12c4feac7d7cbf766eea9e304cd9a20
Reviewed-on: https://webrtc-review.googlesource.com/76421
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23217}
The previous effort of building WebRTC without SW codecs stopped when
libjingle_peerconnection was possible to build. In order to make the
group("default") target build, this basically updates a bunch of
tests to explicitly depend on the built-in software video codecs.
Bug: webrtc:7925
Change-Id: I2715414770c197fca01cb8dbde173a21f4434500
Reviewed-on: https://webrtc-review.googlesource.com/70503
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23216}
Mini-change: add 'webrtc' namespace. The template class AudioFrameView
got declared in the global namespace by mistake. (My fault). Now
fixing.
Bug: webrtc:9262.
Change-Id: I6f2b4ab1ccdb223505e7181b8e6f12f5f23b3684
Reviewed-on: https://webrtc-review.googlesource.com/76140
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23215}
It is stored in a text file as a stream of 'r' and 'c' characters - render and capture.
This is the format output by APM with apm_debug_dump on, and it is readable by audioproc_f.
Bug: webrtc:9252
Change-Id: I01e9e104ed7e3fb45e623730343a0c2addc81d1b
Reviewed-on: https://webrtc-review.googlesource.com/75502
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23213}
Previously, constructing a PeerConnection or WebRtcVideoEngine with
fake encoder/decoder factories would result in the real, built-in factories
also being used. In https://webrtc-review.googlesource.com/c/src/+/71162, this
changed, so to temporarily allow tests to continue working exactly the same as
before, the fake factories started encapsulating the real factories. This CL
removes that behavior and updates the tests accordingly.
Bug: webrtc:9228
Change-Id: Ida14a1e3f5f5a0e2f03100b7895b3b1bdf0a0a42
Reviewed-on: https://webrtc-review.googlesource.com/75260
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23209}
This change forks the existing iOS audio device module and audio device
from modules/audio_device/ into sdk/objc/Framework. It also updates
RTCPeerConnectionFactory to use the forked implementation.
The unit tests are re-implemented as XCTests.
(was: https://webrtc-review.googlesource.com/c/src/+/67300)
Bug: webrtc:9120
Change-Id: I07340505137b16c2dd487569ad0112f984557bba
Reviewed-on: https://webrtc-review.googlesource.com/75125
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23208}
Build targets involving files under api/video/ are moved into this
file, from api/BUILD.gn. In addition, drop "_api" part of target
names, and move the header file api/videosinkinterface.h to
api/video/video_sink_interface.h.
Bug: webrtc:9253
Change-Id: I2896d3f063db8dff902bc29738578395b2fcc155
Reviewed-on: https://webrtc-review.googlesource.com/75500
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@{#23207}
This CL defines SpectralFeaturesExtractor which is responsible for
computing the spectral features used as input for the RNN.
Bug: webrtc:9076
Change-Id: I5e1396b89eca9c13bb268e8419a16436a9c3450f
Reviewed-on: https://webrtc-review.googlesource.com/73760
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23206}
GetAdapterTypeFromName determines the adapter type of a network
interface based on the string matching of the interface name. It however
does not have an entry to map the well-known "eth" name to the common
Ethernet type. This introduces subtle bugs when GetAdapterTypeFromName
is used as the only method to determine a network type and Ethernet is
thus identified as an unknown network, which affects the network
filtering and network path selection that rely on the network type.
Bug: webrtc:9235
Change-Id: Ifc3269d191382f3b3a041de1c9755c09994b31b2
Reviewed-on: https://webrtc-review.googlesource.com/74263
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@google.com>
Cr-Commit-Position: refs/heads/master@{#23195}
This removes second reference for frame 3 in GOF predefined for 3
temporal layers since encoder never use that reference.
Bug: webrtc:9245
Change-Id: I6fbdbe7d3c753dda7fbcfcbd05f3530f70f80728
Reviewed-on: https://webrtc-review.googlesource.com/74705
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Marco Paniconi <marpan@google.com>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23193}
The fuzzer is very simple. It only considers the default encoder
configuration at this point.
Bug: chromium:826914
Change-Id: Ifa248a1dba80efb231807750e40082ec5580636a
Reviewed-on: https://webrtc-review.googlesource.com/75261
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23192}
This CL adds robustness to avoid the AEC3 transparent mode to be
incorrectly activated when
-there is strong near-end noise
-there is only low-level nearend activity.
Bug: webrtc:9256,chromium:841193
Change-Id: I26c2759d163914eb85dc3d863da8acbf28cbb88d
Reviewed-on: https://webrtc-review.googlesource.com/75511
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23191}
This CL corrects the usage of the estimated echo path gain to not be
hardcoded to 1. In order to retain the tuned behavior, the CL for now
maintains the former behavior in the code.
Bug: webrtc:9255,chromium:851187
Change-Id: I7f91c72e476680a8a854c22b74b1771fae446110
Reviewed-on: https://webrtc-review.googlesource.com/75510
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23190}
This CL ensures that the external audio buffer delay is correctly used
by removing the applied headroom and avoiding that the delay estimation
feedback fromt the echo remover overrules the external delay
information.
Bug: webrtc:9241,chromium:839860
Change-Id: I53cc78ace34a71994ab24a3b552f29979e2aae78
Reviewed-on: https://webrtc-review.googlesource.com/75513
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23189}
This prepares for allowing injection of a network controller.
Bug: webrtc:9155
Change-Id: I5624f47738db9c5cd4750eac76cb6289e06a7aa3
Reviewed-on: https://webrtc-review.googlesource.com/73100
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23188}
This CL is part of the effort to remove warning suppression flags from
the WebRTC build.
Bug: webrtc:9251
Change-Id: I45ece25e897a14a6d4ce8a90ba59688f8fc6fe32
Reviewed-on: https://webrtc-review.googlesource.com/75503
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23187}
This is useful when someone is just moving code around or when there is
a good reason to use public_deps.
Example of the error message:
** Presubmit ERRORS **
public_deps is discouraged in WebRTC BUILD.gn files because it doesn't
map well to downstream build systems.
Used in: BUILD.gn (line 31).
If you are not adding this code (e.g. you are just moving existing code)
or you have a good reason, you can add a comment on the line that causes
the problem:
public_deps = [ # no-presubmit-check TODO(webrtc:8603)
Bug: webrtc:8603
Change-Id: If2645b6ba60c7cbf5416450cf6e5a8c08bf4934e
Reviewed-on: https://webrtc-review.googlesource.com/75508
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23186}
Before this CL, there would be an out-of-bounds write in the ByteBuffer
copying when a decoded frame had height != sliceHeight.
Bug: webrtc:9194
Change-Id: Ibb80e5555e8f00d9e1fd4cb8a73f5e4ccd5a0b81
Tested: 640x360 loopback with eglContext == null in AppRTCMobile on Pixel.
Reviewed-on: https://webrtc-review.googlesource.com/74120
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23184}
This extends the API surface so that
custom certificates can be provided by an API user in both the standalone and
factory creation paths for the OpenSSLAdapter. Prior to this change the SSL
roots were hardcoded in a header file and directly included into
openssladapter.cc. This forces the 100 kilobytes of certificates to always be
compiled into the library. This is undesirable in certain linking cases where
these certificates can be shared from another binary that already has an
equivalent set of trusted roots hard coded into the binary.
Support for removing the hard coded SSL roots has also been added through a new
build flag. By default the hard coded SSL roots will be included and will be
used if no other trusted root certificates are provided.
The main goal of this CL is to reduce total binary size requirements of WebRTC
by about 100kb in certain applications where adding these certificates is
redundant.
Change-Id: Ifd36d92b5cb32d1b3098a61ddfc244d76df8f30f
Bug: chromium:526260
Change-Id: Ifd36d92b5cb32d1b3098a61ddfc244d76df8f30f
Reviewed-on: https://webrtc-review.googlesource.com/64841
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23180}
A bug surfaced when setting a low max bitrate with
30kbps hard-coded min bitrate value then a DCHECK was hit in the
VideoCodecInitializer, expecting the max bitrate to be higher than the
min bitrate. This change allows the application to set a max bitrate
below 30kbps, and adjusts the min bitrate to the value set for the
max bitrate.
RtpSender: :setParameters. If the value set was lower than the
Bug: webrtc:9141
Change-Id: I9b43ee7814b1a2caba00bc9614fc66d4438d66d8
Reviewed-on: https://webrtc-review.googlesource.com/74641
Commit-Queue: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23179}
This change adds flags and default values for two more RTP header
extensions: VideoContentType and VideoTiming.
This will silence a number of annoying warnings when running with
application logs.
Bug: none
Change-Id: I9bb01ea2519813d3c47553ecff384141fbede23e
Reviewed-on: https://webrtc-review.googlesource.com/75300
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23178}
This workaround allows to decode VP9 SVC streams with partially enabled
inter-layer prediction.
This change won't affect conventional SVC (inter-layer prediction is
enabled for all frames) since spatial index was always zero in this
case.
Bug: webrtc:9249
Change-Id: If6ff26a18b7cf543ec9e7f70b9239e9edff250b5
Reviewed-on: https://webrtc-review.googlesource.com/74924
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23177}