49 Commits

Author SHA1 Message Date
philipel
ccdfccaa6f New PacketQueue2 behind WebRTC-RoundRobinPacing field trial.
To make testing easier all of PacketQueues functions have been made virtual,
and PacketQueue2 now inherits PacketQueue. This change was made to minimize
changes in PacedSender.

Bug: webrtc:8287, webrtc:8288
Change-Id: I2593340e7cc7da617370b0a33e7b9deeb46d9487
Reviewed-on: https://webrtc-review.googlesource.com/9380
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20385}
2017-10-23 11:39:57 +00:00
Ilya Nikolaevskiy
1c1a6815ae Revert "Add fine grained dropped video frames counters on sending side"
This reverts commit 4b1a363e4c238f2e1ec2d8a9ce1f819f59d710ce.

Reason for revert: Breaks dependent android projects.

Original change's description:
> Add fine grained dropped video frames counters on sending side
> 
> 4 new counters added to SendStatisticsProxy and reported to UMA and logs.
> 
> Bug: webrtc:8355
> Change-Id: Idf9b8dfc295c92821e058a97cb3894dc6a446082
> Reviewed-on: https://webrtc-review.googlesource.com/12260
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Stefan Holmer <stefan@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20347}

TBR=deadbeef@webrtc.org,ilnik@webrtc.org,sprang@webrtc.org,stefan@webrtc.org

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

Bug: webrtc:8355
Change-Id: I59b02f4eb77abad7ff1fbcbfa61844918c95d723
Reviewed-on: https://webrtc-review.googlesource.com/14500
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20378}
2017-10-21 09:23:54 +00:00
Åsa Persson
d29b54c93a Set start time for encoded framerate tracker on first incoming frame (instead of
when first key frame is encoded) to avoid a too high initial estimate.

Bug: webrtc:8375
Change-Id: I404e394d8f2ac648170dd3828065435a4d2c6147
Reviewed-on: https://webrtc-review.googlesource.com/14061
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20370}
2017-10-20 10:20:43 +00:00
Danil Chapovalov
f74d641fc1 Simplify setting/unsetting REMB in RtcpSender
follow up of https://webrtc-review.googlesource.com/c/src/+/7983

Bug: None
Change-Id: I408c21408478d801a769e2e9d5f2eb9408430a4b
Reviewed-on: https://webrtc-review.googlesource.com/12520
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20359}
2017-10-19 14:07:31 +00:00
Ilya Nikolaevskiy
4b1a363e4c Add fine grained dropped video frames counters on sending side
4 new counters added to SendStatisticsProxy and reported to UMA and logs.

Bug: webrtc:8355
Change-Id: Idf9b8dfc295c92821e058a97cb3894dc6a446082
Reviewed-on: https://webrtc-review.googlesource.com/12260
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20347}
2017-10-19 10:37:12 +00:00
Ilya Nikolaevskiy
b06b358207 Update aggregating interval in getStats for receive side.
Now some metrics would be aggregated over 1s window instead of 10s.

Bug: webrtc:8402
Change-Id: If0b5a70257c767a1741b451585f3da501b903374
Reviewed-on: https://webrtc-review.googlesource.com/11400
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20316}
2017-10-16 17:19:07 +00:00
Åsa Persson
0122e8443b Reland "Remove sent framerate and bitrate calculations from MediaOptimization."
TBR=sprang@webrtc.org

This is a reland of af721b72cc1bdc5d945629ad78fbea701b6f82b9
Original change's description:
> Remove sent framerate and bitrate calculations from MediaOptimization.
> 
> Add RateTracker for sent framerate and bitrate in SendStatisticsProxy.
> 
> Store sent frame info in map to solve potential issue where sent framerate statistics could be
> incorrect.
> 
> Bug: webrtc:8375
> Change-Id: I4a6e3956013438a711b8c2e73a8cd90c52dd1210
> Reviewed-on: https://webrtc-review.googlesource.com/7880
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Åsa Persson <asapersson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20225}

Bug: webrtc:8375
Change-Id: I06ea90ae8646ba11ddd8ddceb82ea82d75ae2109
Reviewed-on: https://webrtc-review.googlesource.com/11320
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20308}
2017-10-16 12:43:07 +00:00
Alex Narest
b3944f021d Media track ID visibility at BWE level
Track IDs are assigned by application during track creation. 
Track IDs are used by custom bitrate allocation strategies to identify tracks. 
Track ID can be empty, in that case bitrate allocation strategies will not be able to handle
these tracks specifically and will handle them as a default.

