349 Commits

Author SHA1 Message Date
Danil Chapovalov
e0a524b5e0 Add default constructor to relative units types
0 is natural default value for types that can be accumulated
Having default constructor simplify usage of these types in templated code.

Bug: None
Change-Id: If005c69018a2a11011bc789502fdbc600cad3278
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/369440
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43460}
2024-11-26 17:59:08 +00:00
Dor Hen
049b43bd02 [reland] Comment unused variables in implemented functions
Compiling webrtc with `-Werror=unused-parameters` is failling duo to
those parameters.
Also, it shouldn't harm us to put those in comment for code readability as
well.

NOTE: This time I made sure to iterate over the C files in the
audio_processing folder and compile them using gcc.
On the original CL that was reverted - that failed with the same error
Danil mentioned. This time it seems fine.
I'll make sure to run the same script on the rest of my CLs for sanity

Bug: webrtc:370878648
Change-Id: I83cea3a08777e21d26a95bcad503a2d1b74566eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364537
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Dor Hen <dorhen@meta.com>
Cr-Commit-Position: refs/heads/main@{#43249}
2024-10-16 11:40:33 +00:00
Olov Brändström
fea3280c13 update format of recently added TODOs.
Some TODOs with an old from where added in https://webrtc-review.googlesource.com/c/src/+/363946.

This CL updates the TODO comments to the current form.

Bug: None
Change-Id: Id61dca5a0f4d705f4dfe74f6523dae3e357d49ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/365140
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Olov Brändström <brandstrom@google.com>
Cr-Commit-Position: refs/heads/main@{#43209}
2024-10-09 18:34:03 +00:00
Danil Chapovalov
678607501c Revert "Comment unused variables in implemented functions"
This reverts commit 05043e1cef47f33e81bc7ba83b4cc2c407111397.

Reason for revert: breaks compilation of .c files

Original change's description:
> Comment unused variables in implemented functions
>
> Compiling webrtc with `-Werror=unused-parameters` is failling duo to
> those parameters.
> Also, it shouldn't harm us to put those in comment for code readability as
> well.
>
> Bug: webrtc:370878648
> Change-Id: I0ab2eafd26e46312e4595f302b92006c9e23d5d2
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364340
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#43157}

Bug: webrtc:370878648
Change-Id: I4ea50baa2c3d0d162759c8255171e95c6199ed26
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364580
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Owners-Override: Danil Chapovalov <danilchap@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43162}
2024-10-03 11:51:29 +00:00
Dor Hen
05043e1cef Comment unused variables in implemented functions
Compiling webrtc with `-Werror=unused-parameters` is failling duo to
those parameters.
Also, it shouldn't harm us to put those in comment for code readability as
well.

Bug: webrtc:370878648
Change-Id: I0ab2eafd26e46312e4595f302b92006c9e23d5d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/364340
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43157}
2024-10-03 10:36:46 +00:00
Olov Brändström
4baeed3b97 Use environment monotonic timestamps (i.e. not UTC) in RTCStats.
Add media config for using environment monotonic timestamps (i.e. not UTC) in RTCStats constructor, and implemented the usage of the flag.

Bug: chromium:369369568
Change-Id: Ia93d048742c28af201164fe7b2152b791bb6d0b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/363946
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Olov Brändström <brandstrom@google.com>
Cr-Commit-Position: refs/heads/main@{#43156}
2024-10-03 09:07:17 +00:00
Danil Chapovalov
8d4638f985 Delete deprecated variant of ReceiveStatistics::SetMaxReorderingThreshold
Fixed: webrtc:42220729
Change-Id: I87c08769d33746e40dcdbf213096fc9732f82a07
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/363962
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43095}
2024-09-27 14:43:42 +00:00
Danil Chapovalov
e922cd1262 Use Environment instead of Clock in ModuleRtpRtcp and its RTP subcomponents
Bug: webrtc:362762208
Change-Id: I35af5cf3ed48e2c738c12df2ed9117a640ed0ff7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361720
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42966}
2024-09-05 15:58:43 +00:00
Florent Castelli
8037fc6ffa Migrate absl::optional to std::optional
Bug: webrtc:342905193
No-Try: True
Change-Id: Icc968be43b8830038ea9a1f5f604307220457807
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361021
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42911}
2024-09-02 12:16:47 +00:00
Danil Chapovalov
164b3b3fce Introduce ModuleRtpRtcpImpl factory that accepts Environment
ModuleRtpRtcpImpl and ModuleRtpRtcpImpl2 share certain components, RtcpReceiver in particular.
To always have Environment in RtcpReceiver both legacy and new module need to propagate it.

