1872 Commits

Author SHA1 Message Date
Per K
056782c4b5 Implement Socket::RecvFrom(ReceiveBuffer& buffer) in PhysicalSocketServer
And RTC_CHECK(NOTREACHED) Socket::RecvFrom(void* pv..)

This cl also change usage of PhysicalSocket to use PhysicalSocket::RecvFrom(ReceivedBuffer&) in Nat and tests.
Note that Socket::RecvFrom(ReceiveBuffer& buffer) is already used in AsyncUdpSocket.( https://webrtc-review.googlesource.com/c/src/+/332200)
AsyncTCPSocket uses Socket::Recv(). Therefore, there should be no production usage left of Socket::RecvFrom(void* pv..) in open source webrtc.

Follow up cls should remove usage of Socket::RecvFrom(void* pv..) in implementations of rtc:AsyncSocketAdapter such as FirewallSocketAdapter.

Change-Id: I597dc32b14be98e954a3dc419723f043e8a7e19e

Bug: webrtc:15368
Change-Id: I597dc32b14be98e954a3dc419723f043e8a7e19e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/332341
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41635}
2024-01-30 16:15:04 +00:00
Danil Chapovalov
0206a971f5 Uninherit TaskQueueForTest from legacy rtc::TaskQueue
rtc::TaskQueue is not used in any api and thus TaskQueueForTest no longer need to provide implementation for it.
TaskQueueForTest still helpful for code that expects TaskQueueBase.

Bug: webrtc:14169
Change-Id: I64ee2691ddeb0ff3a72cd4dd192730c06260f61f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335323
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41577}
2024-01-19 15:28:49 +00:00
Evan Shrubsole
d7478a8453 Reland "Remove FLOW trace events as these are unused and don't work"
This is a reland of commit 680025a612b93d91a5a16bb2580352a5ac1d4a9b

Reland: Upstream fixed

Original change's description:
> Remove FLOW trace events as these are unused and don't work
>
> Fixing this would require a new bridge function to the legacy Chrome
> event system, or preferably migrating to the typed Perfetto SDK.
>
> Bug: webrtc:14822
> Change-Id: I7a39ed177d436429321de2daee569c496604aae3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335043
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Cr-Commit-Position: refs/heads/main@{#41557}

Bug: webrtc:14822
Change-Id: I761ea5fe30a13b764dc91510278df09403dde7b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335140
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/main@{#41572}
2024-01-19 12:22:29 +00:00
Henrik Boström
192c0628cb Revert "Remove FLOW trace events as these are unused and don't work"
This reverts commit 680025a612b93d91a5a16bb2580352a5ac1d4a9b.

Reason for revert: Breaks downstream project

Original change's description:
> Remove FLOW trace events as these are unused and don't work
>
> Fixing this would require a new bridge function to the legacy Chrome
> event system, or preferably migrating to the typed Perfetto SDK.
>
> Bug: webrtc:14822
> Change-Id: I7a39ed177d436429321de2daee569c496604aae3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335043
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Evan Shrubsole <eshr@google.com>
> Cr-Commit-Position: refs/heads/main@{#41557}

Bug: webrtc:14822
Change-Id: I1c374e8c22740fda376893613a55e5c018553761
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335100
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41558}
2024-01-18 11:53:42 +00:00
Evan Shrubsole
680025a612 Remove FLOW trace events as these are unused and don't work
Fixing this would require a new bridge function to the legacy Chrome
event system, or preferably migrating to the typed Perfetto SDK.

Bug: webrtc:14822
Change-Id: I7a39ed177d436429321de2daee569c496604aae3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335043
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Cr-Commit-Position: refs/heads/main@{#41557}
2024-01-18 11:42:03 +00:00
Tommi
eb4a3140fd Add ReadStringView() to ByteBufferReader
ReadStringView() is a simple alternative to ReadString() but doesn't
involve a heap allocation for a new std::string.
Using the new methods in one place to start with.

Bug: none
Change-Id: I1100c6d258ffb4c8a31a46ba88a7f8bff9cf35cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/332120
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41533}
2024-01-16 09:10:09 +00:00
Philipp Hancke
5aaa9ed41e Remove custom AssertStartsWith and AssertStringContains matchers
in favor of stock StartsWith and HasSubstr matchers provided by gmock.

BUG=None

Change-Id: Ib7e9a0ac73d506c349b8ec102dd4236767077d61
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334460
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41531}
2024-01-16 08:30:37 +00:00
Per K
4e3b101bc9 Export rtc::Socket for Chromium component builds
As of https://webrtc-review.googlesource.com/c/src/+/332200, socket is
no longer pure virtual and needs to be exported for Chromium component
build tests.

Bug: webrtc:15368
Change-Id: I3d2fcd329bc859d07106ae740eb2791eccaea1f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334060
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41504}
2024-01-11 10:24:03 +00:00
Per K
f81af2f8fd Introduce Socket::ReceiveBuffer and RecvFrom(ReceiveBuffer& buffer)
Intention is to gradually stop using raw pointers and make it easier to introduce
new meta data types.
A  default implementation is added that  use existing int RecvFrom(void*
pv,..)
In this cl, async_udp_socket.cc use the new method. There should be no
behaviour change.

