wrap ids before unwrapping: should be noop for ids arrived from the
network, but avoids DCHECKs for ids arrived from fuzzer.
for vp9 double check number of references doesn't exceed maximum.
for vp8 drop key frames for non-zero temporal id.
for general by seqnum code path do not set last_picture_id_:
it is not used there, but may confuse vp8 codepath.
as a slight speed up avoid copying RTPVideoTypeHeader for vp8 and vp9.
Bug: chromium:1046995, chromium:1047024, chromium:1047095, chromium:1047165, chromium:1047190
Change-Id: I1ab0833d32e2c023cbf5e3cfcc9e74f1c558e44b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168040
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30426}
The upgrade to opus 1.3 is easier to carry out while the opus
bitexactness tests are temporarily disabled.
Bug: webrtc:11325
Change-Id: I96eecdbc93a01da88b92ae7f6473034c9795f3a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167726
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30425}
This ensures that overhead calculation is correct by default when
enabling the WebRTC-SendSideBwe-WithOverhead field trial.
We keep the legacy mode to allow downstream projects already relying on
WebRTC-SendSideBwe-WithOverhead to preserve the current behavior.
Bug: webrtc:6762
Change-Id: I84369c760d59345a48ec352997dbed6d2db21d13
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167862
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30424}
This CL adds support for reading and writing floating point
wav files in WebRTC. It also updates the former wav handling
code as well as adds some simplifications.
Beyond this, the CL also adds support in the APM data_dumper
and in the audioproc_f tool for using the floating point wav
format.
Bug: webrtc:11307
Change-Id: I2ea33fd12f590b6031ac85f75708f6cc88a266b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/162902
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@{#30423}
This is a reland of 086055d0fd9b9b9efe8bcf85884324a019e9bd33
ANA was accitendly disabled even when transport sequence numbers were
negotiated due to a bug in how the audio send stream is configured. To
solve this we simply continue to always allow enabling ANA and leave it
up to the application to ensure that it's not used together with receive
side estimation.
Original change's description:
> Reland "Only include overhead if using send side bandwidth estimation."
>
> This is a reland of 8c79c6e1af354c526497082c79ccbe12af03a33e
>
> Original change's description:
> > Only include overhead if using send side bandwidth estimation.
> >
> > Bug: webrtc:11298
> > Change-Id: Ia2daf690461b55d394c1b964d6a7977a98be8be2
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166820
> > Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> > Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> > Reviewed-by: Ali Tofigh <alito@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#30382}
>
> Bug: webrtc:11298
> Change-Id: I33205e869a8ae27c15ffe991f6d985973ed6d15a
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167524
> Reviewed-by: Ali Tofigh <alito@webrtc.org>
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30390}
Bug: webrtc:11298
Change-Id: If2ad91e17ebfc85dc51edcd9607996e18c5d1f13
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167883
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30413}
Chromting is trying vp9 444 to have better color. This fix is needed to decode 444 properly.
Bug: webrtc:11326
Change-Id: I4498930591d8876af9f6b7238a8c9fe450ecbfcc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166220
Commit-Queue: Jerome Jiang <jianj@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30410}
To allow to use the RtpFrameReferenceFinder with
an updated version of the frame descriptor extension
Bug: webrtc:10342
Change-Id: Ib60a505a714993862a008300aa64d0bb835c3377
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167361
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30407}
This allows for the possiblity to move the QualityScaler
out of the VideoStreamEncoder in the future.
Bug: webrtc:11222
Change-Id: I1d563cf08791e27ff5065ce90bcb150a7974d868
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167534
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@{#30406}
To free up RtpVideoHeader::generic field for codec agnostic details
from an rtp header extension.
Bug: webrtc:10342
Change-Id: I7b9d869b2ecfedb96dfd860be47ed8dffa058749
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166175
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30396}
This CL adds the missing support for multi-channel in the code that
provides an optional and configurable delay to be added to the
microphone signal.
The CL also makes the creation of the delay object conditional on the
need for that support (this is important since this adds a significant
heap memory footprint)
Bug: webrtc:11314,chromium:1045910
Change-Id: I92d577e31af830945fe9d5ca2032000aad4266be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167525
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30392}
DesktopAndCursorComposer adds the cursor image to the desktop, but does
not change the updated_region, so it generally doesn't encode correctly
unless the mouse is moving over a region that is changing. This CL
extends the updated region to include the union of the old and new
cursor rects, with an optimization for the case where the cursor has
neither moved nor changed.
Bug: chromium:1043325
Change-Id: I52076c96528820833fda6aa95f5b1fbc0f613909
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166545
Reviewed-by: Sergey Ulanov <sergeyu@google.com>
Commit-Queue: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#30374}
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}
This CL reduces the complexity of the Subtractor.ConvergenceMultiChannel
test by
1. Slightly reducing the amount of tested combinations for the non-debug
mode.
2. Drastically reduce the amount of tested combinations for the debug
mode.
Bug: webrtc:11295
Change-Id: I56bfa4a1463d26e5217b6a4d7f2ef54de7aab512
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166529
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30343}
`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}
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}
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}
to allow writing DependencyDescriptor value that is not copiable.
and avoid copying RtpGenericFrameDescriptor
Bug: webrtc:10342
Change-Id: I6eefa9d06b90d7e858f224443ba6769975b556fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166171
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30322}
This is a reland of 2a11b2451a4068746fa0c55fa210efd4a15e4423
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}
DesktopAndCursorComposer already handles a null MouseCursorMonitor. This
CL allows that code-path to be utilized by callers that already have a
MouseCursorMonitor, allowing its callbacks to be re-used by this class.
This is more efficient, and works around an apparent X Server deadlock
on Linux if multiple MouseCursorMonitors are simultaneously active.
The intended use-case for this is to allow the host-side cursor to be
composited into the desktop image if mouse-lock is active at the client.
Bug: chromium:1043325
Change-Id: I7e036850dd8c17fe55e57db252392062a847d10f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166581
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#30312}
The only callers or non-trivial implementations of this that I could
find are in remoting/ in Chromium, which I plan on fixing once this
gets rolled.
Bug: chromium:1043325
Change-Id: Id5a33fc09bb066f979876b2a7dcbc3dc5c2d3dd9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166560
Commit-Queue: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#30310}
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}
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}
This is a reland of f3aa6326b8e21f627b9fba72040122723251999b
Original change's description:
> Replace the ExperimentalAgc config with the new config format
>
> This CL replaces the use of the ExperimentalAgc config with
> using the new config format.
>
> Beyond that, some further changes were made to how the analog
> and digital AGCs are initialized/called. While these can be
> made in a separate CL, I believe the code changes becomes more
> clear by bundling those with the replacement of the
> ExperimentalAgc config.
>
> TBR: saza@webrtc.org
> Bug: webrtc:5298
> Change-Id: Ia19940f3abae048541e6716d0184b4caafc7d53e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/163986
> Reviewed-by: Per Åhgren <peah@webrtc.org>
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#30149}
Bug: webrtc:5298
Change-Id: I6db03628ed3fa2ecd36544fe9181dd8244d7e2df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165760
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30295}