No-Iwyu: suggests too many changes, better address them separately.
Bug: webrtc:362762208
Change-Id: I2c885f57e24f135229fb7cd9781126d663017b3d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361142
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42908}
2024-09-02 10:24:12 +00:00
Fanny Linderborg
fd6f4b4e51 Add the corruption detection extension to RTPExtensionType
Bug: webrtc:358039777
Change-Id: Ib825593e5c37beb0cba3190c1d3bdcf1c9d957cf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360144
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42861}
2024-08-27 08:27:20 +00:00
Fanny Linderborg
c03edf6096 Add missing includes and remove unused includes
Unused includes in header files are not removed.

Bug: webrtc:358039777
Change-Id: I4586971cd33ff76cac2f869bcdfb063c31e9a7a5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360160
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Fanny Linderborg <linderborg@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42826}
2024-08-22 08:53:12 +00:00
Denis Genestier
5e70fd3d8f fix of a compilation error in Visual Studio 2022 due to a warning C4244.
Bug: webrtc:353294048
Change-Id: I8c40a9df06464b9ffd7112fd7d070dee2d0e5ca4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360140
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42825}
2024-08-22 08:51:50 +00:00
Xinyu Ma
075349f039 Pass Environment into FlexfecSender
To make it available for FEC to use field trials in follow ups

Bug: webrtc:355577231
Change-Id: Ie0b7761915696e6ee7453df3d0531b0f7ad30ee1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/358240
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42732}
2024-08-06 17:10:12 +00:00
Florent Castelli
916bf2f260 Remove usage of old copy of rtp_packet_sender.h
Bug: chromium:345101934
Change-Id: I9123dbd39f5d1e34dd1874b840ab6f34f34849a7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357863
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42725}
2024-08-05 13:09:18 +00:00
Florent Castelli
5b9d4adfc8 Move rtp_packet_sender.h to api/
Old copy of the header and some previous usage is kept around
for compatibility with downstream projects for now.

Bug: chromium:345101934
Change-Id: Icbe42fb8450d3a4115799438d209da4eda127bab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357441
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42681}
2024-07-29 11:40:45 +00:00
Per K
363917a1dd Add support for receiving CongestionControlFeedback to RTCPReceiver
Support for parsing the packet is gated behind field trial
WebRTC-RFC8888CongestionControlFeedback/Enabled/.

Bug: webrtc:15368
Change-Id: Ib4478e821fe5a43510af5131543e7861cf54d901
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/348664
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42215}
2024-05-02 21:01:38 +00:00
Per K
ff7a557f2e Add original SSRC to RtpPacketToSend and implement RtpPacketSendInfo::From method.
The purpose is to be able to create a RtpPacketSendInfo from Pacing and  RtpPacketSendInfo only.
This allow further refactoring where we directly in PacketRouter can notify BWE and early loss detection that a packet will be sent.
RtpPacketSendInfo::From is mostly added to be able to test conversion.


Bug: webrtc:15368
Change-Id: I5ebe2dc91d2eedf2c86e62c3f9738437082a49e4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/343766
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41961}
2024-03-25 10:20:44 +00:00
Danil Chapovalov
3aa951a7c6 Delete SendDelayObserver interface
send delay is now measured through  SendPacketObserver interface

Bug: None
Change-Id: I0dc3de1522e2824d9431d7e3a3dc524588687dda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/319500
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40755}
2023-09-15 14:59:23 +00:00
Danil Chapovalov
378fb28621 Propagate OnSendPacket even if transport sequence number is not registered
To allow to calculate send delay with that callback