Bug: webrtc:15368
Change-Id: I8f9773a65d24ab5bbac3534dcc37ee1ed874a2c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/332200
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41497}
2024-01-10 09:52:57 +00:00
Qiu Jianlin
7121680f38 Expose WebRTC H.264 SPS parser APIs.
Blink RTC video encoder will need this simplified parser to replace
current full H.264 SPS parser, to reduce parsing cost for extracting
frame size from compressed H.264 bitstream.

Bug: b:309132190
Change-Id: I6863f10bd139766d47fe4bff89143c1a91a09287
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/332468
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Jianlin Qiu <jianlin.qiu@intel.com>
Cr-Commit-Position: refs/heads/main@{#41466}
2024-01-03 10:48:51 +00:00
Harald Alvestrand
5692649b9b Revert^2 "Remove deprecated ByteBufferReader and ByteBufferWriter functions"
This reverts commit ca58f0eb9da32023752c978ac81f4df39a38e721.

Reason for revert: Webkit Linux Leak bot seems flaky

Original change's description:
> Revert "Remove deprecated ByteBufferReader and ByteBufferWriter functions"
>
> This reverts commit e0e03ba73a0859924a55c4dfa4ce20ff80820f0b.
>
> Reason for revert: Speculative rollback (breaks WebKit Linux Leak)
>
> Original change's description:
> > Remove deprecated ByteBufferReader and ByteBufferWriter functions
> >
> > This completes the conversion of ByteBufferReader and ByteBufferWriter
> > to uint8_t.
> >
> > No-Try: True
> > Bug: webrtc:15661
> > Change-Id: I4152a8a4fd2462282d4107b3c2eed19acc8b29b0
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331640
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#41403}
>
> Bug: webrtc:15661, chromium:1513059
> Change-Id: I3938b8209f5cc1596307deadac157a8f6c2b2253
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331940
> Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41411}

Bug: webrtc:15661, chromium:1513059
Change-Id: I702c695ba0f83bba5721b18ebd994435a8932c0a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331980
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41419}
2023-12-20 07:48:54 +00:00
Mirko Bonadei
ca58f0eb9d Revert "Remove deprecated ByteBufferReader and ByteBufferWriter functions"
This reverts commit e0e03ba73a0859924a55c4dfa4ce20ff80820f0b.

Reason for revert: Speculative rollback (breaks WebKit Linux Leak)

Original change's description:
> Remove deprecated ByteBufferReader and ByteBufferWriter functions
>
> This completes the conversion of ByteBufferReader and ByteBufferWriter
> to uint8_t.
>
> No-Try: True
> Bug: webrtc:15661
> Change-Id: I4152a8a4fd2462282d4107b3c2eed19acc8b29b0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331640
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41403}

Bug: webrtc:15661, chromium:1513059
Change-Id: I3938b8209f5cc1596307deadac157a8f6c2b2253
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331940
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41411}
2023-12-19 08:20:40 +00:00
Harald Alvestrand
e0e03ba73a Remove deprecated ByteBufferReader and ByteBufferWriter functions
This completes the conversion of ByteBufferReader and ByteBufferWriter
to uint8_t.

