Skip to content

Commit 856e73f

Browse files
committed
[Third Party] Add libdatachannel
1 parent fb68f28 commit 856e73f

File tree

5 files changed

+163
-1
lines changed

5 files changed

+163
-1
lines changed

.github/dependabot.yml

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ updates:
3838
- dependency-name: "third_party/java_deps/repo"
3939
- dependency-name: "third_party/jlink/repo"
4040
- dependency-name: "third_party/jsoncpp/repo"
41+
- dependency-name: "third_party/libdatachannel/repo"
4142
- dependency-name: "third_party/libwebsockets/repo"
4243
- dependency-name: "third_party/lwip/repo"
4344
- dependency-name: "third_party/mbed-mcu-boot/repo"

.github/workflows/build.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ jobs:
226226
./scripts/run_in_build_env.sh \
227227
"./scripts/run-clang-tidy-on-compile-commands.py \
228228
--compile-database out/sanitizers/compile_commands.json \
229-
--file-exclude-regex '/(repo|zzz_generated|lwip/standalone)/|-ReadImpl|-InvokeSubscribeImpl|CodegenDataModel_Write|QuieterReporting' \
229+
--file-exclude-regex '/(repo|zzz_generated|lwip/standalone|libdatachannel)/|-ReadImpl|-InvokeSubscribeImpl|CodegenDataModel_Write|QuieterReporting' \
230230
--file-list-file out/changed_files.txt \
231231
check \
232232
"

.gitmodules

+5
Original file line numberDiff line numberDiff line change
@@ -349,3 +349,8 @@
349349
path = third_party/re2/src
350350
url = https://github.com/google/re2.git
351351
platforms = linux,darwin
352+
[submodule "third_party/libdatachannel/repo"]
353+
path = third_party/libdatachannel/repo
354+
url = https://github.com/paullouisageneau/libdatachannel.git
355+
platforms = linux
356+
recursive = true

third_party/libdatachannel/BUILD.gn