Bug: None
Change-Id: I0fe1ffd42b62c99bd01670e583584511c34277db
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/319563
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40731}
2023-09-11 13:16:30 +00:00
Danil Chapovalov
950e231b63 In RtpRtcp use BitrateTracker instead of RateStatistics to measure bitrate
BitrateTracker uses RateStatistics underneath, thus algorithm is the same,
but it provides Timestamp/TimeDelta friendly interface

Bug: webrtc:13757
Change-Id: I9f2fcb3d498b2a137b531b94b660d15aa273c4bf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/312600
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40465}
2023-07-24 14:57:29 +00:00
Danil Chapovalov
8beb6314ef Pass and process capture time through SendPacketObserver with Timestamp type
Bug: webrtc:13757
Change-Id: Icc9f650590640f402ca9004171bbddaf918c78d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308682
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40339}
2023-06-22 17:16:41 +00:00
Danil Chapovalov
54e95bc562 Propagate time of the last received packet with Timestamp type
Bug: webrtc:13757
Change-Id: I446fc10ad6a90ab9ecaac337b9f2ad4ccad37cbd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/307020
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40211}
2023-06-02 14:29:19 +00:00
Danil Chapovalov
d8098fb5fd Delete struct RTCPReportBlock as no longer used
All usage was updated to class ReportBlockData

Bug: None
Change-Id: I9f39374680bbbc821d68ba3c556ec0c3119bb844
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/306980
Commit-Queue: Erik Språng <sprang@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40180}
2023-05-30 11:07:09 +00:00
Danil Chapovalov
0f1a2c5d97 Change StreamDataCounters to use Timestamp instead of int64_t
Bug: webrtc:13757
Change-Id: I11151682a07a2d95389f81cbd7f47f26ad8e67ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/306700
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40155}
2023-05-26 11:35:57 +00:00
Danil Chapovalov
98f47a300b Delete redundant member StreamDataCounters::last_packet_received_time
StreamDataCounters is used both for send-side and receive side stats,
but last_packet_received_time is only used by receive statistician where
it duplicates another member

Bug: webrtc:13757
Change-Id: Iae6a65aba497e577ee3255e40623362e8c4c8a72
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/306183
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40119}
2023-05-23 13:09:31 +00:00
Danil Chapovalov
434deda6fa Cleanup RtcpReceiver from using RtcpBandwidthObser callback interface
All known users were updated to NetworkLinkRtcpObserver interface instead

Bug: webrtc:13757
Change-Id: I1f2a7be0c9192890b38a811a739ddd666b0985f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/306161
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40113}
2023-05-23 08:18:01 +00:00
Danil Chapovalov
718601a1f8 Cleanup RtcpReceiver from passing TransportFeedback via older interface
Bug: webrtc:8239
Change-Id: Ibc289627cc89bda86f3e2c7c0c11d0ec2ae95087
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/305783
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40102}
2023-05-22 10:14:04 +00:00
Alfred E. Heggestad
ad7792b1a5 rtp_rtcp: fix small typo in enum class RtpPacketMediaType
Bug: None
Change-Id: I309959c1457a1ecefa2b865812bd26cb14c25306
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304900
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40051}
2023-05-12 09:17:16 +00:00
Danil Chapovalov
52518633fb In RtcpReceiver implement calling NetworkLinkRtcpObserver interface
With intent to fully replace RtcpBandwidthObserver interface
and half of the TransportFeedbackObserver interface

RtcpBandwidthObserver interfaces passed bitrate and time variables as
raw ints, NetworkLinkRtcpObserver uses more expressive types.

Bug: webrtc:13757, webrtc:8239
Change-Id: I0a8c8de626fbe0c190a0a1a9f6733d863494401c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304700
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40043}
2023-05-10 18:58:31 +00:00
Danil Chapovalov
edb9cf3de0 Cleanup ReportBlockData accessors
Remove deprecated accessors returning time as raw int
Add setters for all fields to simplify usage of this class in tests
Remove unused min/max RTT fields