Bug: webrtc:8243
Change-Id: I89987e33328320bfd0539ad532342df6da144c98
Reviewed-on: https://webrtc-review.googlesource.com/4820
Commit-Queue: Alex Narest <alexnarest@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20285}
2017-10-13 13:47:07 +00:00
Ilya Nikolaevskiy
ed23be91b8 Move HistogramPercentileCounter to rtc_base from RecieveStatisticProxy.
This should be a separate utility class, rather than internal thing in
ReceiveStatisticsProxy.

Bug: webrtc:8347
Change-Id: I9c8238e625999dba5776d6038c819732d07e9656
Reviewed-on: https://webrtc-review.googlesource.com/7609
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20267}
2017-10-13 08:32:07 +00:00
Åsa Persson
ca0ed63c19 Revert "Remove sent framerate and bitrate calculations from MediaOptimization."
This reverts commit af721b72cc1bdc5d945629ad78fbea701b6f82b9.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Remove sent framerate and bitrate calculations from MediaOptimization.
> 
> Add RateTracker for sent framerate and bitrate in SendStatisticsProxy.
> 
> Store sent frame info in map to solve potential issue where sent framerate statistics could be
> incorrect.
> 
> Bug: webrtc:8375
> Change-Id: I4a6e3956013438a711b8c2e73a8cd90c52dd1210
> Reviewed-on: https://webrtc-review.googlesource.com/7880
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Åsa Persson <asapersson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20225}

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

Change-Id: Ic914f03ff7065ac410ae06b6f82b56a935399b66
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8375
Reviewed-on: https://webrtc-review.googlesource.com/8480
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20248}
2017-10-11 12:59:15 +00:00
Åsa Persson
18945c35c2 Revert "Reduce max possible size of map that holds encoded frame info."
This reverts commit 2ff7ecfceb99deb3f2351c4184f84c1322568087.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Reduce max possible size of map that holds encoded frame info.
> 
> Bug: webrtc:8375
> Change-Id: Idc57e68dc44fd73e5c0aa85d82c1e3659d8ea292
> Reviewed-on: https://webrtc-review.googlesource.com/8301
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Åsa Persson <asapersson@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20232}

TBR=brandtr@webrtc.org,asapersson@webrtc.org,sprang@webrtc.org

Change-Id: I1dcb7ab588e5ab3eb79bec2c39f615480e31c3bb
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8375
Reviewed-on: https://webrtc-review.googlesource.com/8460
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20247}
2017-10-11 12:58:11 +00:00
Danil Chapovalov
51e21aaa7a Simplify RtpRtcp interface for REMB
Remove REMB accessor as used for debug checks only.
Merge SetRembData and SetRembStatus(true) eliminating 
state 'remb can be send, but no data available yet'

Bug: None
Change-Id: I4c1c19435657e5cde02a17de90ec6de9f00b7daf
Reviewed-on: https://webrtc-review.googlesource.com/7983
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20240}
2017-10-11 11:09:39 +00:00
Åsa Persson
2ff7ecfceb Reduce max possible size of map that holds encoded frame info.
Bug: webrtc:8375
Change-Id: Idc57e68dc44fd73e5c0aa85d82c1e3659d8ea292
Reviewed-on: https://webrtc-review.googlesource.com/8301
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20232}
2017-10-11 07:34:30 +00:00
Åsa Persson
af721b72cc Remove sent framerate and bitrate calculations from MediaOptimization.
Add RateTracker for sent framerate and bitrate in SendStatisticsProxy.

Store sent frame info in map to solve potential issue where sent framerate statistics could be
incorrect.

Bug: webrtc:8375
Change-Id: I4a6e3956013438a711b8c2e73a8cd90c52dd1210
Reviewed-on: https://webrtc-review.googlesource.com/7880
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20225}
2017-10-10 15:36:08 +00:00
Mirko Bonadei
245660a33d Fix Gn untracked headers in webrtc/call.
This CL is the same CL we had at https://codereview.webrtc.org/3014543002/.
Since we cannot land it with Rietveld anymore let's move the discussion
to Gerrit.

