444 Commits

Author SHA1 Message Date
Ruslan Burakov
493a650b1e Propagate base minimum delay from video jitter buffer to webrtc/api.
On api level two methods were added to api/media_stream_interface.cc on VideoSourceInterface,
GetLatency and SetLatency. Latency is measured in seconds, delay in milliseconds but both describes
the same concept.


Bug: webrtc:10287
Change-Id: Ib8dc62a4d73f63fab7e10b82c716096ee6199957
Reviewed-on: https://webrtc-review.googlesource.com/c/123482
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26877}
2019-02-27 15:08:34 +00:00
Amit Hilbuch
b000b716d4 Wiring up RIDs from the video engine to the RTP Sender.
RIDs will now appear in the sent packets when they are supplied.
This is relevant for the Simulcast scenario which uses RIDs to
identify the different layers.

Bug: webrtc:10074
Change-Id: I2f281abc144f467e151a30ec13b8c375be4ac3e6
Reviewed-on: https://webrtc-review.googlesource.com/c/124140
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26843}
2019-02-25 19:13:39 +00:00
Elad Alon
ccb9b759c5 Create version 01 of Generic Frame Descriptor - with discardability flag
The discardability flag denotes whether the frame may be dropped by
the decoder with no effect on the decodability of subsequent frames.

Bug: webrtc:10214
Change-Id: I3654951d8863b50effe9670b8d1d7eb051240039
Reviewed-on: https://webrtc-review.googlesource.com/c/122241
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26763}
2019-02-20 10:31:58 +00:00
Ilya Nikolaevskiy
71aee3a116 Reland "Propagate VideoFrame::UpdateRect to encoder"
Reland with fixes for failing chromium tests.

Propagate VideoFrame::UpdateRect to encoder

Accumulate it in all places where frames can be dropped before they reach the encoder.

Reset UpdateRect in VideoBroadcaster if frame the previous frame is dropped.
No accumulation is done here since it's supposed to be a brief occasion then configuration have changed.

Original Reviewed-on: https://webrtc-review.googlesource.com/c/123102

Bug: webrtc:10310
Change-Id: I18be73f47f227d6392bf9cb220b549ced225714f
Reviewed-on: https://webrtc-review.googlesource.com/c/123230
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26738}
2019-02-18 13:44:14 +00:00
Ruslan Burakov
7ea460593c Add latency to remote source api.
Latency corresponds to base minimum delay on NetEq.

Bug: webrtc:10287
Change-Id: I538d202e3e4fe07b779c46bf560e2fde38e0468e
Reviewed-on: https://webrtc-review.googlesource.com/c/121704
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26724}
2019-02-16 02:13:44 +00:00
Mirko Bonadei
429b67db1f Revert "Propagate VideoFrame::UpdateRect to encoder"
This reverts commit efa72a1312e9871c9b33b7a1fec208b379608898.

Reason for revert: It seems to break come chromium.webrtc.fyi bots:

They are all release.

https://ci.chromium.org/p/chromium/builders/luci.chromium.webrtc.fyi/WebRTC%20Chromium%20FYI%20Linux%20Tester/2167
https://ci.chromium.org/p/chromium/builders/luci.chromium.webrtc.fyi/WebRTC%20Chromium%20FYI%20Mac%20Tester/1833
https://ci.chromium.org/p/chromium/builders/luci.chromium.webrtc.fyi/WebRTC%20Chromium%20FYI%20Win10%20Tester/1835

Original change's description:
> Propagate VideoFrame::UpdateRect to encoder
> 
> Accumulate it in all places where frames can be dropped before they reach
> the encoder.
> 
> Reset UpdateRect in VideoBroadcaster if frame the previous frame is dropped.
> No accumulation is done here since it's supposed to be a brief occusion then
> configuration have changed.
> 
> Bug: webrtc:10310
> Change-Id: I2813ecd009eb730bd99ffa0a02f979091b56bf80
> Reviewed-on: https://webrtc-review.googlesource.com/c/123102
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26711}