No-Try: True
Bug: webrtc:15661
Change-Id: I4152a8a4fd2462282d4107b3c2eed19acc8b29b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331640
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41403}
2023-12-18 13:41:44 +00:00
Harald Alvestrand
f0ddae8c22 Convert ByteBufferWriter to be type uint8_t
and make follow-on changes.

Bug: webrtc:15665
Change-Id: Ice646f88ba5a09d6a8d9ce70415d8a14d7050d3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329781
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41393}
2023-12-15 12:27:50 +00:00
Per K
c30fb63f95 Change visiblity of rtc::ReceivedPacket to be visible
Since sockets are visible and now require the use of rtc::ReceivedPacket, it make sense
if the target is also visible.

Change-Id: I32c522b558d8058e29a5335f49e40a6122916102
Bug: webrtc:11943
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331600
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41392}
2023-12-15 09:19:44 +00:00
Per K
c202f9635e Remove AsyncPacketSocket::SignalReadPacket
Bug: webrtc:11943
Change-Id: I064a5252ed08e7d06695d03364326fa7f4c562a7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331301
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41385}
2023-12-14 14:31:06 +00:00
Per K
a8cd2babcd Refactor NatServer to use rtc::ReceivedPackets
Instead of using raw pointers.
Also, ensure callbacks are registered on the correct thread.
Nat servers are test only code.

Bug: webrtc:11943
Change-Id: Ib70a5966acb512f1a07212a07aaedab70aa20f9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331260
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@google.com>
Cr-Commit-Position: refs/heads/main@{#41372}
2023-12-13 09:40:59 +00:00
Harald Alvestrand
776fe6d923 Add tests for new ByteBufferWriter accessors (and fix bug)
Bug: webrtc:15665
Change-Id: Iedf39afcec52861b501b016a7abcf7b1bcfb770c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331060
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Sergey Sukhanov <sergeysu@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41361}
2023-12-12 10:12:43 +00:00
Harald Alvestrand
eb14497d7c Delete obsolete ByteBufferReader constructors
Bug: webrtc:15661
Change-Id: I9dcffad3ee092ffeac8506fcea02b8ce90d3afd7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329840
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41342}
2023-12-08 14:49:27 +00:00
Danil Chapovalov
f8e67ba680 Use propagated instead of global field trials for alr expriment
Bug: webrtc:10335
Change-Id: I52a286d38dadaac79afd55ebbe3c06e44a7e881b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/330360
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41333}
2023-12-07 09:47:30 +00:00
Harald Alvestrand
ece5cb8371 Add char-based accessor functions to ByteBufferWriter
These are added to ease the transition to uint8_t for downstream code.

Bug: webrtc:15665
Change-Id: I571805b93ddd19be6f6990ce34f5c248a57f36b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329763
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41315}
2023-12-04 21:39:13 +00:00
Harald Alvestrand
be02328f0e Redefine ByteBufferWriterT template to really use argument
Previously, ByteBufferWriterT could only be instantiated for "char",
due to using "char" internally. The rewrite extracts the inner type
from the BufferT parameter and uses that.

This is preparatory to changing its type to "uint8_t".

Bug: webrtc:15665
Change-Id: Ib771d37e3abb8261049c16122c6b43dcb561e9a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329680
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41306}
2023-12-04 11:51:18 +00:00
Harald Alvestrand
24510d43dc Delete deprecated AsyncResolver and related classes
To be submitted after downstream usage has been removed, but no earlier than December 1, 2023.

Bug: webrtc:12598
Change-Id: Id9acbac591c48c0c5883fe8f06cf6a68471b70f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/323004
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41290}
2023-11-30 15:36:55 +00:00
Per K
f99c355a75 Export rtc::ReceivedPacket
To ensure the class can be used by Chrome etc.

Bug: webrtc:11943
Change-Id: I54951b5a2005f0efbe2c9fcb58e67e4fe7508b3b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329020
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41268}
2023-11-29 08:09:43 +00:00
Per K
357947f2f0 Reapply "Refactor AsyncTcpSocket(s) to use rtc::ReceivedPackets"
This reverts commit 264547d084d8625c60a31b15843779173d3c95b8.