Bug: webrtc:13757
Change-Id: Ia8966975c15b9a930f54b4db0fc75f7002dcffe1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304461
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40013}
2023-05-08 16:46:40 +00:00
Danil Chapovalov
2eb9dfbedc Remove dependency from ReportBlockData on legacy RTCPReportBlock
Bug: None
Change-Id: I33a2e7aedf0d7825bc046f576a6594ed893e5554
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304287
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40008}
2023-05-08 11:30:35 +00:00
Danil Chapovalov
a9b9d4e3d0 Delete audio specific struct ReportBlock in favor of ReportBlockData
ReportBlockData class is better documented and has wider usage.

Bug: webrtc:13757
Change-Id: Ie5f2275f2f0236267172e6dd1ce5c2dfb2193ba0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/304101
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39980}
2023-05-03 16:27:31 +00:00
Danil Chapovalov
d3eddff30c In ReportBlockData expose RTCP report block properties directly
These accessors would allow to deprecated report_block() accessor and
then would allow to remove redundant RTCPReportBlock and ReportBlock types converging on single
ReportBlockData type to pass that information across WebRTC components

helpers like fraction_lost() and jitter() would also allow to unify conversion of the rtp specific format into more common way of represent such information

Bug: None
Change-Id: I3c97f96affcf83b529095899bd63af007f8b4014
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/303880
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39975}
2023-05-03 09:25:23 +00:00
Danil Chapovalov
9ecc76e15b Use Timestamp type in RtpState struct
Bug: webrtc:13757
Change-Id: I7f8fc1a9c4cbf464b3969c4754ce5aa9c5b5f076
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/303500
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39960}
2023-04-27 11:24:38 +00:00
Danil Chapovalov
52275845a0 Use Timestamp type instead of int64_t in Flexfec classes
Bug: webrtc:13757
Change-Id: Ideafea65adb827b5457de22a04e3235cda3ffd5c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301260
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39948}
2023-04-25 10:53:08 +00:00
Danil Chapovalov
95e7a0398c Delete clamping cumulative loss in ReportBlocks on receiving side
Bug: webrtc:9598
Change-Id: I8a54af88708e5d96e46ba67ab0ef2e0e59fe0b86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300941
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39887}
2023-04-18 13:43:27 +00:00
Danil Chapovalov
ec2670e631 Cleanup ReportBlockData class: use Timestamp and TimeDelta
Bug: webrtc:13757
Change-Id: Ic3ddb05413f58cedd12bf0f32c852befb9bd40f4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300940
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39841}
2023-04-13 08:51:12 +00:00
Philipp Hancke
b3e5969658 stats: use uint64_t for RTCSentRtpStreamStats.packetsSent
spec update from https://github.com/w3c/webrtc-stats/pull/744

BUG=webrtc:14989

Change-Id: I9d0adcf951501bc281054c77bb6bc03e47192523
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/295505
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#39575}
2023-03-16 06:46:19 +00:00
Per K
83c357f70a Remove deprecated RecoveredPacketReceiver::OnRecoveredPacket signature
Bug: webrtc:7135, webrtc:14795
Change-Id: Ib2f434b59542d6d8a2b8a287047417b784187602
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290567
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39049}
2023-01-09 21:36:45 +00:00
Danil Chapovalov
ef90964b83 Introduce new enum name for the dependency descriptor extension
Dependency descriptor has finalized spec and thus deserve a dedicated name.

Bug: webrtc:10342
Change-Id: I2c2f1d52c82cfff8372cd4092dfcc47a083a6009
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/290402
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38973}
2023-01-02 14:26:28 +00:00
Per K
5e5d017c2b Change RecoveredPacket::OnRecoveredPacket to produce webrtc::RtpPacketReceived
Instead of getting header extension mapping from a receiver object, get the mapping from the received packet.

The purpose is to be able to remove extension information from webrtc/call/receive_stream.h.
Header extensions are negotiated per mid, not per receive stream.
The goal is to reduce the number of places where packets are parsed and demuxed.

Bug: webrtc:7135, webrtc:14795
Change-Id: I8944bc06a11dc572d9e14e7d7ee446a841096295
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/288968
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38944}
2022-12-22 14:04:21 +00:00
Erik Språng
1b11b58b56 Remove pending packets from the pacer when an RTP module is removed.
This CL adds functionality to remove packets matching a given SSRC from
the pacer queue, and calls that with any SSRCs used by an RTP module
when that module is removed.