BUG=webrtc:7641
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Change-Id: I5662bec318544b07f476c12ecada997d726e7361
Reviewed-on: https://webrtc-review.googlesource.com/7981
Reviewed-by: Henrik Kjellander <kjellander@google.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20224}
2017-10-10 15:13:48 +00:00
Ilya Nikolaevskiy
3f670e07fe Fix potential crash bug in debug builds
The call to |interframe_delay_max_moving_.Add()| below depends on |now|
non decreasing in consequtive calls. However, if two threads are
competing for the lock it may happen that current thread calculates |now|
before the other thread, yet it will get the lock later. This will result
in decreasing local time in consecutive calls and trigger a DCHECK.

The same also applies to |timing_frame_info_counter_|.

Bug: none
Change-Id: I3376d88d4448c2c105e9227a445b11cd6ba8d341
Reviewed-on: https://webrtc-review.googlesource.com/7861
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20217}
2017-10-10 10:14:47 +00:00
Åsa Persson
ae81975bd3 Make PictureIdTest more strict.
Only allow gaps in picture id for key frames.
When a VideoSendStream is destroyed, frames in the queue not yet sent are lost. The recreated stream
should start with a key frame.

Also enable PictureIdIncreasingAfterStreamCountChangeSimulcastEncoderAdapter if forced fallback is
enabled. In this case, the picture id is set in the PayloadRouter and the sequence should be
continuous.


Bug: none
Change-Id: If7987166c86d6a8edbe5e479701f7f04c49cd89c
Reviewed-on: https://webrtc-review.googlesource.com/7363
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20216}
2017-10-10 09:51:17 +00:00
Åsa Persson
4bece9a4f0 Set RTPVideoHeader picture id in PayloadRouter if forced fallback for VP8 is enabled.
The SW and HW encoder have separate picture id sequences.
Set picture id to not cause sequence discontinuties at encoder changes.

Bug: webrtc:6634
Change-Id: Ie47168791399303d88cbec3ef6ae8ef8c16ced30
Reviewed-on: https://webrtc-review.googlesource.com/5481
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20188}
2017-10-06 13:41:14 +00:00
Ilya Nikolaevskiy
daa4f7abf5 Calculate and report to UMA 95th percentile of Interframe Delay
Histogram based percentile counter is added in ReceiveStatisticsProxy.
New 95th percentile metric is reported in the same way as interframe
delay.

Bug: webrtc:8347
Change-Id: I5e476cbb6361dd341cdb97c37d883c3923e5f611
Reviewed-on: https://webrtc-review.googlesource.com/6880
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20184}
2017-10-06 11:48:34 +00:00
Niels Möller
d692ef9749 Update comments for rename of ScalingObserverInterface.
Was renamed to AdaptationObserverInterface in cl
https://codereview.webrtc.org/2652893015/.

Bug: webrtc:4172
Change-Id: Ie2194a1fd5fe985913716963292af701006f18dd
Reviewed-on: https://webrtc-review.googlesource.com/6420
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20155}
2017-10-05 07:26:20 +00:00
Niels Möller
22ec952829 Delete in_order argument to RtpReceiver::IncomingRtpPacket
Bug: webrtc:7135
Change-Id: I35fbc76a5ca8d50caff918bbfd2cb13dce4cbd21
Reviewed-on: https://webrtc-review.googlesource.com/4141
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20154}
2017-10-05 07:19:20 +00:00
Fredrik Solenberg
4332d09028 Reland "Reland "Remove WEBRTC_TRACE.""
This is a reland of 68007e97ec9399125e4be9964af8b0338766cd91
Original change's description:
> Reland "Remove WEBRTC_TRACE."
> 
> This is a reland of 2209b90449473e1df3e0797b6271c7624b41907d
> Original change's description:
> > Remove WEBRTC_TRACE.
> > 
> > Bug: webrtc:5118
> > Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> > Reviewed-on: https://webrtc-review.googlesource.com/5382
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20114}
> 
> Bug: webrtc:5118
> Change-Id: I2d93fd40fcaa251c363bdcfb1c04b834a3a7f0e9
> Reviewed-on: https://webrtc-review.googlesource.com/6000
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20132}