TBR=ilnik@webrtc.org,nisse@webrtc.org,sprang@webrtc.org

Change-Id: If34b5440393fffba6c37cd80c02e2b419b7ec601
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10310
Reviewed-on: https://webrtc-review.googlesource.com/c/123224
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26719}
2019-02-15 21:00:17 +00:00
Ilya Nikolaevskiy
efa72a1312 Propagate VideoFrame::UpdateRect to encoder
Accumulate it in all places where frames can be dropped before they reach
the encoder.

Reset UpdateRect in VideoBroadcaster if frame the previous frame is dropped.
No accumulation is done here since it's supposed to be a brief occusion then
configuration have changed.

Bug: webrtc:10310
Change-Id: I2813ecd009eb730bd99ffa0a02f979091b56bf80
Reviewed-on: https://webrtc-review.googlesource.com/c/123102
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26711}
2019-02-15 15:42:34 +00:00
Ilya Nikolaevskiy
3a656d14dc Tune bitrates and minQP thresholds for high-fps screenshare.
Raise MinQP to allow easier steady-state convergence.

Update SVC rate allocator to not waste bandwidth if there's not enough
for the highest layer.

Bug: webrtc:10257
Change-Id: Iba937bf3c224ffed256308bdb6434be8b5223f84
Reviewed-on: https://webrtc-review.googlesource.com/c/122843
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26710}
2019-02-15 15:13:57 +00:00
Per Kjellander
914351de5c Reland "Always offer transport sequence number header extension for audio""
(reverted in https://webrtc-review.googlesource.com/c/src/+/123182/1)

Original cl description:
Always offer transport sequence number header extension for audio

If the extension is negotiated, it will only be used if
the field trial WebRTC-Audio-SendSideBwe is enabled.
This allows simpler experimentation if it should be used or not.

Patchset 3 contain the only change:
  Add the field trial WebRTC-Audio-SendSideBwe to  call/rampup_tests.cc

TBR: srte@webrtc.org,ossu@webrtc.org
Bug: webrtc:10309 webrtc:10286
Change-Id: I2c1224e8a9fab52c1030369c1364686322e88a0f
Reviewed-on: https://webrtc-review.googlesource.com/c/123183
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26706}
2019-02-15 10:57:38 +00:00
Ying Wang
397c06fe9d Revert "Always offer transport sequence number header extension for audio"
This reverts commit fd965c008c7bc395bb276f260262ac11ccd25406.

Reason for revert: Cause test failure.

Original change's description:
> Always offer transport sequence number header extension for audio
> 
> If the extension is negotiated, it will only be used if
> the field trial WebRTC-Audio-SendSideBwe is enabled.
> This allows simpler experimentation if it should be used or not.
> 
> Bug: webrtc:10309 webrtc:10286
> Change-Id: I797e6f14c06d46189e40f6d09805c2e09afc015b
> Reviewed-on: https://webrtc-review.googlesource.com/c/122542
> Commit-Queue: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26689}

TBR=ossu@webrtc.org,sprang@webrtc.org,srte@webrtc.org,perkj@webrtc.org

Change-Id: I1b7d3fa5c282a5bf049ca54695ad16c8278a2698
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10309 webrtc:10286
Reviewed-on: https://webrtc-review.googlesource.com/c/123182
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26703}
2019-02-15 08:53:25 +00:00
Per Kjellander
fd965c008c Always offer transport sequence number header extension for audio
If the extension is negotiated, it will only be used if
the field trial WebRTC-Audio-SendSideBwe is enabled.
This allows simpler experimentation if it should be used or not.

Bug: webrtc:10309 webrtc:10286
Change-Id: I797e6f14c06d46189e40f6d09805c2e09afc015b
Reviewed-on: https://webrtc-review.googlesource.com/c/122542
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26689}
2019-02-14 15:28:07 +00:00
Christian Fremerey
6c02541abe Revert "Delete video source proxying in WebRtcVideoSendStream"
This reverts commit b66003ca79cd34f65ef964a5e3b4766bc97a5659.