Bug: chromium:1395081
Change-Id: I13c0285ddca600e784ad04a806727a508ede6dcc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/287124
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38880}
2022-12-13 11:32:58 +00:00
Taylor Brandstetter
e7e274f6da Removing unnecessary =default constructor for RtpPacketSendInfo.
This =default declaration has no effect other than to break designated
initialization in C++20 by making the type no longer an aggregate.

Bug: None
Change-Id: I20a4c285b7cbfed074291b9ee27c03aa29bada32
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281960
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38573}
2022-11-07 22:43:18 +00:00
Florent Castelli
a30f8829ff Properly mark RtpRtcp deprecated
The clang pragma have been added to ensure we can still test the code
until usage is gone, and that we can still have the one implementation
compiling without itself tripping on the deprecation errors.

Users of the code will have deprecation warnings or error as intended.

Bug: webrtc:14617
Change-Id: I21dae57c669557d4d218c235c811174a477be080
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281221
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38514}
2022-10-31 18:26:53 +00:00
Florent Castelli
7d3e5a03eb Remove unused functions from RtpRtcp
Bug: webrtc:14617
Change-Id: I7a77d3b5e0426f2bb43fd4732189f2e39eaf8ed2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281186
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38513}
2022-10-31 17:47:33 +00:00
Henrik Boström
d81992197c [Stats] Update totalPacketSendDelay to only cover time in pacer queue.
This metric was always supposed to be the spec's answer to
googBucketDelay, and is defined as "The total number of seconds that
packets have spent buffered locally before being transmitted onto the
network." But our implementation measured the time between capture and
send, including encode time. This is incorrect and yields a much larger
value than expected.

This CL updated the metric to do what the spec says. Implementation-wise
we measure the time between pushing and popping each packet from the
queue (in modules/pacing/prioritized_packet_queue.cc).

The spec says to increment the delay counter at the same time as we
increment the packet counter in order for the app to be able to do
"delta totalPacketSendDelay / delta packetSent". For this reason,
`total_packet_delay` is added to RtpPacketCounter. (Previously, the
two counters were incremented on different threads and observers.)

Running Google Meet on a good network, I could observe a 2-3 ms average
send delay per packet with this implementation compared to 20-30 ms
with the old implementation. See b/137014977#comment170 for comparison
with googBucketDelay which is a little bit different by design -
totalPacketSendDelay is clearly better than googBucketDelay.

Since none of this depend on the media kind, we can wire up this metric
for audio as well in a follow-up:
https://webrtc-review.googlesource.com/c/src/+/280523

Bug: webrtc:14593
Change-Id: If8fcd82fee74030d0923ee5df2c2aea2264600d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280443
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38480}
2022-10-26 21:29:20 +00:00
Tomas Lundqvist
b50599b7b5 Expose jitter in time in addition to in samples.
RFC 3550 specifies samples to be the unit while https://w3c.github.io/webrtc-stats/#receivedrtpstats-dict* specifies time. This avoids the need to convert to time in code that reads the jitter value from RtpReceiveStats.

Bug: webrtc:13757
Change-Id: I972996971c58b686babd621ff4e0f5790fdf2cb1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279281
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Lundqvist <tomasl@google.com>
Cr-Commit-Position: refs/heads/main@{#38419}
2022-10-17 16:27:57 +00:00
Rasmus Brandt
916648107b Generalize MovingMedianFilter to MovingPercentileFilter
* Make `percentile` configurable and rename class.
* Introduce convenience type `MovingMedianFilter` that
  maintains the behaviour of the old class with that name.
* Move home grown moving 95th percentile filter in
  `JitterEstimator` to this new utility class.

Bug: webrtc:14151
Change-Id: I17d525b6e0bc98c28568c7dfe94b72eeab4a1ca2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/275311
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38082}
2022-09-14 15:32:06 +00:00
Tommi
e488a87753 Remove UlpfecReceiver virtual interface.
There's only one implementation.

Bug: none
Change-Id: I204c23e7f87102909fcf6ee8632ceeed84e901a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271026
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37725}
2022-08-09 18:31:22 +00:00