Bug: webrtc:5118
Change-Id: I3b46406899d043c3260fc3195b524138324f7313
Reviewed-on: https://webrtc-review.googlesource.com/6301
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20144}
2017-10-04 14:40:44 +00:00
Karl Wiberg
c62f6c7121 RTPPayloadRegistry: Use SdpAudioFormat to represent audio codecs
This is needed in the general case, now that we aim to support codecs
other than those built-in to WebRTC.

BUG=webrtc:8159

Change-Id: I40a41252bf69ad5d4d0208e3c1e8918da7394706
Reviewed-on: https://webrtc-review.googlesource.com/5380
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20136}
2017-10-04 11:30:14 +00:00
Elad Alon
83ccca1864 Create and use RtcEventLogOutput for output
We need to support two modes of writing to the output:
1. Current way - the application lets lets WebRTC know which file to write to, and WebRTC is then in charge of the writing.
2. New way - the application would receive indications from WebRTC about (encoded) RTC events, and would itself be in charge of processing them (be it writing it to a file, uploading it somewhere, etc.).

We achieve this by creating an interface for output - RtcEventLogOutput. By providing an instance of the subclass, RtcEventLogOutputFile, the old behavior is achieved. The subclass of the new behavior is to be added by a later CL.

TBR=stefan@webrtc.org

Bug: webrtc:8111
Change-Id: I9c50521a7f7144d86d8353a65995795862e19c44
Reviewed-on: https://webrtc-review.googlesource.com/2686
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20135}
2017-10-04 11:18:47 +00:00
Fredrik Solenberg
39cefdb3c5 Revert "Reland "Remove WEBRTC_TRACE.""
This reverts commit 68007e97ec9399125e4be9964af8b0338766cd91.

Reason for revert: More downstream breakages.

Original change's description:
> Reland "Remove WEBRTC_TRACE."
> 
> This is a reland of 2209b90449473e1df3e0797b6271c7624b41907d
> Original change's description:
> > Remove WEBRTC_TRACE.
> > 
> > Bug: webrtc:5118
> > Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> > Reviewed-on: https://webrtc-review.googlesource.com/5382
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#20114}
> 
> Bug: webrtc:5118
> Change-Id: I2d93fd40fcaa251c363bdcfb1c04b834a3a7f0e9
> Reviewed-on: https://webrtc-review.googlesource.com/6000
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20132}

TBR=solenberg@webrtc.org,sakal@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I093ee8c5c997c0dd46b3a3ca0e6271e3ea083d82
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:5118
Reviewed-on: https://webrtc-review.googlesource.com/6320
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20133}
2017-10-04 08:49:49 +00:00
Fredrik Solenberg
68007e97ec Reland "Remove WEBRTC_TRACE."
This is a reland of 2209b90449473e1df3e0797b6271c7624b41907d
Original change's description:
> Remove WEBRTC_TRACE.
> 
> Bug: webrtc:5118
> Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> Reviewed-on: https://webrtc-review.googlesource.com/5382
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20114}

Bug: webrtc:5118
Change-Id: I2d93fd40fcaa251c363bdcfb1c04b834a3a7f0e9
Reviewed-on: https://webrtc-review.googlesource.com/6000
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20132}
2017-10-04 07:57:18 +00:00
Niels Möller
c3fa8e1ce7 New method RtpReceiver::GetLatestTimestamps.
The two timestamps, rtp time and corresponding system time, are always
used together, for audio/video sync. The new method reads both
timestamps, without releasing a lock in between. Ensures that the
caller gets values corresponding to the same packet.

Bug: webrtc:7135
Change-Id: I25bdcbe9ad620016bfad39841b339c266efade14
Reviewed-on: https://webrtc-review.googlesource.com/4062
Commit-Queue: Niels Moller <nisse@webrtc.org>
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20120}
2017-10-03 16:14:29 +00:00
Elad Alon
4a87e1c211 Remove encoding code from RtcEventLogImpl and use RtcEventLogEncoder instead
RtcEventLogImpl no longer hard-codes the way encoding is done. It now relies on RtcEventEncoder for it. This gives two benefits:
1. We can decide between the current encoding and the new encoding (which is still WIP) without code duplication (no need for RtcEventLogImplNew).
2. Encoding is done only when the event needs to be written to a file. This both avoids unnecessary encoding of events which don't end up getting written to a file, as well as is useful for the new, delta-based encoding, which is stateful.

BUG=webrtc:8111