Reason for revert: Causes bot failures in Chromium, see https://chromium-review.googlesource.com/c/chromium/src/+/1470391

Original change's description:
> Delete video source proxying in WebRtcVideoSendStream
>
> Bug: webrtc:10147
> Change-Id: Ib9f399e79d99f7d8db53fa38ef4b92986913ac26
> Reviewed-on: https://webrtc-review.googlesource.com/c/121569
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26633}

TBR=nisse@webrtc.org,sprang@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10147
No-Try: True
Change-Id: I80395333d2be8fd3329c0bcdd6ed33d994a01ae3
Reviewed-on: https://webrtc-review.googlesource.com/c/122940
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Christian Fremerey <chfremer@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26672}
2019-02-13 22:42:43 +00:00
Erik Språng
7f24fb9c1e Add settings to turn off VP8 base layer qp limit
This quality boost means that we sometimes drop a _lot_ of frames in the
base layer. It also interacts poorly with the bitrate adjuster since
even if frames are dropped they are often over-sized.

The setting still leaves the current behavior as default, but can be
changed using the WebRTC-VideoRateControl field trial.

Bug: webrtc:10155
Change-Id: I1a92ec69bab61b5148fe9d8bc391ac5ee1019367
Reviewed-on: https://webrtc-review.googlesource.com/c/122840
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26659}
2019-02-13 11:54:19 +00:00
Niels Möller
b66003ca79 Delete video source proxying in WebRtcVideoSendStream
Bug: webrtc:10147
Change-Id: Ib9f399e79d99f7d8db53fa38ef4b92986913ac26
Reviewed-on: https://webrtc-review.googlesource.com/c/121569
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26633}
2019-02-11 12:43:31 +00:00
Johnny Lee
1a1c52baf9 H.264 temporal layers w/frame marking (PART 2/3)
Bug: None
Change-Id: Id1381d895377d39c3969635e1a59591214aabb71
Reviewed-on: https://webrtc-review.googlesource.com/c/86140
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26624}
2019-02-09 16:47:09 +00:00
Elad Alon
157540ac05 Stop hard-coding default IDs for RTP extensions
Hard-coding default values forces IDs over 14 to be used even
when we offer less than 15 different extensions.

Note that the code relies on MergeRtpHdrExts for making sure
that extension IDs are kept consistent and non-colliding between
different streams (audio/video).

Bug: webrtc:10288
Change-Id: I3e59f7ddc8ca43cea91084a6b7f36df70fb6be4a
Reviewed-on: https://webrtc-review.googlesource.com/c/121646
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26622}
2019-02-09 01:04:35 +00:00
Fredrik Solenberg
e1dcce24e6 Remove HAVE_WEBRTC_VOICE.
Appears not used anymore.

Bug: none
Change-Id: Ic2238e6ad3d9917208bdb4a101f1ce254b1272ac
Reviewed-on: https://webrtc-review.googlesource.com/c/120963
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26578}
2019-02-06 18:39:45 +00:00
Ruslan Burakov
3b50f9f9ce Propagate base minimum delay to audio_receiver_stream
Bug: webrtc:10287
Change-Id: Id7914976ef5b7eb708802119932b554d9ce4879e
Reviewed-on: https://webrtc-review.googlesource.com/c/121563
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26563}
2019-02-06 11:07:42 +00:00
Rasmus Brandt
9387b52297 Apply simulcast resolution normalization before scaling.
With this CL, we normalize the resolution coming from the
capturer, before applying the requested scaling factors.
That has the benefit that the actual scale factor between
two layers will be the fraction of the requested scale
factors of the two layers.

Prior to this CL, when the normalization was done per layer,
the actual scale factor between two layers might not
have been the fraction of the requested scale factors
of the two layers.

