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}
In https://chromium-review.googlesource.com/c/chromium/src/+/750645
Chromium started to use an ErrorProne plugin to discourage synchronized
public methods (an encourage the usage of synchronized blocks).
In order to unblock the Chromium Roll we can suppress these warnings
and decide if we want to align with Chromium on this check or ask
them to make it optional.
More details in the bug.
TBR=magjed@webrtc.org
Bug: webrtc:8491
Change-Id: Ie77a324e54aab44a4f59853959549f1d21f884a0
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/20060
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20569}
This reverts commit 47836b4ebb8a5c71695b5ec07bffd5ee4e3bc2ff.
Reason for revert: This breaks internal tests, reverting to check if they recover.
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,ssilkin@webrtc.org
Change-Id: I67d083cf769974d8df8bd5d70942af97db578db9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: none
Reviewed-on: https://webrtc-review.googlesource.com/20501
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20565}
The old value was 170, but experiments have shown that 70 is better.
This will let the AGC reduce the gain further when input clipping is
detected. The effect should be less clipping, but sometimes slightly
lower signals.
In Chrome, the value 70 has already been used since June (see
https://codereview.chromium.org/2928133002).
Bug: webrtc:6622, chromium:672476
Change-Id: Ie5a60bb875eef71f303b28e096b22a8cd4b449d4
Reviewed-on: https://webrtc-review.googlesource.com/20222
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20563}
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}
Also put Baseline profile in front of Constrained Baseline profile. The
reason is that the HW encoders are mostly BP, and we want this to be the
first codec in the list so that HW is preferred by default.
The H264 tests in chromium needs to be updated again with this change,
which was changed here: https://codereview.chromium.org/2985263002/.
Bug: webrtc:8317
Change-Id: Ief75683962b79b6664143d73b9259729c66ce082
Reviewed-on: https://webrtc-review.googlesource.com/17780
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20554}
The length of the generated comfort noise is measured with a
counter. A bug in the implementation caused the counter to be reset
not only when a new packet was decoded, but also when NetEq asked the
decoder for more comfort noise without giving it a new packet to
decode. This means that the counter was reset once every 20 ms (in the
case of Opus), and it would never match the gap in timestamps that is
the exit criterion for CNG. This would have resulted in perpetual CNG,
but there is a stop-gap in NetEq. If the buffer level exceeds 4 times
the target level, CNG mode is exited anyway. This is what happens at
the end of every silence period.
With this CL, the bug should be fixed. The fix is wrapped in an
experiment, to allow verifying the fix and the impact of it with real
world data.
Bug: webrtc:8488
Change-Id: Idfc24df780eb2c55dbf08de840e6644e8557a0af
Reviewed-on: https://webrtc-review.googlesource.com/18181
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20551}