Refactor AsyncTcpSocket(s) to use rtc::ReceivedPackets

Patchset 1 contains original cl.
Newer patchsets contains fix of the problem from pathset 1.

Bug: webrtc:15368, webrtc:11943
Change-Id: Ib8c4c06daf502a5dec8c31beea78eacac8c3c644
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328820
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@google.com>
Cr-Commit-Position: refs/heads/main@{#41255}
2023-11-28 07:54:53 +00:00
Per Kjellander
264547d084 Revert "Refactor AsyncTcpSocket(s) to use rtc::ReceivedPackets"
This reverts commit 211daadb6658630346111c9a8ea8f67cba997952.

Reason for revert: AsyncStunTCPSocket::ProcessInput , Bug introduced, not reading length of each stun message in a tcp fetch

Original change's description:
> Refactor AsyncTcpSocket(s) to use rtc::ReceivedPackets
>
> Instead of using raw pointers.
>
> Bug: webrtc:15368, webrtc:11943
> Change-Id: Id28a0a4fc3d00680e972bd95e0c60344c7886892
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328500
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Per Kjellander <perkj@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41237}

Bug: webrtc:15368, webrtc:11943
Change-Id: Id15261579a61dd200e7c3b1a013877575b87db2e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328760
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41245}
2023-11-27 10:44:49 +00:00
Per K
211daadb66 Refactor AsyncTcpSocket(s) to use rtc::ReceivedPackets
Instead of using raw pointers.

Bug: webrtc:15368, webrtc:11943
Change-Id: Id28a0a4fc3d00680e972bd95e0c60344c7886892
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328500
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41237}
2023-11-25 08:55:59 +00:00
Danil Chapovalov
e0ec125dae Add CopyOnWriteBuffer::empty accessor
CopyOnWriteBuffer is a container-like type,
lack of empty accessor is often surprising.

Bug: None
Change-Id: I9db1e3837aa596810729e9bf92e366fbce3908d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328382
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41234}
2023-11-24 18:37:34 +00:00
Per K
14630a7e37 Use rtc::ReceivedPacket in Stun and TurnServer
StunServer is updated to ensure registring for receiving packet from the socket is happening on the same thread as where the packets are recevied.

Bug: webrtc:15368, webrtc:11943
Change-Id: I94cc3a47278d5489de7f170c8d43015d1551c437
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328120
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41219}
2023-11-23 10:40:56 +00:00
Harald Alvestrand
572502c2ab Deprecate char* functions on ByteBufferReader
Bug: webrtc:15661, webrtc:15665
Change-Id: Ia35b0092c219a89b5eba08d2e1a91be6e47dc746
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328000
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41210}
2023-11-22 11:46:25 +00:00
Michael Olbrich
a9d497b52d Video capture PipeWire: fix thread and lock annotations
There are two threads involved here, the thread that calls the API
functions and the pipwire main loop. Using one race checker for both is
wrong and triggers aborts.

Use a different race checker for all variables that are used by the
pipewire main loop or guarded against concurrent access with the
thread_loop_lock.

In one case, two RTC_CHECK_RUNS_SERIALIZED() checks are needed, so
enhance the macro to generate unique variable names.

Bug: webrtc:15181
Change-Id: Ib41514eb7aa98fe85d830461aa0c71e42ba821bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/326781
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41198}
2023-11-20 18:18:04 +00:00
Harald Alvestrand
f0907c6f5b Expunge some more "char" from ByteBufferReader
Bug: webrtc:15661
Change-Id: I620a5327ca64e89d7816a1ea6f69ad8363ff37e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327720
Auto-Submit: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41193}
2023-11-20 11:18:08 +00:00
Per K
cf2e08b798 Add ByteBufferReader constructor for ArrayView
Bug: webrtc:14870
Change-Id: I0643af4a44bb2bc26581df971221766316124996
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327520
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41182}
2023-11-17 12:07:05 +00:00
Per K
d07900c848 UDP socket and TCP socket use AsyncPacketSocket::NotifyPacketReceived
This is done instead of directly using AsyncPacketSocket::SignalReceived.