Bug: webrtc:10069
Change-Id: I9ca4d394f259d5d37faee96a41204ff8df898907
Reviewed-on: https://webrtc-review.googlesource.com/c/121425
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26550}
2019-02-05 14:33:15 +00:00
Ilya Nikolaevskiy
9f6a0d5d21 In VideoEngine also respect requested TL number even for screenshare
Bug: chromium:927208
Change-Id: Ic20b2da246dac9185375cc42a6a2505aaff95ac6
Reviewed-on: https://webrtc-review.googlesource.com/c/121403
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26546}
2019-02-05 13:21:38 +00:00
Sergey Silkin
0237106559 Expose video freeze metrics in GetStats.
This adds the following non-standardized metrics to video receiver
stats:
- freezeCount
- pauseCount
- totalFreezesDuration
- totalPausesDuration
- totalFramesDuration
- sumOfSquaredFrameDurations

For description of these metrics see
https://henbos.github.io/webrtc-provisional-stats/#RTCVideoReceiverStats-dict*

Bug: webrtc:10145
Change-Id: I4c76d5651102e73b1592ffed561e6224f2badeb6
Reviewed-on: https://webrtc-review.googlesource.com/c/114840
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26523}
2019-02-04 09:58:08 +00:00
Per Kjellander
65cc52ebca Fix heap use overrun in FakeEncoder
By removing unnecessary fixed size buffer.

BUG=webrtc:10276

Change-Id: I303303d8c4aa356372875abe6db5711cd10bcc71
Reviewed-on: https://webrtc-review.googlesource.com/c/120811
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26509}
2019-02-01 11:26:57 +00:00
Ilya Nikolaevskiy
6957abeff1 Reland "Always use real VideoStreamsFactory in full stack tests"
Reland with fixes. Previous iteration affected media bitrate in bunch of tests.

Always use real VideoStreamsFactory in full stack tests

Because quality scaling is enabled now in full stack test, correct
factory should be used to compute actual resolution.

Also, since analyzed stream may be disabled completely now, change how
analyzer considers the test finished --- count captured frames and
stop if required amount of frames is captured and no new comparison were made.

Original Reviewed-on: https://webrtc-review.googlesource.com/c/118687

Bug: webrtc:10204
Change-Id: Id1d9066add185d56fe3cb6856b700d350576c6b2
Reviewed-on: https://webrtc-review.googlesource.com/c/119950
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26460}
2019-01-30 09:22:57 +00:00
Florent Castelli
c1a0bcbe89 Implement the encoding RtpParameter scaleResolutionDownBy
Support varies by codec, especially in the simulcast case, but using
the EncoderSimulcastProxy codec should fix this.

Bug: webrtc:10069
Change-Id: Idb6a5f400ffda1cdb139004f540961a9cf85d224
Reviewed-on: https://webrtc-review.googlesource.com/c/119400
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26449}
2019-01-29 14:32:17 +00:00
Steve Anton
2c9ebefb44 Use Abseil container algorithms in media/
Bug: None
Change-Id: I292e3401bbf19a66271dd5ef2b3ca4f8dcfd155d
Reviewed-on: https://webrtc-review.googlesource.com/c/120003
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26434}
2019-01-29 02:35:50 +00:00
Mirko Bonadei
739baf097b [clang-tidy] Apply performance-for-range-copy fixes.
This CL applies clang-tidy's performance-for-range-copy [1] on the
WebRTC codebase.

All changes in this CL are automatically generated by both clang-tidy
and 'git cl format'.

[1] - https://clang.llvm.org/extra/clang-tidy/checks/performance-for-range-copy.html

Bug: webrtc:10215
Change-Id: I7c83290b8866d76129bbec4e24e6701f5014102e
Reviewed-on: https://webrtc-review.googlesource.com/c/120043
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26420}
2019-01-28 09:53:50 +00:00
Steve Anton
f380284035 (7) Rename files to snake_case: remove forwarding headers
Bug: webrtc:10159
Change-Id: I2ba899e0283b953538c7941c8790213e36d7c70e
Reviewed-on: https://webrtc-review.googlesource.com/c/118561
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26417}
2019-01-26 00:33:46 +00:00
Mirko Bonadei
d970807e0c Remove rtc_base/scoped_ref_ptr.h.
The type rtc::scoped_refptr<T> is now part of api/. Please include it from
api/scoped_refptr.h.