Change-Id: I9517132e5f96b8059002a66fde8d42d3a678c3bb
Reviewed-on: https://webrtc-review.googlesource.com/1365
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20118}
2017-10-03 15:26:56 +00:00
Fredrik Solenberg
729b9109ca Revert "Remove WEBRTC_TRACE."
This reverts commit 2209b90449473e1df3e0797b6271c7624b41907d.

Reason for revert: breaks Chromium

Original change's description:
> Remove WEBRTC_TRACE.
> 
> Bug: webrtc:5118
> Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
> Reviewed-on: https://webrtc-review.googlesource.com/5382
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20114}

TBR=solenberg@webrtc.org,sakal@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: Ie54fc05c1d7895c088cba410ed87a7c9a0701427
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:5118
Reviewed-on: https://webrtc-review.googlesource.com/5980
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20115}
2017-10-03 13:39:55 +00:00
Fredrik Solenberg
2209b90449 Remove WEBRTC_TRACE.
Bug: webrtc:5118
Change-Id: I0af0f8845ee016fa61d7cecc526e2a672ec8732d
Reviewed-on: https://webrtc-review.googlesource.com/5382
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20114}
2017-10-03 13:20:48 +00:00
Ilya Nikolaevskiy
2c72fe8a2a Fix crash with rtc_event_log in video_loopback
Because RtcEventLog is created and stopped in different threads,
SequencedTaskChecker causes failure at the end of a test.

Bug: none
Change-Id: Ibaec3162eedebd180b101ec46a171efee5fe667e
Reviewed-on: https://webrtc-review.googlesource.com/5401
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20078}
2017-10-02 13:23:49 +00:00
Rasmus Brandt
310273459d Revert "Reland of Add full stack tests for MediaCodec encoder (moved from Rietveld)."
This reverts commit 2666cf7eba4bdd697d59d0451a8f74a05d4d207e.

Reason for revert: On Lollipop Nexus 4, the 240p tests fail too.

Original change's description:
> Reland of Add full stack tests for MediaCodec encoder (moved from Rietveld).
> 
> * Add audio_ prefix to CallTest::{en,de}coder_factory_.
> * Let VideoQualityTest only instantiate encoders using encoder factories.
> * Add HW encoder factories to VideoQualityTest.
> * Add full stack tests:
>   - sqcif7 at  30 kbps: libvpx.
>   - 240p10 at 100 kbps: MediaCodec, libvpx, and MediaCodec+libvpx.
> 
> BUG=webrtc:8219
> TBR=asapersson@webrtc.org,kjellander@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
> 
> Change-Id: I464409ac0d5276defa78c1bf66034c6cca717d74
> Reviewed-on: https://webrtc-review.googlesource.com/4740
> Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#20041}

TBR=kjellander@webrtc.org,brandtr@webrtc.org,asapersson@webrtc.org,sprang@webrtc.org,stefan@webrtc.org

Change-Id: If558b7fb86740658e50a6897d1eeeb72103a54ec
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8219
Reviewed-on: https://webrtc-review.googlesource.com/4900
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20044}
2017-09-29 13:48:29 +00:00
Rasmus Brandt
2666cf7eba Reland of Add full stack tests for MediaCodec encoder (moved from Rietveld).
* Add audio_ prefix to CallTest::{en,de}coder_factory_.
* Let VideoQualityTest only instantiate encoders using encoder factories.
* Add HW encoder factories to VideoQualityTest.
* Add full stack tests:
  - sqcif7 at  30 kbps: libvpx.
  - 240p10 at 100 kbps: MediaCodec, libvpx, and MediaCodec+libvpx.

BUG=webrtc:8219
TBR=asapersson@webrtc.org,kjellander@webrtc.org,stefan@webrtc.org,sprang@webrtc.org

Change-Id: I464409ac0d5276defa78c1bf66034c6cca717d74
Reviewed-on: https://webrtc-review.googlesource.com/4740
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20041}
2017-09-29 12:54:17 +00:00
Karl Wiberg
c856dc2b6b Convert PayloadUnion from a union to a class, step 2
Stop using PayloadUnion's public member variables, since a future CL
will make them private.

BUG=webrtc:8159

