Use moving median filters in RemoteNtpTimeEstimator, RtpToNtpEstimator
If Webrtc-ClockEstimation experiment is enabled, median filtering is
applied to results of RtpToNtpEstimator and RemoteNtpEstimator to smooth
out random errors introduced by incorrect RTCP SR reports and networking delays.
Bug: webrtc:8468
Change-Id: I592c4083fefc0dbdebe7b3ff30b92e95ba337595
NOTRY=TRUE
NOPRESUBMIT=TRUE
Change-Id: I592c4083fefc0dbdebe7b3ff30b92e95ba337595
Reviewed-on: https://webrtc-review.googlesource.com/23263
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20708}
If Webrtc-ClockEstimation experiment is enabled, median filtering is
applied to results of RtpToNtpEstimator and RemoteNtpEstimator to smooth
out random errors introduced by incorrect RTCP SR reports and networking
delays.
Bug: webrtc:8468
Change-Id: Iec6d094d2809d1efeb0b9483059167d9a03880da
Reviewed-on: https://webrtc-review.googlesource.com/22682
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20682}
VideoEncoderSoftwareFallbackWrapper is updated to take a VideoEncoder as
argument instead relying on built-in SW codecs. The purpose is to make
VideoEncoderSoftwareFallbackWrapper more modular and not depend on
built-in SW encoders.
Bug: webrtc:7925
Change-Id: I99896f0751cfb77e01efd29c97d3bd07bdb2c7c0
Reviewed-on: https://webrtc-review.googlesource.com/22320
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20671}
In preparation for a new remote clock estimation:
RtpToNtpEstimator will now store unwrapped rtp timestamps in
|measurements| and |calculated| flag is out of |Parameters| struct.
Additional missing |Reset| method added to MovingMedianFilter and
PercentileFilter
Bug: webrtc:8468
Change-Id: I1bb454ba0c93720cbb30bfded19677daaf9f721c
Reviewed-on: https://webrtc-review.googlesource.com/22020
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20669}
Conditional visibility is complex to maintain and it is not well
supported by other build systems.
This CL removes it and falls back on the more relaxed visibility value
("*" in this case).
It is not a problem because the targets that are using conditional
visibility are all marked as "testonly" and this is probably enough to
keep the build graph clean.
Bug: None
Change-Id: I2d2b5ac9a02d08c2863950116db455976ee1459c
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/14902
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20658}
This means we can properly declare the dependency between
libjingle_peerconnection_api and video_frame_api. i420
pulls in system_wrappers, which can't be a dependency of
the public API.
Plan:
1) Land this CL + send out PSA
2) Make all direct users of i420_buffer depend on the
new video_frame_api_i420 target
3) Move i420_buffer.cc to the new target
4) Make libjingle_peerconnection_api depend on
video_frame_api, since it no longer contains i420 code
Bug: webrtc:7504
Change-Id: I30d90f2ac7af53748859bbde8aed92386d5501f9
Reviewed-on: https://webrtc-review.googlesource.com/9382
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@{#20656}
- Add alpha accessors to PlanarYuvBuffer interface, null by defualt.
- Add WrapI420ABuffer() that creates a container which implements these
accessors.
- Show the use via StereoDecoderAdapter.
This CL is the step 2 for adding alpha channel support over the wire in webrtc.
See https://webrtc-review.googlesource.com/c/src/+/7800 for the experimental
CL that gives an idea about how it will come together.
Design Doc: https://goo.gl/sFeSUT
Bug: webrtc:7671
Change-Id: Id5691cde00088ec811b63d89080d33ad2d6e3939
Reviewed-on: https://webrtc-review.googlesource.com/21130
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20635}
This excludes these frames from being counted as dropped by encoder.
Also fix bitrate projected distribution for vp9 svc for outliers
detection.
Bug: webrtc:8497
Change-Id: Id37487456170c61e2323a660668f0c319ea5831d
Reviewed-on: https://webrtc-review.googlesource.com/21223
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20632}
Between patch set 4 and patch set 5 in
https://codereview.webrtc.org/2865113002/, a line consisting of a
single 'std::move(task);' was added. The reason we will never know,
because the author will not tell. The superfluous line would have gone
unnoticed except for occasional raised eyebrows of casual code
readers.
The Visual Studio compiler now sees lines that have no effect. Which
was announced to the world in the tweet
https://twitter.com/StephanTLavavej/status/924011366943354880
achieving 27 likes and 6 retweets.
Bug: webrtc:8463
Change-Id: Iac49bc4153254b6cfe99f609da28eb4f43ff765e
Reviewed-on: https://webrtc-review.googlesource.com/21324
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20616}
as an alternative to NextPacket function
to allow cleaner iterating over stacked rtcp packets.
Bug: webrtc:5565
Change-Id: I261afe2684e5fcb5fa3e7bcce272fbefeebd0b66
Reviewed-on: https://webrtc-review.googlesource.com/21360
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20615}
Without this fix the new estimate would be capped by the old delay-based
estimate. Also revert a part of https://codereview.webrtc.org/2949203002
that only pushes updates from the delay-based estimate if the estimate
change. This is reverted as a safety precaution to prevent situations
where the two estimators get out of sync.
Bug: webrtc:8495
Change-Id: I153f2af4a822e67d47c52bffc97a73ab931a15dd
Reviewed-on: https://webrtc-review.googlesource.com/20981
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20614}
In order to create a clean CL to switch to RTC_ prefixed LOG macros
this CL runs `git cl format --full` on the files with LOG macros in
the following directories:
- modules/audio_device
- modules/media_file
- modules/video_capture
This CL has been automatically generated with:
for m in PLOG \
LOG_TAG \
LOG_GLEM \
LOG_GLE_EX \
LOG_GLE \
LAST_SYSTEM_ERROR \
LOG_ERRNO_EX \
LOG_ERRNO \
LOG_ERR_EX \
LOG_ERR \
LOG_V \
LOG_F \
LOG_T_F \
LOG_E \
LOG_T \
LOG_CHECK_LEVEL_V \
LOG_CHECK_LEVEL \
LOG
do
for d in media_file video_capture audio_device; do
cd modules/$d
git grep -l $m | grep -E "\.(cc|h|m|mm)$" | xargs sed -i "1 s/$/ /"
cd ../..
done
done
git cl format --full
Bug: webrtc:8452
Change-Id: I2858b6928e6bd79957f2e5e0b07028eb68a304b2
Reviewed-on: https://webrtc-review.googlesource.com/21322
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@{#20613}
We want to move away from cricket::WebRtcVideoDecoderFactory and this CL
updates the internal factory. Also, VideoDecoderSoftwareFallbackWrapper
is updated to take a VideoDecoder as argument instead of a factory so it
can be used with external SW decoders.
Bug: webrtc:7925
Change-Id: Ie6dc6c24f8610a2129620c6e2b42e3cebb2ddef7
Reviewed-on: https://webrtc-review.googlesource.com/7301
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20597}
This is a reland of 47836b4ebb8a5c71695b5ec07bffd5ee4e3bc2ff
Internal tests are synced with the fix.
Original change's description:
> Keep spatial_idx=kNoSpatialIdx(255) if there is no layer indices.
>
> spatial_idx is not present in RTP header if there is no temporal or
> spatial layering. But the parser sets spatial_idx to 0 in this case.
> When reflector repacketizes such packets it writes layering indices
> into outgoing packets. When packets arrive to receiver it thinks that
> it deals with multi layer stream and passes it through special path
> in Vp9 reference frame finder which never outputs inter frames.
>
> I modified the parser such that it keeps spatial_idx=kNoSpatialIdx(255)
> when there is no layer indices in RTP header. Related unit tests have
> been modified as well.
>
> Bug: none
> Change-Id: I14498cafb4e57797577dc873298c35b243479f88
> Reviewed-on: https://webrtc-review.googlesource.com/17980
> Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Åsa Persson <asapersson@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20560}
TBR=brandtr@webrtc.org,asapersson@webrtc.org,sprang@webrtc.org
Bug: none
Change-Id: I6087a8b20a926296b30432d69251670120b2a20c
Reviewed-on: https://webrtc-review.googlesource.com/20940
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20591}
An energy value is calculated by summing squares of processed audio
samples. The expression 'out*out >> 6' could overflow. In this CL we
change it to 'out*(out>>6) + out*(out*(out%(1<<6))>>6)'.
The which is verified and proven to be equal, but doesn't
overflow. The change also passes our change-detection tests in
GainControlBitExactnessTest.*
We verified with Godbolt that the modulo and divisions are converted
into branch-free bitwise operations.
NOTRY=True # changing comment, tests just passed.
Bug: chromium:780638, chromium:780376
Change-Id: I415535193433a2fbc275c643fb4e4026ba3e0bdd
Reviewed-on: https://webrtc-review.googlesource.com/20867
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20589}
Added possibility to extract audio_processing VAD annotations in the Quality Assessment tool.
Annotations are extracted into compressed Numpy 'annotations.npz' files.
Annotations contain information about VAD, speech level, speech probabilities etc.
TBR=alessiob@webrtc.org
Bug: webrtc:7494
Change-Id: I0e54bb67132ae4e180f89959b8bca3ea7f259458
Reviewed-on: https://webrtc-review.googlesource.com/17840
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20581}
On Mac OSX system, if retina screen is used, the GetWindowBounds() returns
pre-scaled values instead of system coordinates. So this fix considers
per-monitor scale-factor, and stretchs the DesktopRect.
Bug: chromium:778049
Change-Id: I9dc51e08235eba9b3ef6378eaa15737aa444b0c8
Reviewed-on: https://webrtc-review.googlesource.com/17600
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#20578}