Skip to content
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Commit 1c7dacb

Browse files
committed
Enable rtp_rtcp WASM build.
1 parent 8372605 commit 1c7dacb

13 files changed

+252
-176
lines changed

talk/owt/BUILD.gn

Lines changed: 45 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ declare_args() {
1515
# Introduced for using libvpx config files. We only enable libvpx rate
1616
# controller for VP9 on Windows.
1717
if (is_win && owt_msdk_header_root != "") {
18-
1918
if (current_cpu == "x86") {
2019
cpu_arch_full = "ia32"
2120
} else if (current_cpu == "x64") {
@@ -188,10 +187,10 @@ static_library("owt_sdk_base") {
188187
sources += [
189188
"sdk/base/win/base_allocator.cc",
190189
"sdk/base/win/base_allocator.h",
191-
"sdk/base/win/d3d_allocator.cc",
192-
"sdk/base/win/d3d_allocator.h",
193190
"sdk/base/win/d3d11_allocator.cc",
194191
"sdk/base/win/d3d11_allocator.h",
192+
"sdk/base/win/d3d_allocator.cc",
193+
"sdk/base/win/d3d_allocator.h",
195194
"sdk/base/win/d3dnativeframe.h",
196195
"sdk/base/win/mediacapabilities.cc",
197196
"sdk/base/win/mediacapabilities.h",
@@ -207,9 +206,9 @@ static_library("owt_sdk_base") {
207206
"sdk/base/win/msdkvideoencoderfactory.h",
208207
"sdk/base/win/sysmem_allocator.cc",
209208
"sdk/base/win/sysmem_allocator.h",
210-
"sdk/base/win/vpedefs.h",
211209
"sdk/base/win/vp9ratecontrol.cc",
212210
"sdk/base/win/vp9ratecontrol.h",
211+
"sdk/base/win/vpedefs.h",
213212
]
214213
public_deps += [ "//third_party/libvpx" ]
215214
include_dirs += [
@@ -231,7 +230,7 @@ static_library("owt_sdk_base") {
231230
} else {
232231
defines += [ "OWT_USE_H265" ]
233232
}
234-
233+
235234
if (owt_use_quic) {
236235
defines += [ "OWT_ENABLE_QUIC" ]
237236
if (owt_quic_header_root != "") {
@@ -253,44 +252,40 @@ static_library("owt_sdk_base") {
253252
sources += [
254253
"sdk/base/desktopcapturer.cc",
255254
"sdk/base/desktopcapturer.h",
256-
"sdk/base/win/videorendererwin.cc",
257-
"sdk/base/win/videorendererwin.h",
258-
"sdk/base/win/videorendererd3d11.cc",
259-
"sdk/base/win/videorendererd3d11.h",
260255
"sdk/base/win/d3d11_manager.h",
261-
"sdk/base/win/device_info_mf.h",
262256
"sdk/base/win/device_info_mf.cc",
263-
"sdk/base/win/video_capture_mf.h",
257+
"sdk/base/win/device_info_mf.h",
264258
"sdk/base/win/video_capture_mf.cc",
259+
"sdk/base/win/video_capture_mf.h",
260+
"sdk/base/win/videorendererd3d11.cc",
261+
"sdk/base/win/videorendererd3d11.h",
262+
"sdk/base/win/videorendererwin.cc",
263+
"sdk/base/win/videorendererwin.h",
265264
]
266265
public_deps += [ "//third_party/webrtc/modules/audio_device:audio_device_module_from_input_and_output" ]
267-
268266
}
269267
if (is_linux) {
270268
if (owt_msdk_header_root != "") {
271269
include_dirs += [ owt_msdk_header_root ]
272270
defines += [ "OWT_USE_MSDK" ]
273271
sources += [
274-
"sdk/base/linux/displayutils.cc",
275-
"sdk/base/linux/displayutils.h",
276272
"sdk/base/linux/base_allocator.cc",
277273
"sdk/base/linux/base_allocator.h",
278-
"sdk/base/linux/vaapi_allocator.cc",
279-
"sdk/base/linux/vaapi_allocator.h",
280-
"sdk/base/linux/msdkvideosession.cc",
281-
"sdk/base/linux/msdkvideosession.h",
282-
"sdk/base/linux/msdkvideodecoderfactory.cc",
283-
"sdk/base/linux/msdkvideodecoderfactory.h",
274+
"sdk/base/linux/displayutils.cc",
275+
"sdk/base/linux/displayutils.h",
284276
"sdk/base/linux/msdkvideodecoder.cc",
285277
"sdk/base/linux/msdkvideodecoder.h",
286-
287-
]
288-
}
289-
sources += [
290-
"sdk/base/linux/xwindownativeframe.h",
278+
"sdk/base/linux/msdkvideodecoderfactory.cc",
279+
"sdk/base/linux/msdkvideodecoderfactory.h",
280+
"sdk/base/linux/msdkvideosession.cc",
281+
"sdk/base/linux/msdkvideosession.h",
282+
"sdk/base/linux/vaapi_allocator.cc",
283+
"sdk/base/linux/vaapi_allocator.h",
291284
"sdk/base/linux/videorenderlinux.cc",
292285
"sdk/base/linux/videorenderlinux.h",
293-
]
286+
"sdk/base/linux/xwindownativeframe.h",
287+
]
288+
}
294289
}
295290
if (!is_ios) {
296291
sources += [
@@ -300,15 +295,15 @@ static_library("owt_sdk_base") {
300295
"sdk/base/customizedvideodecoderproxy.h",
301296
]
302297
}
303-
if ((is_win || is_linux)) {
298+
if (is_win || is_linux) {
304299
sources += [
305300
"sdk/base/customizedaudiocapturer.cc",
306301
"sdk/base/customizedaudiocapturer.h",
307302
"sdk/base/customizedaudiodevicemodule.cc",
308303
"sdk/base/customizedaudiodevicemodule.h",
309304
]
310305
}
311-
if (is_clang) {
306+
if (is_clang && !is_wasm) {
312307
configs -= [ "//build/config/clang:find_bad_constructs" ]
313308
}
314309
if (is_win && is_clang) {
@@ -342,17 +337,31 @@ static_library("owt_sdk_p2p") {
342337
"sdk/p2p/p2psignalingsenderimpl.cc",
343338
"sdk/p2p/p2psignalingsenderimpl.h",
344339
]
345-
if (is_clang) {
340+
if (is_clang && !is_wasm) {
346341
configs -= [ "//build/config/clang:find_bad_constructs" ]
347342
}
348343
}
349344

350-
wasm_lib("owt_wasm") {
351-
name = "owt"
352-
deps = [ "//third_party/webrtc/modules/rtp_rtcp" ]
353-
sources=[
354-
"sdk/wasm/main.cc",
355-
]
345+
if (is_wasm) {
346+
wasm_lib("owt_wasm") {
347+
name = "owt"
348+
deps = [
349+
"//third_party/boringssl",
350+
"//third_party/webrtc/call",
351+
"//third_party/webrtc/modules/rtp_rtcp:rtp_rtcp",
352+
"//third_party/webrtc/rtc_base:rtc_json",
353+
]
354+
sources = [
355+
"sdk/wasm/binding.h",
356+
"sdk/wasm/main.cc",
357+
"sdk/wasm/media_session.cc",
358+
"sdk/wasm/media_session.h",
359+
"sdk/wasm/rtp_video_receiver.cc",
360+
"sdk/wasm/rtp_video_receiver.h",
361+
"sdk/wasm/web_transport_session.cc",
362+
"sdk/wasm/web_transport_session.h",
363+
]
364+
}
356365
}
357366

358367
static_library("owt_sdk_conf") {
@@ -379,7 +388,7 @@ static_library("owt_sdk_conf") {
379388
"sdk/include/cpp/owt/conference/remotemixedstream.h",
380389
"sdk/include/cpp/owt/conference/user.h",
381390
]
382-
if (is_clang) {
391+
if (is_clang && !is_wasm) {
383392
configs -= [ "//build/config/clang:find_bad_constructs" ]
384393
}
385394

talk/owt/sdk/wasm/binding.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright (C) <2021> Intel Corporation
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
5+
#ifndef OWT_WASM_BINDING_H_
6+
#define OWT_WASM_BINDING_H_
7+
8+
#include <emscripten/bind.h>
9+
#include "talk/owt/sdk/wasm/media_session.h"
10+
#include "talk/owt/sdk/wasm/rtp_video_receiver.h"
11+
12+
namespace owt {
13+
namespace wasm {
14+
15+
EMSCRIPTEN_BINDINGS(Owt) {
16+
emscripten::class_<MediaSession>("MediaSession").constructor<>();
17+
emscripten::class_<RtpVideoReceiver>("RtpVideoReceiver")
18+
.function("onRtpPacket", &RtpVideoReceiver::OnRtpPacket);
19+
}
20+
21+
} // namespace wasm
22+
} // namespace owt
23+
24+
#endif

talk/owt/sdk/wasm/gn/BUILD.gn

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,23 +65,23 @@ template("gcc_like_toolchain") {
6565

6666
tool("cc") {
6767
depfile = "{{output}}.d"
68-
command = "$cc_wrapper $cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -fno-stack-protector ${external_cflags} -msimd128 -pthread -D__wasm__ -c {{source}} -o {{output}}"
68+
command = "$cc_wrapper $cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 --bind -fno-stack-protector ${external_cflags} -c {{source}} -o {{output}}"
6969
depsformat = "gcc"
7070
outputs = [ "$object_subdir/{{source_name_part}}.o" ]
7171
description = "compile {{source}}"
7272
}
7373

7474
tool("cxx") {
7575
depfile = "{{output}}.d"
76-
command = "$cc_wrapper $cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -fno-stack-protector ${external_cflags} -msimd128 -pthread -D__wasm__ ${external_cxxflags} -c {{source}} -o {{output}}"
76+
command = "$cc_wrapper $cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 --bind -fno-stack-protector ${external_cflags} ${external_cxxflags} -c {{source}} -o {{output}}"
7777
depsformat = "gcc"
7878
outputs = [ "$object_subdir/{{source_name_part}}.o" ]
7979
description = "compile {{source}}"
8080
}
8181

8282
tool("asm") {
8383
depfile = "{{output}}.d"
84-
command = "$cc_wrapper $cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{asmflags}} -fno-stack-protector -c {{source}} -o {{output}}"
84+
command = "$cc_wrapper $cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{asmflags}} -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 --bind -fno-stack-protector -c {{source}} -o {{output}}"
8585
depsformat = "gcc"
8686
outputs = [ "$object_subdir/{{source_name_part}}.o" ]
8787
description = "assemble {{source}}"
@@ -173,8 +173,8 @@ gcc_like_toolchain("wasm") {
173173
# emsdk_dir and em_config are defined in wasm.gni.
174174
cpu = host_cpu
175175
os = host_os
176-
ar = "emar --em-config $em_config"
177-
cc = "emcc --em-config $em_config"
178-
cxx = "em++ --em-config $em_config"
176+
ar = "$emsdk_dir/emscripten/emar --em-config $em_config"
177+
cc = "$emsdk_dir/emscripten/emcc --em-config $em_config"
178+
cxx = "$emsdk_dir/emscripten/em++ --em-config $em_config --bind -s USE_PTHREADS=1"
179179
strip = ""
180180
}

talk/owt/sdk/wasm/gn/BUILDCONFIG.gn

Lines changed: 0 additions & 124 deletions
This file was deleted.

0 commit comments

Comments
 (0)