Bug: webrtc:15368, webrtc:11943
Change-Id: I5671e66b270355188b1252138eced8e6c78ba7ad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327521
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41180}
2023-11-17 11:26:53 +00:00
Harald Alvestrand
72defe459b Use uint8_t as inner type for rtc::ByteBufferReader
Bug: webrtc:15661
Change-Id: Iefca01c953c4e69bebb1eb14391d0cfa6c69846e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327581
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41177}
2023-11-17 06:27:12 +00:00
Sergey Silkin
ebc4d3edd5 Move StrJoin to rtc_base/strings
A similar function was defined in rtc_base/openssl_adapter. Moving it from net/dcsctp/common/ to rtc_base/strings/. I'm planning to use StrJoin in a video codec test (a follow-up change).

Bug: webrtc:14852
Change-Id: Ie657c03e7f9fb52c189c127af6f66ec505b512ae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327322
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41166}
2023-11-15 12:10:28 +00:00
Per K
4ac371883e AsyncPacketSocket::RegisterReceivedPacketCallback
This cl introduce RegisterReceivedPacketCallback and
DeregisterReceivedPacketCallback that will be used to replace AsyncPacketSocket::SignalReadPacket

A "proof of concept" cl is here: https://webrtc-review.googlesource.com/c/src/+/327324

Bug: webrtc:15368
Change-Id: I07e4f564dc8420d78e542991689778d8531225df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327325
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41164}
2023-11-15 11:17:53 +00:00
Philipp Hancke
e75cd0c704 Remove DTLS 1.0 legacy code
which has been enabled by default since M84. This was still available
under an enterprise policy which is gone since M121:
  https://chromiumdash.appspot.com/commit/39d28bb7657b482f1fdcab81ca88371d8914809b

BUG=webrtc:10261,chromium:1132854

Change-Id: Icd534342b60799b7862bc3e7edda6825de7ae976
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/317360
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41145}
2023-11-13 16:51:55 +00:00
Markus Handell
9c69c4625b Revert "Measure wall clock time of capture and encode processing."
This reverts commit 8039cdbe48f8c8bb91fa1761f807005a7b497196.

Reason for revert: remove functionality after measurement complete

Original change's description:
> Measure wall clock time of capture and encode processing.
>
> (NOTE: This and dependent CLs will be reverted in a few days after
> data collection from the field is complete.)
>
> This change introduces a new task queue concept, Voucher. They
> are associated with a currently running task tree. Whenever
> tasks are posted, the current voucher is inherited and set as
> current in the new task.
>
> The voucher exists for as long as there are direct and indirect
> tasks running that descend from the task where the voucher was
> created.
>
> Vouchers aggregate application-specific attachments, which perform
> logic unrelated to Voucher progression. This particular change adds
> an attachment that measures time from capture to all encode operations
> complete, and places it into the WebRTC.Video.CaptureToSendTimeMs UMA.
>
> An accompanying Chrome change crrev.com/c/4992282 ensures survival of
> vouchers across certain Mojo IPC.
>
> Bug: chromium:1498378
> Change-Id: I2a27800a4e5504f219d8b9d33c56a48904cf6dde
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325400
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Markus Handell <handellm@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41061}

Bug: chromium:1498378
Change-Id: I9503575fbc52f1946ca26fc3c17b623ea75cd3c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327023
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#41135}
2023-11-11 18:03:40 +00:00
Markus Handell
dd45ab650e Revert "Add RTC_EXPORT for Voucher::ScopedSetter and Voucher::Attachment."
This reverts commit 414ffac4b742dc3a1696deb3117ef1383fc8d9be.

Reason for revert: remove functionality after measurement complete

Original change's description:
> Add RTC_EXPORT for Voucher::ScopedSetter and Voucher::Attachment.
>
> Bug: chromium:1498378
> Change-Id: I606079411c71ac46cc5d261a86f6a11c473d1278
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325960
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41071}

Bug: chromium:1498378
Change-Id: If35641719a8bf01b045e10c707af809250665330
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327022
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41130}
2023-11-10 23:48:29 +00:00
Per K
698e0bec17 Add Connection::OnReadPacket(const rtc::PacketReceived&)
Deprecate old version but keep it for the time being.