+155
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# Copyright (c) 2025 Project CHIP Authors
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
config("libdatachannel_config") {
16+
include_dirs = [
17+
"repo/include",
18+
"repo/include/rtc",
19+
]
20+
}
21+
22+
config("libdatachannel_config_disable_warnings") {
23+
cflags_cc = [
24+
"-Wno-shadow",
25+
"-Wno-unreachable-code",
26+
"-Wno-non-virtual-dtor",
27+
"-Wno-implicit-fallthrough",
28+
]
29+
}
30+
31+
config("libdatachannel_config_enable_features") {
32+
cflags_cc = [
33+
"-fexceptions",
34+
"-frtti",
35+
]
36+
}
37+
38+
source_set("libdatachannel") {
39+
include_dirs = [
40+
"repo/src",
41+
"repo/include/rtc",
42+
"repo/deps/plog/include",
43+
"repo/deps/usrsctp/usrsctplib",
44+
"repo/deps/libjuice/include",
45+
"repo/deps/libsrtp/include",
46+
]
47+
48+
# ---------------------------------------------------------------------------
49+
# Source files from repo/src/*.cpp
50+
# ---------------------------------------------------------------------------
51+
sources = [
52+
"repo/src/av1rtppacketizer.cpp",
53+
"repo/src/candidate.cpp",
54+
"repo/src/capi.cpp",
55+
"repo/src/channel.cpp",
56+
"repo/src/configuration.cpp",
57+
"repo/src/datachannel.cpp",
58+
"repo/src/description.cpp",
59+
"repo/src/global.cpp",
60+
"repo/src/h264rtpdepacketizer.cpp",
61+
"repo/src/h264rtppacketizer.cpp",
62+
"repo/src/h265nalunit.cpp",
63+
"repo/src/h265rtpdepacketizer.cpp",
64+
"repo/src/h265rtppacketizer.cpp",
65+
"repo/src/mediahandler.cpp",
66+
"repo/src/message.cpp",
67+
"repo/src/nalunit.cpp",
68+
"repo/src/pacinghandler.cpp",
69+
"repo/src/peerconnection.cpp",
70+
"repo/src/plihandler.cpp",
71+
"repo/src/rembhandler.cpp",
72+
"repo/src/rtcpnackresponder.cpp",
73+
"repo/src/rtcpreceivingsession.cpp",
74+
"repo/src/rtcpsrreporter.cpp",
75+
"repo/src/rtp.cpp",
76+
"repo/src/rtpdepacketizer.cpp",
77+
"repo/src/rtppacketizationconfig.cpp",
78+
"repo/src/rtppacketizer.cpp",
79+
"repo/src/track.cpp",
80+
"repo/src/websocket.cpp",
81+
"repo/src/websocketserver.cpp",
82+
]
83+
84+
# ---------------------------------------------------------------------------
85+
# Source files from repo/src/impl/*.cpp
86+
# ---------------------------------------------------------------------------
87+
sources += [
88+
"repo/src/impl/certificate.cpp",
89+
"repo/src/impl/channel.cpp",
90+
"repo/src/impl/datachannel.cpp",
91+
"repo/src/impl/dtlssrtptransport.cpp",
92+
"repo/src/impl/dtlstransport.cpp",
93+
"repo/src/impl/http.cpp",
94+
"repo/src/impl/httpproxytransport.cpp",
95+
"repo/src/impl/icetransport.cpp",
96+
"repo/src/impl/init.cpp",
97+
"repo/src/impl/logcounter.cpp",
98+
"repo/src/impl/peerconnection.cpp",
99+
"repo/src/impl/pollinterrupter.cpp",
100+
"repo/src/impl/pollservice.cpp",
101+
"repo/src/impl/processor.cpp",
102+
"repo/src/impl/sctptransport.cpp",
103+
"repo/src/impl/sha.cpp",
104+
"repo/src/impl/tcpserver.cpp",
105+
"repo/src/impl/tcptransport.cpp",
106+
"repo/src/impl/threadpool.cpp",
107+
"repo/src/impl/tls.cpp",
108+
"repo/src/impl/tlstransport.cpp",
109+
"repo/src/impl/track.cpp",
110+
"repo/src/impl/transport.cpp",
111+
"repo/src/impl/utils.cpp",
112+
"repo/src/impl/verifiedtlstransport.cpp",
113+
"repo/src/impl/websocket.cpp",
114+
"repo/src/impl/websocketserver.cpp",
115+
"repo/src/impl/wshandshake.cpp",
116+
"repo/src/impl/wstransport.cpp",
117+
]
118+
119+
public_configs = [ ":libdatachannel_config" ]
120+
configs += [
121+
":libdatachannel_config_disable_warnings",
122+
":libdatachannel_config_enable_features",
123+
]
124+
125+
defines = [
126+
"BUILD_SHARED_LIBS=1", # default ON in the CMake
127+
"BUILD_SHARED_DEPS_LIBS=0", # default OFF
128+
"USE_GNUTLS=0", # default OFF => no GnuTLS
129+
"USE_MBEDTLS=0", # default OFF => no MbedTLS
130+
"USE_NICE=0", # default OFF => no libnice
131+
"PREFER_SYSTEM_LIB=0", # default OFF
132+
"USE_SYSTEM_SRTP=0", # default from PREFER_SYSTEM_LIB
133+
"USE_SYSTEM_JUICE=0",
134+
"USE_SYSTEM_USRSCTP=0",
135+
"USE_SYSTEM_PLOG=0",
136+
"USE_SYSTEM_JSON=0",
137+
"NO_WEBSOCKET=0", # default OFF => websockets on
138+
"NO_MEDIA=0", # default OFF => media on
139+
"NO_EXAMPLES=0", # default OFF
140+
"NO_TESTS=0", # default OFF
141+
"WARNINGS_AS_ERRORS=0", # default OFF
142+
"CAPI_STDCALL=0", # default OFF
143+
"SCTP_DEBUG=0", # default OFF
144+
"RTC_UPDATE_VERSION_HEADER=0", # default OFF
145+
146+
# Because NO_WEBSOCKET=0 => RTC_ENABLE_WEBSOCKET=1
147+
"RTC_ENABLE_WEBSOCKET=1",
148+
149+
# Because NO_MEDIA=0 => RTC_ENABLE_MEDIA=1
150+
"RTC_ENABLE_MEDIA=1",
151+
152+
# Because USE_SYSTEM_SRTP=0 => RTC_SYSTEM_SRTP=0
153+
"RTC_SYSTEM_SRTP=0",
154+
]
155+
}

third_party/libdatachannel/repo

Submodule repo added at 6fa7cff

0 commit comments

Comments
 (0)