More info: See: https://groups.google.com/forum/#!topic/discuss-webrtc/Mme2MSz4z4o.

Bug: webrtc:9887, webrtc:8205
No-Try: True
Change-Id: Ic6c7c81e226e59f12f7933e472f573ae097b55bf
Reviewed-on: https://webrtc-review.googlesource.com/c/119041
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26414}
2019-01-25 20:29:58 +00:00
Rasmus Brandt
1e27fec293 Negate flag name for prerender smoothing and update comments.
Further, strictly require VideoReceiveStream::Config::rendererer
to be non-null when the VideoReceiveStream is started. This is
already true by construction in the production code.

Bug: None
Change-Id: Ia0a41cfafa44215efc195a9eb6204194930c3dde
Reviewed-on: https://webrtc-review.googlesource.com/c/115040
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26384}
2019-01-24 11:53:26 +00:00
Sebastian Jansson
470a5eae93 Introduces common AudioAllocationSettings class.
This class collects the field trial based configuration of audio
allocation and bandwidth in one place. This makes it easier
overview and prepares for future cleanup of the trials.

Bug: webrtc:9718
Change-Id: I34a441c0165b423f1e2ee63894337484684146ac
Reviewed-on: https://webrtc-review.googlesource.com/c/118282
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26370}
2019-01-23 12:13:29 +00:00
Konrad Hofbauer
b0397d69a9 Always send abs-send-time when negotiated and do not filter it out.
Previously, when abs-send-time was negotiated, it was not sent if TWCC
was enabled. With this FieldTrial, abs-send-time header extension is
sent even if TWCC was negotiated in addition to abs-send-time.

Bug: webrtc:10234
Change-Id: I3af85720760882e89760888d43996fe85def619a
Reviewed-on: https://webrtc-review.googlesource.com/c/118936
Commit-Queue: Konrad Hofbauer <hofbauer@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26368}
2019-01-23 11:30:39 +00:00
Florent Castelli
1b761ca21a Remove simulcast constraints in SimulcastEncoderAdapter
The lowest and highest resolution layers are also identified instead
of assuming they are the first and last ones.

Bug: webrtc:10069
Change-Id: If9c76d647415c5065b79dc71850709db6bf16f61
Reviewed-on: https://webrtc-review.googlesource.com/c/114429
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26343}
2019-01-21 16:02:59 +00:00
Niels Möller
805a27e134 Reland "Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2."
This is a reland of aa8b94c170d6002c9e3f0290e9ab683e4163723c

Original change's description:
> Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2.
> 
> Update remaining tests of WebRtcVideoEngine.
> 
> Bug: webrtc:6353
> Change-Id: I63f86a6c3cd45e1c95345746ac4ecc018d2f29c6
> Reviewed-on: https://webrtc-review.googlesource.com/c/117560
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26331}

Bug: webrtc:6353
Change-Id: I052bea3be776140c0f301cc4383337c0aa62f4f5
Reviewed-on: https://webrtc-review.googlesource.com/c/118700
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26338}
2019-01-21 12:48:35 +00:00
Niels Moller
a882fb3ee4 Revert "Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2."
This reverts commit aa8b94c170d6002c9e3f0290e9ab683e4163723c.

Reason for revert: Timestamp-related breakage in downstream tests. 
Will try to reland together with fix in cl https://webrtc-review.googlesource.com/c/src/+/118680

Original change's description:
> Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2.
> 
> Update remaining tests of WebRtcVideoEngine.
> 
> Bug: webrtc:6353
> Change-Id: I63f86a6c3cd45e1c95345746ac4ecc018d2f29c6
> Reviewed-on: https://webrtc-review.googlesource.com/c/117560
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26331}

TBR=nisse@webrtc.org,sprang@webrtc.org

Change-Id: I901fe7416390aa36716b4124c8bbc6b751c26cee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6353
Reviewed-on: https://webrtc-review.googlesource.com/c/118681
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26332}
2019-01-21 08:44:47 +00:00
Niels Möller
aa8b94c170 Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2.
Update remaining tests of WebRtcVideoEngine.

