18 Commits

Author SHA1 Message Date
Artem Titov
5983585ee8 Introduce test case name in peer connection e2e test framework.
Introduce test case name for proper metrics reporting across different
parts of framework.

Bug: webrtc:10138
Change-Id: I7c501413ca2f2ee40314d988855dec0c28381c47
Reviewed-on: https://webrtc-review.googlesource.com/c/124740
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26886}
2019-02-28 08:54:33 +00:00
Artem Titov
f5e5f0d643 Reland "Improve example video analyzer for use in debugging"
This is a reland of 1570218ec9fc5d00642a5cf0c1cd8a16260a19a6

Original change's description:
> Improve example video analyzer for use in debugging
> 
> Bug: webrtc:10138
> Change-Id: I40e81179ae6bec83efc57a5723450690c21c3481
> Reviewed-on: https://webrtc-review.googlesource.com/c/124782
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26883}

Bug: webrtc:10138
Change-Id: I9af9a4aa3ac4618fe1343510cd8c555a3e95a56f
Reviewed-on: https://webrtc-review.googlesource.com/c/124823
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26885}
2019-02-28 08:09:50 +00:00
Artem Titov
2585979b1b Revert "Improve example video analyzer for use in debugging"
This reverts commit 1570218ec9fc5d00642a5cf0c1cd8a16260a19a6.

Reason for revert: Speculative revert on tree closing

Original change's description:
> Improve example video analyzer for use in debugging
> 
> Bug: webrtc:10138
> Change-Id: I40e81179ae6bec83efc57a5723450690c21c3481
> Reviewed-on: https://webrtc-review.googlesource.com/c/124782
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26883}

TBR=mbonadei@webrtc.org,titovartem@webrtc.org

Change-Id: I034f689274ceef8a8ea1d26eb5c25e833cf6bdf0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10138
Reviewed-on: https://webrtc-review.googlesource.com/c/124822
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26884}
2019-02-28 00:32:47 +00:00
Artem Titov
1570218ec9 Improve example video analyzer for use in debugging
Bug: webrtc:10138
Change-Id: I40e81179ae6bec83efc57a5723450690c21c3481
Reviewed-on: https://webrtc-review.googlesource.com/c/124782
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26883}
2019-02-27 23:38:22 +00:00
Artem Titov
1a7a4afd13 Fix encoded image data injectors.
In encoded image data injectors use the last bytes of the payload,
instead of the first.

Rewriting first bytes of the video frames payload caused problems
as somewhere first are used to check if the frame is key-frame
and also to parse QP values.

Bug: webrtc:10138
Change-Id: I59b7313ee54a33b31f842ec28ef8d831fe24eea5
Reviewed-on: https://webrtc-review.googlesource.com/c/124490
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26875}
2019-02-27 13:23:23 +00:00
Mirko Bonadei
12ae4f4d50 Introduce possibility to poll stats and notify analyzers.
This CL introduces the possibility to poll the 2 peer connections
at constant intervals.

It also introduces a dummy AudioQualityAnalyzer that will have to
be implemented in a follow-up CL and it moves every type of the
test framework inside the webrtc::test namespace.

Bug: webrtc:10138
Change-Id: I40acf7894bd67ea5229baba2d2cf18cd8ef65e67
Reviewed-on: https://webrtc-review.googlesource.com/c/123441
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26854}
2019-02-26 14:43:31 +00:00
Artem Titov
32232e92f3 Add spatial layers support to video analyze pipeline.
To support analyze of spatial layers we will continue sending them
into the network on encoder side, but will mark which should be then
discarded and which should be processed. On decoder side we will drop
layers, if they should be discarded and decode only parts, that
should be processed.

Bug: webrtc:10138
Change-Id: Ic8b8fe7787674c0ec49b879fcc29e54e8e3d787f
Reviewed-on: https://webrtc-review.googlesource.com/c/123185
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26784}
2019-02-20 22:05:15 +00:00
Artem Titov
6255af99a8 Fix RateCounter to don't fail if there are too small amount of events
Bug: webrtc:10138
Change-Id: Iac26e4948b92810245c16b8c46b4b3e70850505e
Reviewed-on: https://webrtc-review.googlesource.com/c/123193
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26712}
2019-02-15 16:28:05 +00:00
Artem Titov
ceba6ae2a7 Return a copy, becase GetPercentile in SamplesStatsCounter isn't const
Bug: webrtc:10138
Change-Id: I2ec2ce4765e514bfd065f094f5905233e5f4f9cd
Reviewed-on: https://webrtc-review.googlesource.com/c/123043
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26697}
2019-02-15 00:49:58 +00:00
Artem Titov
6b88a8f161 Introduce default video quality analyzer
This implementation won't support spatial layers and simulcast. It will
be added in next CLs.