Change-Id: Ia3dada56be7ef00ed80f3733209b18c178a36561
Reviewed-on: https://webrtc-review.googlesource.com/4380
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20027}
2017-09-28 23:23:07 +00:00
Danil Chapovalov
a82fcd0fc8 Remove unused mocks of process thread
Bug: None
Change-Id: Ib671c45ce46f45f2ce3ba59b6c041bf2466ca88a
Reviewed-on: https://webrtc-review.googlesource.com/4240
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20010}
2017-09-28 07:57:28 +00:00
Edward Lemur
af8659a235 Rename test output to test artifacts.
On android, the flag to store the frame with the worst PSNR was called
'--test_artifacts_dir'.
I think test artifacts is a better name.

TBR=sprang@webrtc.org

Bug: chromium:745469
Change-Id: I358ea2985a1df2da12b81df173d74ac193556a49
Reviewed-on: https://webrtc-review.googlesource.com/4080
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20000}
2017-09-27 13:28:37 +00:00
philipel
48462b6ef7 Continuously request keyframes if decoding does not recover.
This is a workaround until downstream projects have been fixed.

BUG=webrtc:8220

Review-Url: https://codereview.webrtc.org/3017613002
Cr-Commit-Position: refs/heads/master@{#19966}
2017-09-26 09:54:58 +00:00
nisse
3b3622fafc Delete member VideoReceiveStream::Config::Rtp::ulpfec.
Replaced with scalars ulpfec_payload_type and red_payload_type.

In particular, ulpfec.red_rtx_payload_type, which duplicated info in
rtx_associated_payload_types, is deleted. This is a followup to cl
https://codereview.webrtc.org/3012963002.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/3019453002
Cr-Commit-Position: refs/heads/master@{#19965}
2017-09-26 09:49:21 +00:00
philipel
e21be1db4c Reland of Fix the video buffer size should take rtt into consideration (patchset #2 id:160001 of https://codereview.chromium.org/3002033002/ )
Reason for revert:
Fixes has landed.

Original issue's description:
> Revert of Fix the video buffer size should take rtt into consideration (patchset #3 id:40001 of https://codereview.chromium.org/2980413002/ )
>
> Reason for revert:
> We are not certain this is the behavior we want.
>
> Original issue's description:
> > Fix the video buffer size should take rtt into consideration
> >
> > BUG=webrtc:8010
> >
> > Review-Url: https://codereview.webrtc.org/2980413002
> > Cr-Commit-Position: refs/heads/master@{#19285}
> > Committed: f1e08d0b58
>
> TBR=sprang@webrtc.org,gustavogb@gmail.com
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:8010
>
> Review-Url: https://codereview.webrtc.org/3002033002
> Cr-Commit-Position: refs/heads/master@{#19442}
> Committed: bdbc8895f3

TBR=sprang@webrtc.org,gustavogb@gmail.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8010

Review-Url: https://codereview.webrtc.org/3016633002
Cr-Commit-Position: refs/heads/master@{#19944}
2017-09-25 13:37:12 +00:00
Niels Möller
b0573bca16 Reorganize config of RTP header extensions for video receive streams.
Bug: webrtc:6847
Change-Id: Iae2386e55520601883379fc7802a5c5246be935e
Reviewed-on: https://webrtc-review.googlesource.com/2001
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19943}
2017-09-25 11:51:20 +00:00
brandtr
2c30120fac Revert of Add full stack tests for MediaCodec. (patchset #10 id:180001 of https://codereview.webrtc.org/3005253002/ )
Reason for revert:
Breaks KitKat/Lollipop perf bots.

Original issue's description:
> Add full stack tests for MediaCodec encoder.
>
> * Add audio_ prefix to CallTest::{en,de}coder_factory_.
> * Let VideoQualityTest only instantiate encoders using encoder factories.
> * Add HW encoder factories to VideoQualityTest.
> * Add full stack tests:
>   - sqcif7 at  30 kbps: MediaCodec and libvpx.
>   - 240p10 at 100 kbps: MediaCodec, libvpx, and MediaCodec+libvpx.
>
> BUG=webrtc:8219
>
> Review-Url: https://codereview.webrtc.org/3005253002
> Cr-Commit-Position: refs/heads/master@{#19923}
> Committed: https://webrtc.googlesource.com/src/+/2cefac6c1685abfcd7b90fdef8e926f1c2b79bfa

TBR=sprang@webrtc.org,asapersson@webrtc.org,kjellander@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:8219

Review-Url: https://codereview.webrtc.org/3016593002
Cr-Commit-Position: refs/heads/master@{#19926}
2017-09-22 11:30:08 +00:00
brandtr
2cefac6c16 Add full stack tests for MediaCodec encoder.
* Add audio_ prefix to CallTest::{en,de}coder_factory_.
* Let VideoQualityTest only instantiate encoders using encoder factories.
* Add HW encoder factories to VideoQualityTest.
* Add full stack tests:
  - sqcif7 at  30 kbps: MediaCodec and libvpx.
  - 240p10 at 100 kbps: MediaCodec, libvpx, and MediaCodec+libvpx.

BUG=webrtc:8219

Review-Url: https://codereview.webrtc.org/3005253002
Cr-Commit-Position: refs/heads/master@{#19923}
2017-09-22 07:46:25 +00:00
brandtr
7cd28b9172 Set protected_by_flexfec flag properly in tests.
BUG=none

Review-Url: https://codereview.webrtc.org/3010003002
Cr-Commit-Position: refs/heads/master@{#19921}
2017-09-22 07:26:25 +00:00
Karl Wiberg
73b60b82ee Remove the redundant method GetPayloadSpecifics
It's in the way of a refactoring.

Also change PayloadTypeToPayload---the method all callers can use instead---to return Optional<Payload> instead of const Payload* (for thread safety reasons: an object that protects itself with a mutex shouldn't be handing out pointers to parts of itself). 

BUG=webrtc:8159

Change-Id: I7ef0d545077ffdea016b309f2165e3c4955a2928
Reviewed-on: https://webrtc-review.googlesource.com/2360
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19917}
2017-09-21 20:19:55 +00:00
asapersson
8d75ac7e3f Add stats for forced software encoder fallback for VP8.
Stats added for number of forced SW fallback changes per minute and percentage of time fallback is enabled for sent video streams:

- "WebRTC.Video.Encoder.ForcedSwFallbackChangesPerMinute.Vp8"
- "WebRTC.Video.Encoder.ForcedSwFallbackTimeInPercent.Vp8"

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3012863002
Cr-Commit-Position: refs/heads/master@{#19862}
2017-09-15 13:41:15 +00:00
Mirko Bonadei
7120742701 Adding NOLINT for typedefs.h and common_types.h
Now that we have moved WebRTC from src/webrtc to src/, common_types.h
and typedefs.h are triggering a cpplint error.

The cpplint complaint is:
Include the directory when naming .h files  [build/include] [4]

This CL disables the error but we have to remove these two headers
from the root directory.

NOPRESUBMIT=true

Bug: webrtc:5876
Change-Id: I08e1b69aadcc4b28ab83bf25e3819d135d41d333
Reviewed-on: https://webrtc-review.googlesource.com/1577
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@google.com>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19859}
2017-09-15 13:03:51 +00:00
oprypin
743117f304 Disable FullStackTest.LargeRoomVP8_*thumb on iOS
It fails for the same reason as on Android

BUG=webrtc:7301

Review-Url: https://codereview.webrtc.org/3017473002
Cr-Commit-Position: refs/heads/master@{#19857}
2017-09-15 12:24:24 +00:00
Mirko Bonadei
92ea95e34a Fixing WebRTC after moving from src/webrtc to src/
In https://webrtc-review.googlesource.com/c/src/+/1560 we moved WebRTC
from src/webrtc to src/ (in order to preserve an healthy git history).
This CL takes care of fixing header guards, #include paths, etc...

NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
TBR=tommi@webrtc.org


Bug: chromium:611808
Change-Id: Iea91618212bee0af16aa3f05071eab8f93706578
Reviewed-on: https://webrtc-review.googlesource.com/1561
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19846}
2017-09-15 05:02:56 +00:00
Mirko Bonadei
bb547203bf Moving src/webrtc into src/.
In order to eliminate the WebRTC Subtree mirror in Chromium, 
WebRTC is moving the content of the src/webrtc directory up
to the src/ directory.

NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
TBR=tommi@webrtc.org

Bug: chromium:611808
Change-Id: Iac59c5b51b950f174119565bac87955a7994bc38
Reviewed-on: https://webrtc-review.googlesource.com/1560
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19845}
2017-09-15 04:25:06 +00:00