Bug: webrtc:6353
Change-Id: I63f86a6c3cd45e1c95345746ac4ecc018d2f29c6
Reviewed-on: https://webrtc-review.googlesource.com/c/117560
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26331}
2019-01-21 07:34:41 +00:00
Niels Möller
3de32e6e8c Add test WebRtcVideoChannelTest.DoesNotAdaptWhenScreeensharing
Bug: None
Change-Id: Ib0c8a2eeb816631aac65236114b0487104a5c698
Reviewed-on: https://webrtc-review.googlesource.com/c/118121
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26321}
2019-01-18 13:28:47 +00:00
Erik Språng
dbdd8395f7 Add ability for VideoEncoder to signal frame rate allocation.
This CL add new data to the VideoEncoder::EncoderInfo struct, indicating
how the encoder intends to allocate frames across spatial and temporal
layers.

This metadata will be used in upcoming CLs to control how the encoder's
rate controller performs.

Bug: webrtc:10155
Change-Id: Id56fae04bae5f230d1a985171097d7ca83a3be8a
Reviewed-on: https://webrtc-review.googlesource.com/c/117900
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26300}
2019-01-17 15:40:53 +00:00
Erik Språng
f93eda1705 Move some video codec constants to separate file.
kMaxSimulcastStreams, kMaxSpatialLayers and kMaxTemporalStreams don't
really beling on VideoBitrateAllocation.
common_types.h is going away and it feels dubious to requrie include
of the full VideoEncoder api to use them. Therefore moving them into a
seprate file/target.

Also includes some remaining cleanup of includes.

Bug: webrtc:9271
Change-Id: I7ded3d97a9a835ac756159700774445a2b93a697
Reviewed-on: https://webrtc-review.googlesource.com/c/117305
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26299}
2019-01-17 15:29:53 +00:00
Niels Möller
fb7a6a7f8d Delete test WebRtcVideoChannelTest.AdaptsOnOveruseAndChangeResolution
It only tests the videoadaptation in the test class FakeVideoCapturer.

Bug: webrtc:6353
Change-Id: I4766eebc5cfa7412fde9fd6e5173f1b2381a5d87
Reviewed-on: https://webrtc-review.googlesource.com/c/118042
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26297}
2019-01-17 14:23:52 +00:00
Emircan Uysaler
7c03bdc1d3 Reland "Add a high bitrate full stack test with fake codec"
In this reland, I disabled high bitrate webrtc perf test on Android32.

This is a reland of 15df2774f4e85cf8900768c1793edcf17d651dcd

Original change's description:
> This CL adds a fake codec factory  in WebRTC that can be used in tests to
> produce target bitrate output.

> We also add a high bitrate test that makes use of fake codec. This test assumes
> ideal network conditions with target bandwidth being available and exercises
> WebRTC calls with a high target bitrate(100 Mbps) end-to-end.

TBR=sprang@webrtc.org,stefan@webrtc.org,srte@webrtc.org,emircan@webrtc.org,kron@webrtc.org

Bug: chromium:879723
Change-Id: I31a4b48d986bef9ca003ae71afeb567ae3e562c9
Reviewed-on: https://webrtc-review.googlesource.com/c/117980
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26285}
2019-01-16 21:03:22 +00:00
Niels Möller
dcc70297cd Simplify WebRtcVideoChannelTest.PreviousAdaptationDoesNotApplyToScreenshare
Test wiring to DegradationPreference passed to
VideoSendStream::SetSource, but not the adaptation implemented in the
test class FakeVideoCapturer.

Bug: webrtc:6353
Change-Id: Iec2ae89283fb856822ea2829db17eaa02337b467
Reviewed-on: https://webrtc-review.googlesource.com/c/117641
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26278}
2019-01-16 13:02:49 +00:00
Chen Xing
0acffb5b36 Expose jitterBufferEmittedCount in addition to the existing jitterBufferDelay for getStats().
NetEq currently only passes `jitterBufferDelay` to `getStats()`. We need its paired `jitterBufferEmittedCount` denominator stat for the calculations to be accurate.