Bug: webrtc:10138
Change-Id: I08baef36fb15b8d2d2fa222c761d40508de7ff61
Reviewed-on: https://webrtc-review.googlesource.com/c/121944
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26676}
2019-02-14 09:08:31 +00:00
Artem Titov
9f97c9a528 Add starting of VideoQualityAnalyzer in the e2e peer connection level test
Bug: webrtc:10138
Change-Id: Ic762543e21a5b55c7f15856fe752534b910dec8f
Reviewed-on: https://webrtc-review.googlesource.com/c/121941
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26599}
2019-02-08 09:35:27 +00:00
Artem Titov
a1fae4b475 Trying to quiet clang-tidy
Bug: webrtc:10138
Change-Id: Ie7f2449870f93753876bb587e24898a89efc405e
Reviewed-on: https://webrtc-review.googlesource.com/c/120921
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26520}
2019-02-02 21:10:04 +00:00
Mirko Bonadei
05cf6be726 [clang-tidy] Apply performance-move-const-arg fixes.
This CL is a manual spin-off of [1], which tried to apply clang-tidy's
performance-move-const-arg [1] to the WebRTC codebase.

Since there are some wrong fixes to correct, this CL collects all the
fixes that could be landed as is.

[1] - https://webrtc-review.googlesource.com/c/src/+/120350
[2] - https://clang.llvm.org/extra/clang-tidy/checks/performance-move-const-arg.html

Bug: webrtc:10252
Change-Id: Ic4882213556344e65c66e27415e91ff6f89134d7
Reviewed-on: https://webrtc-review.googlesource.com/c/120814
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26515}
2019-02-01 15:02:36 +00:00
Artem Titov
728b5a4033 Fix initialization to prevent SIGSEGV
Bug: webrtc:10138
Change-Id: Ib299d2c5c08c07bbccf475b7e585cdd23830e238
Reviewed-on: https://webrtc-review.googlesource.com/c/119948
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26406}
2019-01-25 14:38:02 +00:00
Artem Titov
f50c6c2fb4 Introduce VideoQualityAnalyzerInjectionHelper.
VideoQualityAnalyzerInjectionHelper will be used to provide all required
entities to inject video quality analyzer into peer connection pipeline.

Bug: webrtc:10138
Change-Id: Iea7cf453311d809619839d5cf94b78a020ce9167
Reviewed-on: https://webrtc-review.googlesource.com/c/119642
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26395}
2019-01-24 17:11:21 +00:00
Artem Titov
fc2175da73 Introduce QualityAnalyzingVideoEncoder and QualityAnalyzingVideoDecoder.
This encoder will be used to inject VideoQualityAnalyzerInterface into
VideoEncoder, so it will be able to measure its metrics and also trace
frames from capturing on one peer side to rendering on another peer side.
The decoder will be used for the same purpose but in VideoDecoder pert.

Bug: webrtc:10138
Change-Id: Idf719753e3c0b3b1369ff206365bf0558705eb98
Reviewed-on: https://webrtc-review.googlesource.com/c/117363
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26381}
2019-01-24 11:15:12 +00:00
Artem Titov
24a164bdcf Introduce ExampleVideoQualityAnalyzer.
This analyzer will be used in implementatino of peer connection level
test framework before main analyzer will be implemented.

Bug: webrtc:10138
Change-Id: Ibb7c5cd94b0f07c6fc5a2415f04b0f0ae7ae75e2
Reviewed-on: https://webrtc-review.googlesource.com/c/117221
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26301}
2019-01-17 16:50:38 +00:00
Artem Titov
4895b45703 Introduce EncodedImageIdInjector.
EncodedImageIdInjector is responsible for injection of frame id into
encoded image before it will be sent to the transport layer. It will
help to track video frame from capturing on 1st peer side to rendering
on 2nd peer side and will make it possible to calculate video quality
stats between these frames.

This CL also introduces two different implementations for injector:
  1. DefaultEncodedImageIdInjector will prepend all encoded images with
     extra data and then will restore them on another side. This injector
     can work even if peers are running on different devices.
  2. SingleProcessEncodedImageIdInjector can work only when all peers
     are running in the same process, but won't use any extra data
     to propagate frame id between peers, so it won't affect any
     transport level metrics and bitrate estimator.

This CL is first part of new video quality analyzer for end-2-end
peer connection level test framework.

Bug: webrtc:10138
Change-Id: I77defc8e8c95cb244a695a9732980a47bd7a2e9b
Reviewed-on: https://webrtc-review.googlesource.com/c/116682
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26251}
2019-01-14 17:59:42 +00:00