The new API stores events gathered by event type. For example, it is
possible to ask fo a list of all incoming RTCP messages or all audio
playout events.
The new API is experimental and may change over next few weeks. Once
it has stabilized and all unit tests and existing tools have been
ported to the new API, the old one will be removed.
This CL also updates the event_log_visualizer tool to use the new
parser API. This is not a funcional change except for:
- Incoming and outgoing audio level are now drawn in two separate plots.
- Incoming and outgoing timstamps are now drawn in two separate plots.
- RTCP count is no longer split into Video and Audio. It also counts
all RTCP packets rather than only specific message types.
- Slight timing difference in sendside BWE simulation due to only
iterating over transport feedbacks and not over all RTCP packets.
This timing changes are not visible in the plots.
Media type for RTCP messages might not be identified correctly by
rtc_event_log2text anymore. On the other hand, assigning a specific
media type to an RTCP packet was a bit hacky to begin with.
Bug: webrtc:8111
Change-Id: I8e7168302beb69b2e163a097a2a142b86dd4a26b
Reviewed-on: https://webrtc-review.googlesource.com/60865
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23015}
Include dropped frames by the encoder in the frame drop percentage.
To react faster at low framerates:
- Use ExpFilter instead of MovingAverage to filter QP values.
- Reduce sampling interval while waiting for minimum number of needed frames (when not in fast rampup mode).
A separate slower ExpFilter is used for upscaling.
Bug: webrtc:9169
Change-Id: If7ff6c3bd4201fda2da67125889838fe96ce7061
Reviewed-on: https://webrtc-review.googlesource.com/70761
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23014}
This brings the implementations in line with the WebRTC
specification.
Bug: chromium:829238
Change-Id: I7ef64e7b6ccf0e9f60f017443565494239ff19cc
Reviewed-on: https://webrtc-review.googlesource.com/71961
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23013}
This converts the reserved bit in VP9 RTP payload descriptor into the
flag which indicates whether current frame can be used for prediction
of next spatial layer or not.
VP9 encoder wrapper sets non_ref_for_inter_layer_pred=false for all
frames for now.
Bug: none
Change-Id: I32f68868686475905fb09173cffd2b6e1bedcb7c
Reviewed-on: https://webrtc-review.googlesource.com/71080
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23010}
This CL removes internal support for anything else than Android frames
that are wrapped Java VideoFrames. This allows for a big internal
cleanup and we can remove the internal class AndroidTextureBuffer and
all logic related to that. Also, the C++ AndroidVideoTrackSource no
longer needs to hold on to a C++ SurfaceTextureHelper and we can
remove all JNI code related to SurfaceTextureHelper. Also, when these
methods are removed, it's possible to let VideoSource implement the
CapturerObserver interface directly and there is no longer any need for
AndroidVideoTrackSourceObserver. Clients can then initialize
VideoCapturers themselves outside the PeerConnectionFactory, and a new
method is added in the PeerConnectionFactory to allow clients to create
standalone VideoSources that can be connected to a VideoCapturer outside
the factory.
Bug: webrtc:9181
Change-Id: Ie292ea9214f382d44dce9120725c62602a646ed8
Reviewed-on: https://webrtc-review.googlesource.com/71666
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23004}
The new ADM code removed some redundancies, which led to a decrease in
log output. This especially affected NS and AEC logs. This change
reintroduces these log messages, making debugging easier. "Acoustic
Echo Canceler" has been changed to AEC for easier grepping.
Some new logging is also added.
Bug: webrtc:7452
Change-Id: I9bfb91895931d73d92f3187c8c7c5b7524ac05ba
Reviewed-on: https://webrtc-review.googlesource.com/71401
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23003}
Switches to MAYBE_ pattern for conditional inclusion of the tests on
most platforms. Disables OneSideSrtpSenderAndReceiver and
FullTwoWayAudioVideoSrtpSendersAndReceivers. Re-enables
SrtpSendersAndReceiversWithMismatchingKeys on other platforms.
Bug: webrtc:9184
Change-Id: Ibbc23d9217c4d8140b9221e47ddffe06a522136a
Reviewed-on: https://webrtc-review.googlesource.com/72005
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23002}
If the packets are ordered by their ack time, their send
time can decrease in the case they have been reordered.
Bug: webrtc:8415
Change-Id: Ic9fca8d47de37b931085aeefcd62bbddd8869db9
Reviewed-on: https://webrtc-review.googlesource.com/72003
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22999}
...continuation of review in https://webrtc-review.googlesource.com/c/src/+/70781
This CL ensures that the FineAudioBuffer can support stereo and also adapts
all classes which uses the FineAudioBuffer.
Note that, this CL does NOT enable stereo on mobile platforms by default. All it does is to ensure
that we *can*. As is, the only functional change is that all clients
will now use a FineAudioBuffer implementation which supports stereo (see
separate unittest).
The FineAudioBuffer constructor has been modified since it is better to
utilize the information provided in the injected AudioDeviceBuffer pointer
instead of forcing the user to supply redundant parameters.
The capacity parameter was also removed since it adds no value now when the
more flexible rtc::BufferT is used.
I have also done local changes (not included in the CL) where I switch
all affected audio backends to stereo and verified that it works in real-time
on all affected platforms (Androiod:OpenSL ES, Android:AAudio and iOS).
Also note that, changes in:
sdk/android/src/jni/audio_device/aaudio_player.cc
sdk/android/src/jni/audio_device/aaudio_recorder.cc
sdk/android/src/jni/audio_device/opensles_player.cc
sdk/android/src/jni/audio_device/opensles_recorder.cc
are simply copies of the changes done under modules/audio_device/android since we currently
have two versions of the ADM for Android.
Bug: webrtc:9172
Change-Id: I1ed3798bd1925381d68f0f9492af921f515b9053
Reviewed-on: https://webrtc-review.googlesource.com/71201
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22998}
This CL overrides the power-based suppressor gain decision with
a coherence based descision for the cases when that indicates a
higher suppressor gain.
Bug: webrtc:9159,chromium:833801
Change-Id: I0e7d82ac1b8c70ffe9d45907559bb14b1b849d71
Reviewed-on: https://webrtc-review.googlesource.com/71660
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22997}
In order to unblock the Chromium Roll into WebRTC this CL tells gclient
to generate build/config/gclient_args.gni with the value of
checkout_android.
Bug: None
Change-Id: Iaca047ab5886545d0c9f3228099d8e8a914842e4
Reviewed-on: https://webrtc-review.googlesource.com/72040
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22996}
This reverts commit 5f2c0cc0adfafa2e99fea900cd60103f8d2018c4.
Reason for revert: "all" is now green.
Original change's description:
> Do not build 'all' on iOS trybots.
>
> It seems iOS trybots are the only ones that build "all". This causes
> problems when using Abseil because some targets in
> //third_party/abseil-cpp fail to build (because they depend on CCTZ).
>
> Bug: webrtc:8821
> Change-Id: I017ecb0527a7e3f3c59f41053fa1878d16cbe4e9
> No-Try: True
> Reviewed-on: https://webrtc-review.googlesource.com/70140
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22890}
TBR=phoglund@webrtc.org,mbonadei@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: webrtc:8821
Change-Id: I49014d4cc74bb84ec85f05e0e678cecf14bf5db0
Reviewed-on: https://webrtc-review.googlesource.com/72002
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22994}
In addition restore call to ConfigureQualityScaler in SetSource, which
is needed if degradation preferences change mid-stream.
Fixes a regressions from https://webrtc-review.googlesource.com/70740,
The encoder's GetScalingSettings may depend on arguments to
InitEncode, so configuring the quality scaler only at encoder creation
time isn't enough.
Bug: webrtc:8830
Change-Id: I48f66cde219c56272f44441fdb26ec64c6002068
Reviewed-on: https://webrtc-review.googlesource.com/72000
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22993}
This CL reduces the delay estimator step size to make it react better in
scenarios where the environment is noisy, or the echo level is fairly
low.
Bug: webrtc:9177,chromium:835281
Change-Id: I482d898c91eddc497e1284ee500d26df21a0574a
Reviewed-on: https://webrtc-review.googlesource.com/71486
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22990}
This CL updates the WebRTC code to stop using the old VideoRenderer and
VideoRenderer.I420Frame classes and instead use the new VideoSink and
VideoFrame classes.
This CL is the first step and the old classes are still left in the code
for now to keep backwards compatibility.
Bug: webrtc:9181
Change-Id: Ib0caa18cbaa2758b7859e850ddcaba003cfb06d6
Reviewed-on: https://webrtc-review.googlesource.com/71662
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22989}
This moves the PostUpdates function from SendSideCongestionController
to the ControlHandler class.
Bug: None
Change-Id: I4000484a1df9d5fae02573196153c24f4f940219
Reviewed-on: https://webrtc-review.googlesource.com/70223
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22987}
Since the webrtc_common build target does not have visibility set, we
cannot easily use BitrateAllocation in other parts of Chromium.
This is currently blocking parts of chromium:794608, and I know of other
usage outside webrtc already, so moving it to api/ should be warranted.
Also, since there's some naming confusion and this class is video
specific rename it VideoBitrateAllocation. This also fits with the
standard interface for producing these: VideoBitrateAllocator.
Bug: chromium:794608
Change-Id: I4c0fae40f9365e860c605a76a4f67ecc9b9cf9fe
Reviewed-on: https://webrtc-review.googlesource.com/70783
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22986}
We only support on (formely kResilientStream) and off (formely
kResilienceOff). The third mode, kResilientFrames, was not
implemented.
Bug: None
Change-Id: Ida82f6a33eda9d943ea70bc8ae4e6bddb720b0e8
Reviewed-on: https://webrtc-review.googlesource.com/71481
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22984}
Splits out audio_java into audio_api_java and
java_audio_device_module_java.
Makes depending on java_audio_device_module_jni optional for clients
that do not use it. It is only necessary to depend on this target if
depending on java_audio_device_module_java.
Also some cleanup.
Bug: webrtc:7452
Change-Id: Ic6c4dbe11db3ed8330802a8e90203acb8ef18e72
Reviewed-on: https://webrtc-review.googlesource.com/70220
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22981}
Only specially taggged targets may transitively depend on poisonous
targets. We first apply it to audio codecs.
This makes it much clearer exactly what parts of the code still have
dependencies on the audio codecs (and we want to eventually get rid of
pretty much all of them).
Bug: webrtc:8396, webrtc:9121
Change-Id: Iba5c2e806c702b5cfe881022674705f647896d43
Reviewed-on: https://webrtc-review.googlesource.com/69520
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22979}
This CL adds an end to end test testing that jumps in receive time are
properly filtered when the receive time correction field trial is enabled.
Bug: webrtc:9054
Change-Id: I1d52594b6559e752c04c997ba56c6a3e20e629cd
Reviewed-on: https://webrtc-review.googlesource.com/64727
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22977}
WebRTC was not able to build the "all" target because
third_party/freetype and third_party/harfbuzz-ng were not correctly
updated by gclient (because of a misconfigured DEPS file).
TBR=phoglund@webrtc.org
Bug: webrtc:9182
Change-Id: Ie5adc39431a31de2dfda0c91a18b9b8c8bee9eb5
Reviewed-on: https://webrtc-review.googlesource.com/71668
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22976}
This fixes misprint in the code which calculates target bitrate of a
VP9 spatial layer where "-" was used instead of "+".
Bug: none
Change-Id: I17d76a84d00e453c055c068968d7b276e9c23f51
Reviewed-on: https://webrtc-review.googlesource.com/71663
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22974}
NetEq was (up until this CL) capable of fading over to generating a
constant background noise when voice expansion had lasted too long.
However, the code has for a really long time only ever used the "off"
mode, which meant that long expansions are faded down to complete
silence (only zeros), i.e., background noise fill was not used.
Removing the other two modes ("on" and "fade") simplifies the code.
Bug: webrtc:9180
Change-Id: Ia2d46960208f3d75c9659ad3f027c52e5ecfb6b0
Reviewed-on: https://webrtc-review.googlesource.com/71485
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22969}
The target modules/audio_coding:isac_neon needs to link with
transform_tables.c but adding a dependency between isac_neon and
isac_fix_c creates a circular dependency.
This CL moves transform_tables.c to isac_fix_common (which is already a
dependency of isac_neon).
Bug: None
Change-Id: I4135ec772b0017e77f1411e9a8093b495220c636
Reviewed-on: https://webrtc-review.googlesource.com/71581
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22968}
Proper header include is missing for this file causing clang to complain about missing prototype for function `WebRtcIsacfix_AllpassFilter2FixDec16Neon`
Bug: None
Change-Id: Idb32e9fab6760a9a56f1db2d43e7c8e2e1fe5359
Reviewed-on: https://webrtc-review.googlesource.com/70370
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22967}