Reason for revert:
Breaks webrtc_perf_tests on Windows, Mac and Linux (that test don't run on trybots):
https://build.chromium.org/p/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/8841/steps/webrtc_perf_tests/logs/stdio
Example:
[ RUN ] FullStackTest.ForemanCifWithoutPacketLossVp9
# Fatal error in ../../webrtc/video/video_quality_test.cc, line 1056
# last system error: 34
# Check failed: !params_.audio.enabled
Original issue's description:
> Separating video settings in VideoQualityTest.
>
> This is a simple refactoring of VideoQualityTest. It will help in adding audio related settings to VideoQualityTest.
>
> BUG=
>
> Committed: https://crrev.com/f07fb0013164bdb031dcc88dc83365a27643b2d9
> Cr-Commit-Position: refs/heads/master@{#14139}
TBR=stefan@webrtc.org,minyue@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review-Url: https://codereview.webrtc.org/2325723002
Cr-Commit-Position: refs/heads/master@{#14142}
This is a simple refactoring of VideoQualityTest. It will help in adding audio related settings to VideoQualityTest.
BUG=
Review-Url: https://codereview.webrtc.org/2312613003
Cr-Commit-Position: refs/heads/master@{#14139}
This CL adds an audio loopback to video_quality_test (only RunWithVideoRenderer)
BUG=
Review-Url: https://codereview.webrtc.org/2136573002
Cr-Commit-Position: refs/heads/master@{#13784}
Also update existing perf tests to use send side bwe.
BUG=webrtc:4604, chromium:522001
Review-Url: https://codereview.webrtc.org/2227733004
Cr-Commit-Position: refs/heads/master@{#13726}
This CL changes the auto-pause logic to suspend a stream based on the
encoder target bitrate instead of the allocated bitrate for a stream,
to account for possible protection, e.g. FEC and NACK.
This CL also adds periodic logging of the current BWE and possibility
to run with suspension in video loopback test.
BUG=webrtc:5868
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/2117493002 .
Cr-Commit-Position: refs/heads/master@{#13360}
They should match the parameters used in the FullStack quality tests, so
that it is easier to visualize what we are actually testing.
BUG=
Review URL: https://codereview.webrtc.org/1871543002
Cr-Commit-Position: refs/heads/master@{#12466}
This is a re-land of https://codereview.webrtc.org/1353263005/
which was reverted because of perf-regressions. Changes since that CL:
* Change LayerFilteringTransport to send a padding packet instead of
dropping it for data that should be filtered out. This prevents
confusion due to changed sequence numbers.
* Changed timing of stats poller thread in VideoAnalyzer. Startup was
racy wrt initializion of send_stream_.
* Minor formatting issues.
PERF NOTE: This change will affect some performance numbers slightly.
In particular, {encode_frame_rate, encode_time_ms,
encode_usage_percent, media_bitrate_bps} will change due to timing
of the measurements.
BUG=
R=pbos@webrtc.orgTBR=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1412233003
Cr-Commit-Position: refs/heads/master@{#10483}
Reason for revert:
Temporarily reverting as this causes some issues with perf tests. Especially tests with packet loss no longer works.
Original issue's description:
> Adding support for simulcast and spatial layers into VideoQualityTest
>
> The CL includes several changes:
> - Adding flags describing the streams and spatial layers.
> - Reorganizing the order of the flags, to make them easier to maintain.
> - Adding a member .params_ to VideoQualityAnalyzer.
> (instead of passing it to every member function manually)
> - Updating VideoAnalyzer to support simulcast.
> (select appropriate ssrc and fix timestamps which are sometimes increased by 1)
> - VP9EncoderImpl already had code for automatic calculation of bitrate for each layer.
> Changing to first read bitrates and resolution ratios from the flags, if specified.
> If not specified, reverting to the old code are setting the values automatically.
> - Changing the parameters in LayerFilteringTransport, replacing
> xx_discard_thresholds with selected_xx, to make it easier to use for the end user.
>
> Committed: https://crrev.com/87f83a9a27d657731ccb54025bc04ccad0da136e
> Cr-Commit-Position: refs/heads/master@{#10215}
TBR=pbos@webrtc.org,mflodman@webrtc.org,ivica@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.webrtc.org/1397363002
Cr-Commit-Position: refs/heads/master@{#10252}
The CL includes several changes:
- Adding flags describing the streams and spatial layers.
- Reorganizing the order of the flags, to make them easier to maintain.
- Adding a member .params_ to VideoQualityAnalyzer.
(instead of passing it to every member function manually)
- Updating VideoAnalyzer to support simulcast.
(select appropriate ssrc and fix timestamps which are sometimes increased by 1)
- VP9EncoderImpl already had code for automatic calculation of bitrate for each layer.
Changing to first read bitrates and resolution ratios from the flags, if specified.
If not specified, reverting to the old code are setting the values automatically.
- Changing the parameters in LayerFilteringTransport, replacing
xx_discard_thresholds with selected_xx, to make it easier to use for the end user.
Review URL: https://codereview.webrtc.org/1353263005
Cr-Commit-Position: refs/heads/master@{#10215}
Refactoring full stack, video and screenshare tests to use the same code basis
for parametrization and initialization. This patch is done on top of recently
commited full stack graphs CL https://codereview.webrtc.org/1289933003/, but
virtually no changes have been made to full_stack_plot.py nor to the VideoAnalyzer
in full stack, except moving it to video_quality_test.cc.
Also, full_stack_samples.cc (build target) was removed and replaced with
-output_filename and -duration cmdline arguments in video_loopback and
screenshare_loopback.
The important things to review:
- video_quality_test.h
Is the structure of Params good? (examples of usage can be found in
full_stack.cc, video_loopback.cc and screenshare_loopback.cc)
- video_quality_test.cc
Is the initialization correct? The case for using Analyzer and using local
renderer are different, can they be further merged?
- webrtc_tests.gypi
Reproducing the different bitrate settings the full stack and loopback tests had
was a little bit tricky. To support both simultaneously, I added BitrateConfig
to the Params struct, as well as separate start_bitrate and target_bitrate flags
for loopback tests.
Note: Side-by-side diff for video_quality_test.cc compares that file directly
with the old full_stack.cc, so changes to VideoAnalyzer are clearly visible.
Note: Recent CL I've committed added -num_temporal_layers and -sl_discard_threshold
args to loopback tests. This was removed here. Support for streams and SVC
will be added in a CL following this one.
Review URL: https://codereview.webrtc.org/1308403003
Cr-Commit-Position: refs/heads/master@{#9969}
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.
Alternative solutions:
* Check if we already have defined e.g. CHECK, and don't define them in that case. This makes us depend on include order in Chromium, which is not acceptable.
* Don't allow using the macros in WebRTC headers. Error prone since if someone adds it there by mistake it may compile fine, but later break if a header in added or order is changed in Chromium. That will be confusing and hard to enforce.
* Ensure that headers that are included by an embedder don't include our macros. This would require some heavy refactoring to be maintainable and enforcable.
* Changes in Chromium for this is obviously not an option.
BUG=chromium:468375
NOTRY=true
Review URL: https://codereview.webrtc.org/1335923002
Cr-Commit-Position: refs/heads/master@{#9964}
Handling the case when encoder drops only the higher layer.
Added options to screenshare loopback test to discard high temporal or spatial layers (to view the lower layers).
Review URL: https://codereview.webrtc.org/1287643002
Cr-Commit-Position: refs/heads/master@{#9883}
This change includes several improvements:
* VP8 configured with new rate control
* Detection of frame dropping, with qp bump for next frame
* Increased target and TL0 bitrates
* Reworked rate control (TL allocation) in screenshare_layers
A note on performance: PSNR and SSIM is expected to get slightly worse with this cl. Frame drops and delays should however improve.
BUG=4171
R=pbos@webrtc.org, stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1193513006.
Cr-Commit-Position: refs/heads/master@{#9495}