Bug: webrtc:10192
Change-Id: I655aea629026ce9101409c2e0f18c2fa57a1c3ab
Reviewed-on: https://webrtc-review.googlesource.com/c/117320
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Chen Xing <chxg@google.com>
Cr-Commit-Position: refs/heads/master@{#26276}
2019-01-16 11:44:10 +00:00
Mirta Dvornicic
ccc1b57e32 Poll is_hardware_accelerated from VideoEncoder instead of VideoEncoderFactory.
Currently, CPU overuse settings for HW encoders are sometimes being used
even though the actual encoder is a SW encoder, e.g. in case of SW fallback
when the encoder is initialized. Polling is_hardware_accelerated after the
encoder has been created and initialized will improve choosing the correct
CPU overuse settings.

Bug: webrtc:10065
Change-Id: Ic6bd67630a040b5a121c13fa63dd074006973929
Reviewed-on: https://webrtc-review.googlesource.com/c/116688
Commit-Queue: Mirta Dvornicic <mirtad@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26266}
2019-01-15 14:12:12 +00:00
Niels Möller
45ccd8488e Don't set the screenshare flag on FakeVideoCapturerWithTaskQueue
A capturer with this flag was set in
WebRtcVideoChannelTest.PreviousAdaptationDoesNotApplyToScreenshare.
But the flag is used only by the VideoCapturerTrackSource class, which
isn't used in this test.

Bug: webrtc:6353
Change-Id: I58058c882c5a65b5cfa9921e302c422c8ccb20a9
Reviewed-on: https://webrtc-review.googlesource.com/c/117561
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26256}
2019-01-15 10:22:13 +00:00
Anders Carlsson
45340ca824 Remove legacy video codec factories.
Removes the deprecated video codec factories and the related flag and
helper classes.

Bug: webrtc:7925
Change-Id: I0a6d1666ece9ad074fefc79b626ba241765e1b98
Reviewed-on: https://webrtc-review.googlesource.com/c/113940
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26245}
2019-01-14 14:56:40 +00:00
Niels Möller
d0f0f68953 Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 1.
Replaced with a combination of cricket::FakeFrameSource and
webrtc::test::FrameForwarder. This cl converts the first three
affected tests, the rest will follow.

Bug: webrtc:6353
Change-Id: I556f6b58f4ca81234ffae3dc6e1319f9c60a76ae
Reviewed-on: https://webrtc-review.googlesource.com/c/117260
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26239}
2019-01-14 12:34:51 +00:00
Steve Anton
aec15aa810 (5) Rename files to snake_case: install forwarding headers
Mechanically generated with this command:

tools_webrtc/do-renames.sh install all-renames.txt && git cl format

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Ic8e99f71f2da62e5c99863c6d24a8cfe311466cd
Reviewed-on: https://webrtc-review.googlesource.com/c/115682
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26227}
2019-01-11 17:13:36 +00:00
Steve Anton
10542f21c8 (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries
Mechanically generated by running this command:

tools_webrtc/do-renames.sh update all-renames.txt && git cl format

Then manually updating:

tools_webrtc/sanitizers/tsan_suppressions_webrtc.cc

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I54824cd91dada8fc3ee3d098f971bc319d477833
Reviewed-on: https://webrtc-review.googlesource.com/c/115653
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26226}
2019-01-11 17:11:39 +00:00
Steve Anton
1c05765831 (3) Rename files to snake_case: move the files
Mechanically generated with this command:

tools_webrtc/do-rename.sh move all-renames.txt

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I8b05b6eab9b9d18b29c2199bbea239e9add1e690
Reviewed-on: https://webrtc-review.googlesource.com/c/115481
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26225}
2019-01-11 17:05:20 +00:00
Niels Möller
4687915495 Enable use of MediaTransportInterface for video streams.
Bug: webrtc:9719
Change-Id: I8c6027b4b15ed641e42fd210b3ea87d121508a69
Reviewed-on: https://webrtc-review.googlesource.com/c/111751
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26219}
2019-01-11 14:06:15 +00:00