sora-sdk 2024.4.0.dev44__tar.gz → 2025.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sora-sdk might be problematic. Click here for more details.
- {sora_sdk-2024.4.0.dev44/src/sora_sdk.egg-info → sora_sdk-2025.1.0}/PKG-INFO +31 -19
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/README.md +27 -15
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/buildbase.py +14 -4
- sora_sdk-2025.1.0/pyproject.toml +51 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/run.py +16 -5
- sora_sdk-2024.4.0.dev44/src/sora_sdk/sora_sdk_ext.cpython-310-darwin.so → sora_sdk-2025.1.0/src/sora_sdk/sora_sdk_ext.cpython-311-darwin.so +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/src/sora_sdk/sora_sdk_ext.pyi +143 -2
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0/src/sora_sdk.egg-info}/PKG-INFO +31 -19
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/src/sora_sdk.egg-info/SOURCES.txt +11 -2
- sora_sdk-2025.1.0/tests/test_amd_amf.py +310 -0
- sora_sdk-2025.1.0/tests/test_apple_video_toolbox.py +442 -0
- sora_sdk-2025.1.0/tests/test_authz.py +125 -0
- sora_sdk-2025.1.0/tests/test_authz_simulcast.py +197 -0
- sora_sdk-2025.1.0/tests/test_capability.py +94 -0
- sora_sdk-2025.1.0/tests/test_degradation_preference.py +240 -0
- sora_sdk-2025.1.0/tests/test_intel_vpl.py +658 -0
- sora_sdk-2025.1.0/tests/test_memory_leak.py +25 -0
- sora_sdk-2025.1.0/tests/test_nvidia_video_codec_sdk.py +409 -0
- sora_sdk-2025.1.0/tests/test_openh264.py +287 -0
- sora_sdk-2025.1.0/tests/test_opus.py +68 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_sendonly_recvonly.py +10 -14
- sora_sdk-2025.1.0/tests/test_simulcast.py +147 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_sora_disconnect.py +125 -6
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_type_disconnect.py +1 -1
- sora_sdk-2024.4.0.dev44/pyproject.toml +0 -75
- sora_sdk-2024.4.0.dev44/tests/test_macos.py +0 -238
- sora_sdk-2024.4.0.dev44/tests/test_openh264.py +0 -127
- sora_sdk-2024.4.0.dev44/tests/test_simulcast.py +0 -68
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/LICENSE +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/MANIFEST.in +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/NOTICE.md +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/pypath.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/setup.cfg +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/setup.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/src/sora_sdk/__init__.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/src/sora_sdk/py.typed +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/src/sora_sdk.egg-info/dependency_links.txt +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/src/sora_sdk.egg-info/top_level.txt +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_ca_cert.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_encoded_transform.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_messaging.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_messaging_header.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_re_offer_re_answer_sdp.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_signaling.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_signaling_message.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_signaling_notify.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_type_switched.py +0 -0
- {sora_sdk-2024.4.0.dev44 → sora_sdk-2025.1.0}/tests/test_vad.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: sora_sdk
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2025.1.0
|
|
4
4
|
Summary: WebRTC SFU Sora Python SDK
|
|
5
5
|
Home-page: https://github.com/shiguredo/sora-python-sdk
|
|
6
6
|
Author-email: "Shiguredo Inc." <contact+pypi@shiguredo.jp>
|
|
@@ -187,14 +187,14 @@ Project-URL: Documentation, https://sora-python-sdk.shiguredo.jp
|
|
|
187
187
|
Project-URL: Discord, https://discord.gg/shiguredo
|
|
188
188
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
189
189
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
190
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
191
190
|
Classifier: Programming Language :: Python :: 3.11
|
|
192
191
|
Classifier: Programming Language :: Python :: 3.12
|
|
193
192
|
Classifier: Programming Language :: Python :: 3.13
|
|
194
|
-
Requires-Python: >=3.
|
|
193
|
+
Requires-Python: >=3.11
|
|
195
194
|
Description-Content-Type: text/markdown
|
|
196
195
|
License-File: LICENSE
|
|
197
196
|
License-File: NOTICE.md
|
|
197
|
+
Dynamic: home-page
|
|
198
198
|
|
|
199
199
|
# Sora Python SDK
|
|
200
200
|
|
|
@@ -228,13 +228,24 @@ Please read <https://github.com/shiguredo/oss/blob/master/README.en.md> before u
|
|
|
228
228
|
- Windows / macOS / Linux (Ubuntu) プラットフォームに対応
|
|
229
229
|
- [WebRTC 統計情報](https://www.w3.org/TR/webrtc-stats/) の取得が可能
|
|
230
230
|
- [WebRTC Encoded Transform](https://www.w3.org/TR/webrtc-encoded-transform/) に対応
|
|
231
|
+
- 回線が不安定になった際、解像度とフレームレートどちらを維持するかの設定をする [DegradationPreference](https://w3c.github.io/mst-content-hint/#degradation-preference-when-encoding) に対応
|
|
232
|
+
- MAINTAIN_FRAMERATE / MAINTAIN_RESOLUTION / BALANCED が指定できる
|
|
231
233
|
- Intel / Apple / NVIDIA のハードウェアデコーダー/エンコーダーに対応
|
|
232
|
-
- Intel VPL (AV1 / H.264 / H.265)
|
|
233
234
|
- Apple Video Toolbox (H.264 / H.265)
|
|
234
|
-
|
|
235
|
+
- macOS arm64 で利用できる
|
|
236
|
+
- Intel VPL (AV1 / H.264 / H.265)
|
|
237
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
238
|
+
- AMD AMF (VP9 /AV1 / H.264 / H.265)
|
|
239
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
240
|
+
- AV1 エンコードは Windows x86_64 でのみ利用できる
|
|
241
|
+
- VP9 はデコードのみ利用できる
|
|
242
|
+
- NVIDIA Video Codec SDK (VP8 / VP9 / AV1 / H.264 / H.265)
|
|
243
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
244
|
+
- VP8 と VP9 はデコードのみ利用できる
|
|
235
245
|
- NVIDIA Jetson JetPack SDK (AV1 / H.264 / H.265)
|
|
236
246
|
- [各プラットフォームで利用可能な HWA への対応](https://github.com/shiguredo/sora-cpp-sdk?tab=readme-ov-file#%E7%89%B9%E5%BE%B4)
|
|
237
247
|
- [OpenH264](https://github.com/cisco/openh264) を利用した H.264 のソフトウェアエンコーダー/デコーダーに対応
|
|
248
|
+
- Ubuntu x86_64 / Ubuntu arm64 / Windows x86_64 / macOS arm64 で利用できる
|
|
238
249
|
- 音声デバイス処理に [sounddevice](https://pypi.org/project/sounddevice/) などが利用できる
|
|
239
250
|
- 映像デバイス処理に [opencv-python](https://pypi.org/project/opencv-python/) などが利用できる
|
|
240
251
|
- 音声認識などの入力に受信した音声を利用できる
|
|
@@ -282,20 +293,24 @@ PyPI 経由ではインストールできません。
|
|
|
282
293
|
|
|
283
294
|
## システム条件
|
|
284
295
|
|
|
285
|
-
- WebRTC SFU Sora
|
|
286
|
-
- Python 3.
|
|
296
|
+
- WebRTC SFU Sora 2024.1.0 以降
|
|
297
|
+
- Python 3.11 以上
|
|
298
|
+
|
|
299
|
+
## Python サポートポリシー
|
|
300
|
+
|
|
301
|
+
直近の 3 バージョンの Python をサポートします。
|
|
287
302
|
|
|
288
303
|
## 対応プラットフォーム
|
|
289
304
|
|
|
290
|
-
- Windows 11 x86_64
|
|
291
|
-
- Windows Server 2022 x86_64
|
|
292
|
-
- macOS Sequoia 15 arm64
|
|
293
|
-
- macOS Ventura 14 arm64
|
|
294
305
|
- Ubuntu 24.04 LTS x86_64
|
|
295
306
|
- Ubuntu 24.04 LTS arm64
|
|
296
307
|
- Ubuntu 22.04 LTS x86_64
|
|
297
308
|
- Ubuntu 22.04 LTS arm64 (NVIDIA Jetson JetPack SDK 6)
|
|
298
309
|
- PyPI からではなくパッケージファイルを利用してください
|
|
310
|
+
- macOS Sequoia 15 arm64
|
|
311
|
+
- macOS Ventura 14 arm64
|
|
312
|
+
- Windows 11 x86_64
|
|
313
|
+
- Windows Server 2022 x86_64
|
|
299
314
|
|
|
300
315
|
### macOS の対応バージョン
|
|
301
316
|
|
|
@@ -319,12 +334,9 @@ PyPI 経由ではインストールできません。
|
|
|
319
334
|
### 優先実装が可能な機能一覧
|
|
320
335
|
|
|
321
336
|
- Windows 11 arm64
|
|
322
|
-
- macOS Sonoma 13 arm64
|
|
323
337
|
- Ubuntu 22.04 arm64
|
|
338
|
+
- Ubuntu 22.04 arm64 (NVIDIA Jetson JetPack SDK 6.1)
|
|
324
339
|
- Ubuntu 20.04 arm64 (NVIDIA Jetson JetPack SDK 5)
|
|
325
|
-
- AMD Video Core Next (VCN) 対応
|
|
326
|
-
- VP9 / AV1 / H.264 / H.265
|
|
327
|
-
- Python 3.9 以前への対応
|
|
328
340
|
|
|
329
341
|
## サポートについて
|
|
330
342
|
|
|
@@ -347,9 +359,9 @@ Discord へお願いします。
|
|
|
347
359
|
Apache License 2.0
|
|
348
360
|
|
|
349
361
|
```text
|
|
350
|
-
Copyright 2023-
|
|
351
|
-
Copyright 2023-
|
|
352
|
-
Copyright 2023-
|
|
362
|
+
Copyright 2023-2025, tnoho (Original Author)
|
|
363
|
+
Copyright 2023-2025, Wandbox LLC (Original Author)
|
|
364
|
+
Copyright 2023-2025, Shiguredo Inc.
|
|
353
365
|
|
|
354
366
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
355
367
|
you may not use this file except in compliance with the License.
|
|
@@ -30,13 +30,24 @@ Please read <https://github.com/shiguredo/oss/blob/master/README.en.md> before u
|
|
|
30
30
|
- Windows / macOS / Linux (Ubuntu) プラットフォームに対応
|
|
31
31
|
- [WebRTC 統計情報](https://www.w3.org/TR/webrtc-stats/) の取得が可能
|
|
32
32
|
- [WebRTC Encoded Transform](https://www.w3.org/TR/webrtc-encoded-transform/) に対応
|
|
33
|
+
- 回線が不安定になった際、解像度とフレームレートどちらを維持するかの設定をする [DegradationPreference](https://w3c.github.io/mst-content-hint/#degradation-preference-when-encoding) に対応
|
|
34
|
+
- MAINTAIN_FRAMERATE / MAINTAIN_RESOLUTION / BALANCED が指定できる
|
|
33
35
|
- Intel / Apple / NVIDIA のハードウェアデコーダー/エンコーダーに対応
|
|
34
|
-
- Intel VPL (AV1 / H.264 / H.265)
|
|
35
36
|
- Apple Video Toolbox (H.264 / H.265)
|
|
36
|
-
|
|
37
|
+
- macOS arm64 で利用できる
|
|
38
|
+
- Intel VPL (AV1 / H.264 / H.265)
|
|
39
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
40
|
+
- AMD AMF (VP9 /AV1 / H.264 / H.265)
|
|
41
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
42
|
+
- AV1 エンコードは Windows x86_64 でのみ利用できる
|
|
43
|
+
- VP9 はデコードのみ利用できる
|
|
44
|
+
- NVIDIA Video Codec SDK (VP8 / VP9 / AV1 / H.264 / H.265)
|
|
45
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
46
|
+
- VP8 と VP9 はデコードのみ利用できる
|
|
37
47
|
- NVIDIA Jetson JetPack SDK (AV1 / H.264 / H.265)
|
|
38
48
|
- [各プラットフォームで利用可能な HWA への対応](https://github.com/shiguredo/sora-cpp-sdk?tab=readme-ov-file#%E7%89%B9%E5%BE%B4)
|
|
39
49
|
- [OpenH264](https://github.com/cisco/openh264) を利用した H.264 のソフトウェアエンコーダー/デコーダーに対応
|
|
50
|
+
- Ubuntu x86_64 / Ubuntu arm64 / Windows x86_64 / macOS arm64 で利用できる
|
|
40
51
|
- 音声デバイス処理に [sounddevice](https://pypi.org/project/sounddevice/) などが利用できる
|
|
41
52
|
- 映像デバイス処理に [opencv-python](https://pypi.org/project/opencv-python/) などが利用できる
|
|
42
53
|
- 音声認識などの入力に受信した音声を利用できる
|
|
@@ -84,20 +95,24 @@ PyPI 経由ではインストールできません。
|
|
|
84
95
|
|
|
85
96
|
## システム条件
|
|
86
97
|
|
|
87
|
-
- WebRTC SFU Sora
|
|
88
|
-
- Python 3.
|
|
98
|
+
- WebRTC SFU Sora 2024.1.0 以降
|
|
99
|
+
- Python 3.11 以上
|
|
100
|
+
|
|
101
|
+
## Python サポートポリシー
|
|
102
|
+
|
|
103
|
+
直近の 3 バージョンの Python をサポートします。
|
|
89
104
|
|
|
90
105
|
## 対応プラットフォーム
|
|
91
106
|
|
|
92
|
-
- Windows 11 x86_64
|
|
93
|
-
- Windows Server 2022 x86_64
|
|
94
|
-
- macOS Sequoia 15 arm64
|
|
95
|
-
- macOS Ventura 14 arm64
|
|
96
107
|
- Ubuntu 24.04 LTS x86_64
|
|
97
108
|
- Ubuntu 24.04 LTS arm64
|
|
98
109
|
- Ubuntu 22.04 LTS x86_64
|
|
99
110
|
- Ubuntu 22.04 LTS arm64 (NVIDIA Jetson JetPack SDK 6)
|
|
100
111
|
- PyPI からではなくパッケージファイルを利用してください
|
|
112
|
+
- macOS Sequoia 15 arm64
|
|
113
|
+
- macOS Ventura 14 arm64
|
|
114
|
+
- Windows 11 x86_64
|
|
115
|
+
- Windows Server 2022 x86_64
|
|
101
116
|
|
|
102
117
|
### macOS の対応バージョン
|
|
103
118
|
|
|
@@ -121,12 +136,9 @@ PyPI 経由ではインストールできません。
|
|
|
121
136
|
### 優先実装が可能な機能一覧
|
|
122
137
|
|
|
123
138
|
- Windows 11 arm64
|
|
124
|
-
- macOS Sonoma 13 arm64
|
|
125
139
|
- Ubuntu 22.04 arm64
|
|
140
|
+
- Ubuntu 22.04 arm64 (NVIDIA Jetson JetPack SDK 6.1)
|
|
126
141
|
- Ubuntu 20.04 arm64 (NVIDIA Jetson JetPack SDK 5)
|
|
127
|
-
- AMD Video Core Next (VCN) 対応
|
|
128
|
-
- VP9 / AV1 / H.264 / H.265
|
|
129
|
-
- Python 3.9 以前への対応
|
|
130
142
|
|
|
131
143
|
## サポートについて
|
|
132
144
|
|
|
@@ -149,9 +161,9 @@ Discord へお願いします。
|
|
|
149
161
|
Apache License 2.0
|
|
150
162
|
|
|
151
163
|
```text
|
|
152
|
-
Copyright 2023-
|
|
153
|
-
Copyright 2023-
|
|
154
|
-
Copyright 2023-
|
|
164
|
+
Copyright 2023-2025, tnoho (Original Author)
|
|
165
|
+
Copyright 2023-2025, Wandbox LLC (Original Author)
|
|
166
|
+
Copyright 2023-2025, Shiguredo Inc.
|
|
155
167
|
|
|
156
168
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
157
169
|
you may not use this file except in compliance with the License.
|
|
@@ -520,6 +520,7 @@ class WebrtcInfo(NamedTuple):
|
|
|
520
520
|
webrtc_library_dir: str
|
|
521
521
|
clang_dir: str
|
|
522
522
|
libcxx_dir: str
|
|
523
|
+
libcxxabi_dir: str
|
|
523
524
|
|
|
524
525
|
|
|
525
526
|
def get_webrtc_info(
|
|
@@ -536,6 +537,9 @@ def get_webrtc_info(
|
|
|
536
537
|
webrtc_library_dir=os.path.join(webrtc_install_dir, "lib"),
|
|
537
538
|
clang_dir=os.path.join(install_dir, "llvm", "clang"),
|
|
538
539
|
libcxx_dir=os.path.join(install_dir, "llvm", "libcxx"),
|
|
540
|
+
libcxxabi_dir=os.path.join(
|
|
541
|
+
webrtc_install_dir, "include", "third_party", "libc++abi", "src"
|
|
542
|
+
),
|
|
539
543
|
)
|
|
540
544
|
else:
|
|
541
545
|
webrtc_build_source_dir = os.path.join(
|
|
@@ -556,6 +560,9 @@ def get_webrtc_info(
|
|
|
556
560
|
webrtc_build_source_dir, "src", "third_party", "llvm-build", "Release+Asserts"
|
|
557
561
|
),
|
|
558
562
|
libcxx_dir=os.path.join(webrtc_build_source_dir, "src", "third_party", "libc++", "src"),
|
|
563
|
+
libcxxabi_dir=os.path.join(
|
|
564
|
+
webrtc_build_source_dir, "src", "third_party", "libc++abi", "src"
|
|
565
|
+
),
|
|
559
566
|
)
|
|
560
567
|
|
|
561
568
|
|
|
@@ -691,7 +698,7 @@ def build_and_install_boost(
|
|
|
691
698
|
):
|
|
692
699
|
version_underscore = version.replace(".", "_")
|
|
693
700
|
archive = download(
|
|
694
|
-
f"https://
|
|
701
|
+
f"https://archives.boost.io/release/{version}/source/boost_{version_underscore}.tar.gz",
|
|
695
702
|
source_dir,
|
|
696
703
|
)
|
|
697
704
|
extract(archive, output_dir=build_dir, output_dirname="boost")
|
|
@@ -1701,7 +1708,10 @@ def get_build_platform() -> PlatformTarget:
|
|
|
1701
1708
|
if arch in ("AMD64", "x86_64"):
|
|
1702
1709
|
arch = "x86_64"
|
|
1703
1710
|
elif arch in ("aarch64", "arm64"):
|
|
1704
|
-
|
|
1711
|
+
if os == "ubuntu":
|
|
1712
|
+
arch = "armv8"
|
|
1713
|
+
else:
|
|
1714
|
+
arch = "arm64"
|
|
1705
1715
|
else:
|
|
1706
1716
|
raise Exception(f"Arch {arch} not supported")
|
|
1707
1717
|
|
|
@@ -1800,8 +1810,8 @@ class Platform(object):
|
|
|
1800
1810
|
self._check(build.arch in ("x86_64", "arm64"))
|
|
1801
1811
|
if target.os == "ubuntu":
|
|
1802
1812
|
self._check(build.os == "ubuntu")
|
|
1803
|
-
self._check(build.arch
|
|
1804
|
-
if
|
|
1813
|
+
self._check(build.arch in ("x86_64", "armv8"))
|
|
1814
|
+
if build.arch == target.arch:
|
|
1805
1815
|
self._check(build.osver == target.osver)
|
|
1806
1816
|
if target.os == "raspberry-pi-os":
|
|
1807
1817
|
self._check(build.os == "ubuntu")
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "sora_sdk"
|
|
3
|
+
authors = [{ name = "Shiguredo Inc.", email = "contact+pypi@shiguredo.jp" }]
|
|
4
|
+
version = "2025.1.0"
|
|
5
|
+
description = "WebRTC SFU Sora Python SDK"
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
license = { file = "LICENSE" }
|
|
8
|
+
classifiers = [
|
|
9
|
+
"License :: OSI Approved :: Apache Software License",
|
|
10
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
11
|
+
"Programming Language :: Python :: 3.11",
|
|
12
|
+
"Programming Language :: Python :: 3.12",
|
|
13
|
+
"Programming Language :: Python :: 3.13",
|
|
14
|
+
]
|
|
15
|
+
requires-python = ">= 3.11"
|
|
16
|
+
|
|
17
|
+
[project.urls]
|
|
18
|
+
Source = "https://github.com/shiguredo/sora-python-sdk"
|
|
19
|
+
Documentation = "https://sora-python-sdk.shiguredo.jp"
|
|
20
|
+
Discord = "https://discord.gg/shiguredo"
|
|
21
|
+
|
|
22
|
+
[build-system]
|
|
23
|
+
requires = ["setuptools==76.1", "wheel==0.45.1"]
|
|
24
|
+
build-backend = "setuptools.build_meta"
|
|
25
|
+
|
|
26
|
+
[tool.uv]
|
|
27
|
+
python-preference = "only-managed"
|
|
28
|
+
dev-dependencies = [
|
|
29
|
+
"nanobind==2.5.0",
|
|
30
|
+
"setuptools==76.1",
|
|
31
|
+
"build==1.2.2.post1",
|
|
32
|
+
"wheel==0.45.1",
|
|
33
|
+
"typing-extensions",
|
|
34
|
+
"python-dotenv",
|
|
35
|
+
"numpy",
|
|
36
|
+
"httpx",
|
|
37
|
+
"pytest",
|
|
38
|
+
"ruff",
|
|
39
|
+
"mypy",
|
|
40
|
+
"pyjwt",
|
|
41
|
+
"pytest-repeat",
|
|
42
|
+
"psutil",
|
|
43
|
+
]
|
|
44
|
+
|
|
45
|
+
[tool.ruff]
|
|
46
|
+
target-version = "py311"
|
|
47
|
+
line-length = 100
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
[tool.pytest.ini_options]
|
|
51
|
+
xfail_strict = true
|
|
@@ -127,7 +127,7 @@ def install_deps(
|
|
|
127
127
|
install_cmake_args["platform"] = "macos-universal"
|
|
128
128
|
elif platform.build.os == "ubuntu" and platform.build.arch == "x86_64":
|
|
129
129
|
install_cmake_args["platform"] = "linux-x86_64"
|
|
130
|
-
elif platform.build.os == "ubuntu" and platform.build.arch == "
|
|
130
|
+
elif platform.build.os == "ubuntu" and platform.build.arch == "armv8":
|
|
131
131
|
install_cmake_args["platform"] = "linux-aarch64"
|
|
132
132
|
else:
|
|
133
133
|
raise Exception("Failed to install CMake")
|
|
@@ -261,12 +261,24 @@ def main():
|
|
|
261
261
|
if platform.target.os == "ubuntu":
|
|
262
262
|
# クロスコンパイルの設定。
|
|
263
263
|
# 本来は toolchain ファイルに書く内容
|
|
264
|
+
|
|
265
|
+
if platform.build.arch == "armv8":
|
|
266
|
+
# ビルド環境が armv8 の場合は libwebrtc のバイナリが使えないのでローカルの clang を利用する
|
|
267
|
+
cmake_args += [
|
|
268
|
+
"-DCMAKE_C_COMPILER=clang-18",
|
|
269
|
+
"-DCMAKE_CXX_COMPILER=clang++-18",
|
|
270
|
+
]
|
|
271
|
+
else:
|
|
272
|
+
cmake_args += [
|
|
273
|
+
f"-DCMAKE_C_COMPILER={os.path.join(webrtc_info.clang_dir, 'bin', 'clang')}",
|
|
274
|
+
f"-DCMAKE_CXX_COMPILER={os.path.join(webrtc_info.clang_dir, 'bin', 'clang++')}",
|
|
275
|
+
]
|
|
264
276
|
cmake_args += [
|
|
265
|
-
f"-DCMAKE_C_COMPILER={os.path.join(webrtc_info.clang_dir, 'bin', 'clang')}",
|
|
266
|
-
f"-DCMAKE_CXX_COMPILER={os.path.join(webrtc_info.clang_dir, 'bin', 'clang++')}",
|
|
267
277
|
f"-DLIBCXX_INCLUDE_DIR={cmake_path(os.path.join(webrtc_info.libcxx_dir, 'include'))}",
|
|
278
|
+
f"-DLIBCXXABI_INCLUDE_DIR={cmake_path(os.path.join(webrtc_info.libcxxabi_dir, 'include'))}",
|
|
268
279
|
]
|
|
269
|
-
|
|
280
|
+
|
|
281
|
+
if platform.build.arch != platform.target.arch:
|
|
270
282
|
sysroot = os.path.join(install_dir, "rootfs")
|
|
271
283
|
nb_cmake_dir = cmdcap(["uv", "run", "python", "-m", "nanobind", "--cmake_dir"])
|
|
272
284
|
cmake_args += [
|
|
@@ -279,7 +291,6 @@ def main():
|
|
|
279
291
|
"-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH",
|
|
280
292
|
"-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH",
|
|
281
293
|
"-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=BOTH",
|
|
282
|
-
f"-DCMAKE_SYSROOT={sysroot}",
|
|
283
294
|
f"-DPython_ROOT_DIR={cmake_path(os.path.join(sysroot, 'usr', 'include', 'python3.12'))}",
|
|
284
295
|
f"-DCMAKE_SYSROOT={sysroot}",
|
|
285
296
|
f"-DNB_CMAKE_DIR={nb_cmake_dir}",
|
|
Binary file
|
|
@@ -6,9 +6,9 @@ from numpy.typing import ArrayLike
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class Sora:
|
|
9
|
-
def __init__(self,
|
|
9
|
+
def __init__(self, openh264: str | None = None, video_codec_preference: SoraVideoCodecPreference | None = None) -> None: ...
|
|
10
10
|
|
|
11
|
-
def create_connection(self, signaling_urls: list[str], role: str, channel_id: str, client_id: Optional[str] = None, bundle_id: Optional[str] = None, metadata: Optional[dict] = None, signaling_notify_metadata: Optional[dict] = None, audio_source: Optional[SoraTrackInterface] = None, video_source: Optional[SoraTrackInterface] = None, audio_frame_transformer: Optional[SoraAudioFrameTransformer] = None, video_frame_transformer: Optional[SoraVideoFrameTransformer] = None, audio: Optional[bool] = None, video: Optional[bool] = None, audio_codec_type: Optional[str] = None, video_codec_type: Optional[str] = None, video_bit_rate: Optional[int] = None, audio_bit_rate: Optional[int] = None, video_vp9_params: Optional[dict] = None, video_av1_params: Optional[dict] = None, video_h264_params: Optional[dict] = None, audio_opus_params: Optional[dict] = None, simulcast: Optional[bool] = None, spotlight: Optional[bool] = None, spotlight_number: Optional[int] = None, simulcast_rid: Optional[str] = None, spotlight_focus_rid: Optional[str] = None, spotlight_unfocus_rid: Optional[str] = None, forwarding_filter: Optional[dict] = None, forwarding_filters: Optional[list[dict]] = None, data_channels: Optional[list[dict]] = None, data_channel_signaling: Optional[bool] = None, ignore_disconnect_websocket: Optional[bool] = None, data_channel_signaling_timeout: Optional[int] = None, disconnect_wait_timeout: Optional[int] = None, websocket_close_timeout: Optional[int] = None, websocket_connection_timeout: Optional[int] = None, audio_streaming_language_code: Optional[str] = None, insecure: Optional[bool] = None, client_cert: Optional[bytes] = None, client_key: Optional[bytes] = None, ca_cert: Optional[bytes] = None, proxy_url: Optional[str] = None, proxy_username: Optional[str] = None, proxy_password: Optional[str] = None, proxy_agent: Optional[str] = None) -> SoraConnection: ...
|
|
11
|
+
def create_connection(self, signaling_urls: list[str], role: str, channel_id: str, client_id: Optional[str] = None, bundle_id: Optional[str] = None, metadata: Optional[dict] = None, signaling_notify_metadata: Optional[dict] = None, audio_source: Optional[SoraTrackInterface] = None, video_source: Optional[SoraTrackInterface] = None, audio_frame_transformer: Optional[SoraAudioFrameTransformer] = None, video_frame_transformer: Optional[SoraVideoFrameTransformer] = None, audio: Optional[bool] = None, video: Optional[bool] = None, audio_codec_type: Optional[str] = None, video_codec_type: Optional[str] = None, video_bit_rate: Optional[int] = None, audio_bit_rate: Optional[int] = None, video_vp9_params: Optional[dict] = None, video_av1_params: Optional[dict] = None, video_h264_params: Optional[dict] = None, audio_opus_params: Optional[dict] = None, simulcast: Optional[bool] = None, spotlight: Optional[bool] = None, spotlight_number: Optional[int] = None, simulcast_rid: Optional[str] = None, spotlight_focus_rid: Optional[str] = None, spotlight_unfocus_rid: Optional[str] = None, forwarding_filter: Optional[dict] = None, forwarding_filters: Optional[list[dict]] = None, data_channels: Optional[list[dict]] = None, data_channel_signaling: Optional[bool] = None, ignore_disconnect_websocket: Optional[bool] = None, data_channel_signaling_timeout: Optional[int] = None, disconnect_wait_timeout: Optional[int] = None, websocket_close_timeout: Optional[int] = None, websocket_connection_timeout: Optional[int] = None, audio_streaming_language_code: Optional[str] = None, insecure: Optional[bool] = None, client_cert: Optional[bytes] = None, client_key: Optional[bytes] = None, ca_cert: Optional[bytes] = None, proxy_url: Optional[str] = None, proxy_username: Optional[str] = None, proxy_password: Optional[str] = None, proxy_agent: Optional[str] = None, degradation_preference: Optional[SoraDegradationPreference] = None) -> SoraConnection: ...
|
|
12
12
|
|
|
13
13
|
def create_audio_source(self, channels: int, sample_rate: int) -> SoraAudioSource: ...
|
|
14
14
|
|
|
@@ -156,6 +156,15 @@ class SoraConnection:
|
|
|
156
156
|
@on_data_channel.setter
|
|
157
157
|
def on_data_channel(self, arg: Callable[[str], None], /) -> None: ...
|
|
158
158
|
|
|
159
|
+
class SoraDegradationPreference(enum.IntEnum):
|
|
160
|
+
DISABLED = 0
|
|
161
|
+
|
|
162
|
+
BALANCED = 3
|
|
163
|
+
|
|
164
|
+
MAINTAIN_FRAMERATE = 1
|
|
165
|
+
|
|
166
|
+
MAINTAIN_RESOLUTION = 2
|
|
167
|
+
|
|
159
168
|
class SoraFrameTransformer:
|
|
160
169
|
def enqueue(self, arg: SoraTransformableFrame, /) -> None: ...
|
|
161
170
|
|
|
@@ -313,6 +322,132 @@ class SoraVAD:
|
|
|
313
322
|
|
|
314
323
|
def analyze(self, frame: SoraAudioFrame) -> float: ...
|
|
315
324
|
|
|
325
|
+
class SoraVideoCodecCapability:
|
|
326
|
+
@property
|
|
327
|
+
def engines(self) -> list[SoraVideoCodecCapability.Engine]: ...
|
|
328
|
+
|
|
329
|
+
def to_json(self) -> object: ...
|
|
330
|
+
|
|
331
|
+
class Parameters:
|
|
332
|
+
@property
|
|
333
|
+
def version(self) -> str | None: ...
|
|
334
|
+
|
|
335
|
+
@property
|
|
336
|
+
def openh264_path(self) -> str | None: ...
|
|
337
|
+
|
|
338
|
+
@property
|
|
339
|
+
def vpl_impl(self) -> str | None: ...
|
|
340
|
+
|
|
341
|
+
@property
|
|
342
|
+
def vpl_impl_value(self) -> int | None: ...
|
|
343
|
+
|
|
344
|
+
@property
|
|
345
|
+
def nvcodec_gpu_device_name(self) -> str | None: ...
|
|
346
|
+
|
|
347
|
+
@property
|
|
348
|
+
def amf_runtime_version(self) -> str | None: ...
|
|
349
|
+
|
|
350
|
+
@property
|
|
351
|
+
def amf_embedded_version(self) -> str | None: ...
|
|
352
|
+
|
|
353
|
+
class Codec:
|
|
354
|
+
@property
|
|
355
|
+
def type(self) -> SoraVideoCodecType: ...
|
|
356
|
+
|
|
357
|
+
@property
|
|
358
|
+
def encoder(self) -> bool: ...
|
|
359
|
+
|
|
360
|
+
@property
|
|
361
|
+
def decoder(self) -> bool: ...
|
|
362
|
+
|
|
363
|
+
@property
|
|
364
|
+
def parameters(self) -> SoraVideoCodecCapability.Parameters: ...
|
|
365
|
+
|
|
366
|
+
class Engine:
|
|
367
|
+
@property
|
|
368
|
+
def name(self) -> SoraVideoCodecImplementation: ...
|
|
369
|
+
|
|
370
|
+
@property
|
|
371
|
+
def codecs(self) -> list[SoraVideoCodecCapability.Codec]: ...
|
|
372
|
+
|
|
373
|
+
@property
|
|
374
|
+
def parameters(self) -> SoraVideoCodecCapability.Parameters: ...
|
|
375
|
+
|
|
376
|
+
class SoraVideoCodecImplementation(enum.IntEnum):
|
|
377
|
+
INTERNAL = 0
|
|
378
|
+
|
|
379
|
+
CISCO_OPENH264 = 1
|
|
380
|
+
|
|
381
|
+
INTEL_VPL = 2
|
|
382
|
+
|
|
383
|
+
NVIDIA_VIDEO_CODEC_SDK = 3
|
|
384
|
+
|
|
385
|
+
AMD_AMF = 4
|
|
386
|
+
|
|
387
|
+
class SoraVideoCodecPreference:
|
|
388
|
+
def __init__(self, codecs: Sequence[SoraVideoCodecPreference.Codec] = []) -> None: ...
|
|
389
|
+
|
|
390
|
+
@property
|
|
391
|
+
def codecs(self) -> list[SoraVideoCodecPreference.Codec]: ...
|
|
392
|
+
|
|
393
|
+
@codecs.setter
|
|
394
|
+
def codecs(self, arg: Sequence[SoraVideoCodecPreference.Codec], /) -> None: ...
|
|
395
|
+
|
|
396
|
+
def to_json(self) -> object: ...
|
|
397
|
+
|
|
398
|
+
def find(self, arg: SoraVideoCodecType, /) -> int | None: ...
|
|
399
|
+
|
|
400
|
+
def get_or_add(self, arg: SoraVideoCodecType, /) -> int: ...
|
|
401
|
+
|
|
402
|
+
def has_implementation(self, arg: SoraVideoCodecImplementation, /) -> bool: ...
|
|
403
|
+
|
|
404
|
+
def merge(self, arg: SoraVideoCodecPreference, /) -> None: ...
|
|
405
|
+
|
|
406
|
+
class Parameters:
|
|
407
|
+
def __init__(self) -> None: ...
|
|
408
|
+
|
|
409
|
+
class Codec:
|
|
410
|
+
@overload
|
|
411
|
+
def __init__(self) -> None: ...
|
|
412
|
+
|
|
413
|
+
@overload
|
|
414
|
+
def __init__(self, type: SoraVideoCodecType, encoder: SoraVideoCodecImplementation | None = None, decoder: SoraVideoCodecImplementation | None = None, parameters: SoraVideoCodecPreference.Parameters = ...) -> None: ...
|
|
415
|
+
|
|
416
|
+
@property
|
|
417
|
+
def type(self) -> SoraVideoCodecType: ...
|
|
418
|
+
|
|
419
|
+
@type.setter
|
|
420
|
+
def type(self, arg: SoraVideoCodecType, /) -> None: ...
|
|
421
|
+
|
|
422
|
+
@property
|
|
423
|
+
def encoder(self) -> SoraVideoCodecImplementation | None: ...
|
|
424
|
+
|
|
425
|
+
@encoder.setter
|
|
426
|
+
def encoder(self, arg: SoraVideoCodecImplementation, /) -> None: ...
|
|
427
|
+
|
|
428
|
+
@property
|
|
429
|
+
def decoder(self) -> SoraVideoCodecImplementation | None: ...
|
|
430
|
+
|
|
431
|
+
@decoder.setter
|
|
432
|
+
def decoder(self, arg: SoraVideoCodecImplementation, /) -> None: ...
|
|
433
|
+
|
|
434
|
+
@property
|
|
435
|
+
def parameters(self) -> SoraVideoCodecPreference.Parameters: ...
|
|
436
|
+
|
|
437
|
+
@parameters.setter
|
|
438
|
+
def parameters(self, arg: SoraVideoCodecPreference.Parameters, /) -> None: ...
|
|
439
|
+
|
|
440
|
+
class SoraVideoCodecType(enum.IntEnum):
|
|
441
|
+
VP8 = 1
|
|
442
|
+
|
|
443
|
+
VP9 = 2
|
|
444
|
+
|
|
445
|
+
H264 = 4
|
|
446
|
+
|
|
447
|
+
H265 = 5
|
|
448
|
+
|
|
449
|
+
AV1 = 3
|
|
450
|
+
|
|
316
451
|
class SoraVideoFrame:
|
|
317
452
|
def data(self) -> Annotated[ArrayLike, dict(dtype='uint8', shape=(None, None, 3))]: ...
|
|
318
453
|
|
|
@@ -348,4 +483,10 @@ class SoraVideoSource(SoraTrackInterface):
|
|
|
348
483
|
@overload
|
|
349
484
|
def on_captured(self, ndarray: Annotated[ArrayLike, dict(dtype='uint8', shape=(None, None, 3), order='C', device='cpu')], timestamp_us: int) -> None: ...
|
|
350
485
|
|
|
486
|
+
def create_video_codec_preference_from_implementation(arg0: SoraVideoCodecCapability, arg1: SoraVideoCodecImplementation, /) -> SoraVideoCodecPreference: ...
|
|
487
|
+
|
|
351
488
|
def enable_libwebrtc_log(arg: SoraLoggingSeverity, /) -> None: ...
|
|
489
|
+
|
|
490
|
+
def get_video_codec_capability(openh264: str | None = None) -> SoraVideoCodecCapability: ...
|
|
491
|
+
|
|
492
|
+
def rtc_log(arg0: SoraLoggingSeverity, arg1: str, /) -> None: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: sora_sdk
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2025.1.0
|
|
4
4
|
Summary: WebRTC SFU Sora Python SDK
|
|
5
5
|
Home-page: https://github.com/shiguredo/sora-python-sdk
|
|
6
6
|
Author-email: "Shiguredo Inc." <contact+pypi@shiguredo.jp>
|
|
@@ -187,14 +187,14 @@ Project-URL: Documentation, https://sora-python-sdk.shiguredo.jp
|
|
|
187
187
|
Project-URL: Discord, https://discord.gg/shiguredo
|
|
188
188
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
189
189
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
190
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
191
190
|
Classifier: Programming Language :: Python :: 3.11
|
|
192
191
|
Classifier: Programming Language :: Python :: 3.12
|
|
193
192
|
Classifier: Programming Language :: Python :: 3.13
|
|
194
|
-
Requires-Python: >=3.
|
|
193
|
+
Requires-Python: >=3.11
|
|
195
194
|
Description-Content-Type: text/markdown
|
|
196
195
|
License-File: LICENSE
|
|
197
196
|
License-File: NOTICE.md
|
|
197
|
+
Dynamic: home-page
|
|
198
198
|
|
|
199
199
|
# Sora Python SDK
|
|
200
200
|
|
|
@@ -228,13 +228,24 @@ Please read <https://github.com/shiguredo/oss/blob/master/README.en.md> before u
|
|
|
228
228
|
- Windows / macOS / Linux (Ubuntu) プラットフォームに対応
|
|
229
229
|
- [WebRTC 統計情報](https://www.w3.org/TR/webrtc-stats/) の取得が可能
|
|
230
230
|
- [WebRTC Encoded Transform](https://www.w3.org/TR/webrtc-encoded-transform/) に対応
|
|
231
|
+
- 回線が不安定になった際、解像度とフレームレートどちらを維持するかの設定をする [DegradationPreference](https://w3c.github.io/mst-content-hint/#degradation-preference-when-encoding) に対応
|
|
232
|
+
- MAINTAIN_FRAMERATE / MAINTAIN_RESOLUTION / BALANCED が指定できる
|
|
231
233
|
- Intel / Apple / NVIDIA のハードウェアデコーダー/エンコーダーに対応
|
|
232
|
-
- Intel VPL (AV1 / H.264 / H.265)
|
|
233
234
|
- Apple Video Toolbox (H.264 / H.265)
|
|
234
|
-
|
|
235
|
+
- macOS arm64 で利用できる
|
|
236
|
+
- Intel VPL (AV1 / H.264 / H.265)
|
|
237
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
238
|
+
- AMD AMF (VP9 /AV1 / H.264 / H.265)
|
|
239
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
240
|
+
- AV1 エンコードは Windows x86_64 でのみ利用できる
|
|
241
|
+
- VP9 はデコードのみ利用できる
|
|
242
|
+
- NVIDIA Video Codec SDK (VP8 / VP9 / AV1 / H.264 / H.265)
|
|
243
|
+
- Ubuntu x86_64 / Windows x86_64 で利用できる
|
|
244
|
+
- VP8 と VP9 はデコードのみ利用できる
|
|
235
245
|
- NVIDIA Jetson JetPack SDK (AV1 / H.264 / H.265)
|
|
236
246
|
- [各プラットフォームで利用可能な HWA への対応](https://github.com/shiguredo/sora-cpp-sdk?tab=readme-ov-file#%E7%89%B9%E5%BE%B4)
|
|
237
247
|
- [OpenH264](https://github.com/cisco/openh264) を利用した H.264 のソフトウェアエンコーダー/デコーダーに対応
|
|
248
|
+
- Ubuntu x86_64 / Ubuntu arm64 / Windows x86_64 / macOS arm64 で利用できる
|
|
238
249
|
- 音声デバイス処理に [sounddevice](https://pypi.org/project/sounddevice/) などが利用できる
|
|
239
250
|
- 映像デバイス処理に [opencv-python](https://pypi.org/project/opencv-python/) などが利用できる
|
|
240
251
|
- 音声認識などの入力に受信した音声を利用できる
|
|
@@ -282,20 +293,24 @@ PyPI 経由ではインストールできません。
|
|
|
282
293
|
|
|
283
294
|
## システム条件
|
|
284
295
|
|
|
285
|
-
- WebRTC SFU Sora
|
|
286
|
-
- Python 3.
|
|
296
|
+
- WebRTC SFU Sora 2024.1.0 以降
|
|
297
|
+
- Python 3.11 以上
|
|
298
|
+
|
|
299
|
+
## Python サポートポリシー
|
|
300
|
+
|
|
301
|
+
直近の 3 バージョンの Python をサポートします。
|
|
287
302
|
|
|
288
303
|
## 対応プラットフォーム
|
|
289
304
|
|
|
290
|
-
- Windows 11 x86_64
|
|
291
|
-
- Windows Server 2022 x86_64
|
|
292
|
-
- macOS Sequoia 15 arm64
|
|
293
|
-
- macOS Ventura 14 arm64
|
|
294
305
|
- Ubuntu 24.04 LTS x86_64
|
|
295
306
|
- Ubuntu 24.04 LTS arm64
|
|
296
307
|
- Ubuntu 22.04 LTS x86_64
|
|
297
308
|
- Ubuntu 22.04 LTS arm64 (NVIDIA Jetson JetPack SDK 6)
|
|
298
309
|
- PyPI からではなくパッケージファイルを利用してください
|
|
310
|
+
- macOS Sequoia 15 arm64
|
|
311
|
+
- macOS Ventura 14 arm64
|
|
312
|
+
- Windows 11 x86_64
|
|
313
|
+
- Windows Server 2022 x86_64
|
|
299
314
|
|
|
300
315
|
### macOS の対応バージョン
|
|
301
316
|
|
|
@@ -319,12 +334,9 @@ PyPI 経由ではインストールできません。
|
|
|
319
334
|
### 優先実装が可能な機能一覧
|
|
320
335
|
|
|
321
336
|
- Windows 11 arm64
|
|
322
|
-
- macOS Sonoma 13 arm64
|
|
323
337
|
- Ubuntu 22.04 arm64
|
|
338
|
+
- Ubuntu 22.04 arm64 (NVIDIA Jetson JetPack SDK 6.1)
|
|
324
339
|
- Ubuntu 20.04 arm64 (NVIDIA Jetson JetPack SDK 5)
|
|
325
|
-
- AMD Video Core Next (VCN) 対応
|
|
326
|
-
- VP9 / AV1 / H.264 / H.265
|
|
327
|
-
- Python 3.9 以前への対応
|
|
328
340
|
|
|
329
341
|
## サポートについて
|
|
330
342
|
|
|
@@ -347,9 +359,9 @@ Discord へお願いします。
|
|
|
347
359
|
Apache License 2.0
|
|
348
360
|
|
|
349
361
|
```text
|
|
350
|
-
Copyright 2023-
|
|
351
|
-
Copyright 2023-
|
|
352
|
-
Copyright 2023-
|
|
362
|
+
Copyright 2023-2025, tnoho (Original Author)
|
|
363
|
+
Copyright 2023-2025, Wandbox LLC (Original Author)
|
|
364
|
+
Copyright 2023-2025, Shiguredo Inc.
|
|
353
365
|
|
|
354
366
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
355
367
|
you may not use this file except in compliance with the License.
|
|
@@ -9,18 +9,27 @@ run.py
|
|
|
9
9
|
setup.py
|
|
10
10
|
src/sora_sdk/__init__.py
|
|
11
11
|
src/sora_sdk/py.typed
|
|
12
|
-
src/sora_sdk/sora_sdk_ext.cpython-
|
|
12
|
+
src/sora_sdk/sora_sdk_ext.cpython-311-darwin.so
|
|
13
13
|
src/sora_sdk/sora_sdk_ext.pyi
|
|
14
14
|
src/sora_sdk.egg-info/PKG-INFO
|
|
15
15
|
src/sora_sdk.egg-info/SOURCES.txt
|
|
16
16
|
src/sora_sdk.egg-info/dependency_links.txt
|
|
17
17
|
src/sora_sdk.egg-info/top_level.txt
|
|
18
|
+
tests/test_amd_amf.py
|
|
19
|
+
tests/test_apple_video_toolbox.py
|
|
20
|
+
tests/test_authz.py
|
|
21
|
+
tests/test_authz_simulcast.py
|
|
18
22
|
tests/test_ca_cert.py
|
|
23
|
+
tests/test_capability.py
|
|
24
|
+
tests/test_degradation_preference.py
|
|
19
25
|
tests/test_encoded_transform.py
|
|
20
|
-
tests/
|
|
26
|
+
tests/test_intel_vpl.py
|
|
27
|
+
tests/test_memory_leak.py
|
|
21
28
|
tests/test_messaging.py
|
|
22
29
|
tests/test_messaging_header.py
|
|
30
|
+
tests/test_nvidia_video_codec_sdk.py
|
|
23
31
|
tests/test_openh264.py
|
|
32
|
+
tests/test_opus.py
|
|
24
33
|
tests/test_re_offer_re_answer_sdp.py
|
|
25
34
|
tests/test_sendonly_recvonly.py
|
|
26
35
|
tests/test_signaling.py
|