Bug: webrtc:15368
Change-Id: Icbd2078a00d877ff948a2441c2027a12c85d4f2e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/326104
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41112}
2023-11-09 09:15:02 +00:00
Harald Alvestrand
97f3fb08a0 Assert some pointers that might be flaky.
Speculative fix; replaces nullpointer following with test failure.

Bug: b/307520538
Change-Id: I294d5747c852a8cde43a0acad973dca12712c69e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/326000
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41077}
2023-11-03 14:47:46 +00:00
Markus Handell
414ffac4b7 Add RTC_EXPORT for Voucher::ScopedSetter and Voucher::Attachment.
Bug: chromium:1498378
Change-Id: I606079411c71ac46cc5d261a86f6a11c473d1278
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325960
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41071}
2023-11-03 07:25:10 +00:00
Harald Alvestrand
78f905e5cc Move some users to use webrtc::RefCountInterface
Bug: webrtc:15622
Change-Id: I2d4c20c726af1a052e161b7689a73d1e5e3eb191
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325526
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41067}
2023-11-02 14:45:57 +00:00
Markus Handell
8039cdbe48 Measure wall clock time of capture and encode processing.
(NOTE: This and dependent CLs will be reverted in a few days after
data collection from the field is complete.)

This change introduces a new task queue concept, Voucher. They
are associated with a currently running task tree. Whenever
tasks are posted, the current voucher is inherited and set as
current in the new task.

The voucher exists for as long as there are direct and indirect
tasks running that descend from the task where the voucher was
created.

Vouchers aggregate application-specific attachments, which perform
logic unrelated to Voucher progression. This particular change adds
an attachment that measures time from capture to all encode operations
complete, and places it into the WebRTC.Video.CaptureToSendTimeMs UMA.

An accompanying Chrome change crrev.com/c/4992282 ensures survival of
vouchers across certain Mojo IPC.

Bug: chromium:1498378
Change-Id: I2a27800a4e5504f219d8b9d33c56a48904cf6dde
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325400
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41061}
2023-11-01 16:10:17 +00:00
Harald Alvestrand
d6bac61b64 Move RefCountInterface to api/ and webrtc: namespace
This CL just moves the definition and adds a forward.
Actually using the new definition is left for later CLs.

Bug: webrtc:15622
Change-Id: I6d97ef45b98f9eb193c59dd7f8a89c99cfe0ba9a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325381
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41048}
2023-10-31 14:02:50 +00:00
Harald Alvestrand
ecc38d8d29 Take out callback that modifies voice receive codec based on send codec
No functionality that depends on this information has been identified; no tests break when it is taken out.

Bug: webrtc:15224
Change-Id: I37298479c6b8a4acb82f59d32130c105371936b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/324760
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41037}
2023-10-30 12:36:29 +00:00
Per K
25db2c65b6 Introduce Connection::RegisterReceivedPacketCallback
RegisterReceivedPacketCallback is used instead of
sigslot::SignalReadPacket. The callback use a new data class ReceivedPacket that combine meta
data and packet payload from a received packet.

This is the first step in an attempt to cleanup the data types used in
the packet receive pipeline.
Eventually, the ReceivedPacket class can contain more meta data such as
ECN information.

Bug: webrtc:11943,webrtc:15368
Change-Id: I984c561b9262fe4aa00176529bd8d901adf66640
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325060
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41021}
2023-10-27 12:39:39 +00:00
Sam Zackrisson
2e1f16d55c Make AEC3 json parsing code testonly
Reasons:
- the code is no longer used in Chrome
- it is conceptually weird for WebRTC to have JSON parsing in its API
- there are concerns around the reliability of the underlying JSON library

Additionally, this CL removes the rtc_json "poisonous" attribute: the scheme is incompatible and redundant with testonly.

Bug: webrtc:1493351
Change-Id: I0b621b0e3f183df7315919d9c89242fbe387928f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325062
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41014}
2023-10-26 12:03:02 +00:00
Tommi
7c1ddb760c Support initializing a SequenceChecker with a provided TaskQueue.
Bug: none
Change-Id: I5106f29ab7f9ed8530626f33f6259eb7aeb9e779
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/324260
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40993}
2023-10-23 14:43:04 +00:00