sora-sdk 2025.1.0.dev14__tar.gz → 2025.1.0.dev15__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-2025.1.0.dev14/src/sora_sdk.egg-info → sora_sdk-2025.1.0.dev15}/PKG-INFO +1 -1
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/pyproject.toml +1 -1
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk/sora_sdk_ext.cpython-311-darwin.so +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk/sora_sdk_ext.pyi +2 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15/src/sora_sdk.egg-info}/PKG-INFO +1 -1
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk.egg-info/SOURCES.txt +0 -1
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_openh264.py +73 -0
- sora_sdk-2025.1.0.dev14/tests/test_codec_preference.py +0 -124
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/LICENSE +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/MANIFEST.in +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/NOTICE.md +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/README.md +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/buildbase.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/pypath.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/run.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/setup.cfg +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/setup.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk/__init__.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk/py.typed +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk.egg-info/dependency_links.txt +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk.egg-info/top_level.txt +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_amd_amf.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_apple_video_toolbox.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_authz.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_authz_simulcast.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_ca_cert.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_capability.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_degradation_preference.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_encoded_transform.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_intel_vpl.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_memory_leak.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_messaging.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_messaging_header.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_nvidia_video_codec_sdk.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_opus.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_re_offer_re_answer_sdp.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_sendonly_recvonly.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_signaling.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_signaling_message.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_signaling_notify.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_simulcast.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_sora_disconnect.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_type_disconnect.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_type_switched.py +0 -0
- {sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/tests/test_vad.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "sora_sdk"
|
|
3
3
|
authors = [{ name = "Shiguredo Inc.", email = "contact+pypi@shiguredo.jp" }]
|
|
4
|
-
version = "2025.1.0.
|
|
4
|
+
version = "2025.1.0.dev15"
|
|
5
5
|
description = "WebRTC SFU Sora Python SDK"
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
license = { file = "LICENSE" }
|
{sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk/sora_sdk_ext.cpython-311-darwin.so
RENAMED
|
Binary file
|
|
@@ -488,3 +488,5 @@ def create_video_codec_preference_from_implementation(arg0: SoraVideoCodecCapabi
|
|
|
488
488
|
def enable_libwebrtc_log(arg: SoraLoggingSeverity, /) -> None: ...
|
|
489
489
|
|
|
490
490
|
def get_video_codec_capability(openh264: str | None = None) -> SoraVideoCodecCapability: ...
|
|
491
|
+
|
|
492
|
+
def rtc_log(arg0: SoraLoggingSeverity, arg1: str, /) -> None: ...
|
|
@@ -6,12 +6,85 @@ import pytest
|
|
|
6
6
|
from client import SoraClient, SoraRole
|
|
7
7
|
|
|
8
8
|
from sora_sdk import (
|
|
9
|
+
Sora,
|
|
9
10
|
SoraVideoCodecImplementation,
|
|
10
11
|
SoraVideoCodecPreference,
|
|
11
12
|
SoraVideoCodecType,
|
|
13
|
+
get_video_codec_capability,
|
|
12
14
|
)
|
|
13
15
|
|
|
14
16
|
|
|
17
|
+
def test_openh264_get_codec_capability(setup):
|
|
18
|
+
openh264_path = setup.get("openh264_path")
|
|
19
|
+
capability = get_video_codec_capability(openh264_path)
|
|
20
|
+
|
|
21
|
+
cisco_openh264_available = False
|
|
22
|
+
|
|
23
|
+
for e in capability.engines:
|
|
24
|
+
if e.name == SoraVideoCodecImplementation.CISCO_OPENH264:
|
|
25
|
+
cisco_openh264_available = True
|
|
26
|
+
assert cisco_openh264_available is True
|
|
27
|
+
|
|
28
|
+
codecs = []
|
|
29
|
+
for e in capability.engines:
|
|
30
|
+
# macOS では INTERNAL の Video Toolbox が利用されるので OpenH264 は採用しないようにする
|
|
31
|
+
if sys.platform == "darwin":
|
|
32
|
+
if e.name == SoraVideoCodecImplementation.CISCO_OPENH264:
|
|
33
|
+
continue
|
|
34
|
+
|
|
35
|
+
for c in e.codecs:
|
|
36
|
+
if c.decoder or c.encoder:
|
|
37
|
+
# encoder/decoder どちらかが true であれば採用する
|
|
38
|
+
if c.decoder or c.encoder:
|
|
39
|
+
codecs.append(
|
|
40
|
+
SoraVideoCodecPreference.Codec(
|
|
41
|
+
type=c.type,
|
|
42
|
+
decoder=e.name,
|
|
43
|
+
encoder=e.name,
|
|
44
|
+
)
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
# エラーにならないことを確認する
|
|
48
|
+
Sora(
|
|
49
|
+
video_codec_preference=SoraVideoCodecPreference(
|
|
50
|
+
codecs=codecs,
|
|
51
|
+
),
|
|
52
|
+
openh264=openh264_path,
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def test_openh264_video_codec_preference(setup):
|
|
57
|
+
openh264_path = setup.get("openh264_path")
|
|
58
|
+
Sora(
|
|
59
|
+
video_codec_preference=SoraVideoCodecPreference(
|
|
60
|
+
codecs=[
|
|
61
|
+
SoraVideoCodecPreference.Codec(
|
|
62
|
+
type=SoraVideoCodecType.VP8,
|
|
63
|
+
decoder=SoraVideoCodecImplementation.INTERNAL,
|
|
64
|
+
encoder=SoraVideoCodecImplementation.INTERNAL,
|
|
65
|
+
),
|
|
66
|
+
SoraVideoCodecPreference.Codec(
|
|
67
|
+
type=SoraVideoCodecType.VP9,
|
|
68
|
+
decoder=SoraVideoCodecImplementation.INTERNAL,
|
|
69
|
+
encoder=SoraVideoCodecImplementation.INTERNAL,
|
|
70
|
+
),
|
|
71
|
+
SoraVideoCodecPreference.Codec(
|
|
72
|
+
type=SoraVideoCodecType.AV1,
|
|
73
|
+
decoder=SoraVideoCodecImplementation.INTERNAL,
|
|
74
|
+
encoder=SoraVideoCodecImplementation.INTERNAL,
|
|
75
|
+
),
|
|
76
|
+
# H.264 だけは OpenH264 を利用するようにする
|
|
77
|
+
SoraVideoCodecPreference.Codec(
|
|
78
|
+
type=SoraVideoCodecType.H264,
|
|
79
|
+
decoder=SoraVideoCodecImplementation.CISCO_OPENH264,
|
|
80
|
+
encoder=SoraVideoCodecImplementation.CISCO_OPENH264,
|
|
81
|
+
),
|
|
82
|
+
],
|
|
83
|
+
),
|
|
84
|
+
openh264=openh264_path,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
|
|
15
88
|
def test_openh264_sendonly_recvonly(setup):
|
|
16
89
|
signaling_urls = setup.get("signaling_urls")
|
|
17
90
|
channel_id_prefix = setup.get("channel_id_prefix")
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
|
|
3
|
-
from sora_sdk import (
|
|
4
|
-
Sora,
|
|
5
|
-
SoraVideoCodecImplementation,
|
|
6
|
-
SoraVideoCodecPreference,
|
|
7
|
-
SoraVideoCodecType,
|
|
8
|
-
get_video_codec_capability,
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
# このテストでは Linux では NVIDIA Video Codec SDK > Intel VPL > OpenH264 の順で優先される
|
|
13
|
-
# このテストでは Windows では NVIDIA Video Codec SDK > Intel VPL の順で優先される
|
|
14
|
-
# このテストでは macOS では Video Toolbox >OpenH264 の順で優先される
|
|
15
|
-
def test_get_codec_capability(setup):
|
|
16
|
-
openh264_path = setup.get("openh264_path")
|
|
17
|
-
capability = get_video_codec_capability(openh264_path)
|
|
18
|
-
|
|
19
|
-
intel_vpl_available = False
|
|
20
|
-
cisco_openh264_available = False
|
|
21
|
-
nvidia_video_codec_sdk_available = False
|
|
22
|
-
|
|
23
|
-
for e in capability.engines:
|
|
24
|
-
if e.name == SoraVideoCodecImplementation.INTEL_VPL:
|
|
25
|
-
intel_vpl_available = True
|
|
26
|
-
if e.name == SoraVideoCodecImplementation.CISCO_OPENH264:
|
|
27
|
-
cisco_openh264_available = True
|
|
28
|
-
if e.name == SoraVideoCodecImplementation.NVIDIA_VIDEO_CODEC_SDK:
|
|
29
|
-
nvidia_video_codec_sdk_available = True
|
|
30
|
-
|
|
31
|
-
match sys.platform:
|
|
32
|
-
case "linux":
|
|
33
|
-
assert openh264_path is not None
|
|
34
|
-
assert cisco_openh264_available is True
|
|
35
|
-
case "darwin":
|
|
36
|
-
assert openh264_path is not None
|
|
37
|
-
assert cisco_openh264_available is True
|
|
38
|
-
case "win32":
|
|
39
|
-
# SDK 的には Windows は非対応だが GitHub Actions の E2E テストの OpenH264 のパスは指定してある
|
|
40
|
-
assert openh264_path is not None
|
|
41
|
-
assert cisco_openh264_available is True
|
|
42
|
-
|
|
43
|
-
codecs = []
|
|
44
|
-
for e in capability.engines:
|
|
45
|
-
if sys.platform == "linux":
|
|
46
|
-
# Intel VPL があったら Open H.264 は採用しない
|
|
47
|
-
if intel_vpl_available and e.name == SoraVideoCodecImplementation.CISCO_OPENH264:
|
|
48
|
-
continue
|
|
49
|
-
|
|
50
|
-
# NVIDIA Video Codec SDK があったら Intel VPL は採用しない
|
|
51
|
-
if (
|
|
52
|
-
nvidia_video_codec_sdk_available
|
|
53
|
-
and e.name == SoraVideoCodecImplementation.INTEL_VPL
|
|
54
|
-
):
|
|
55
|
-
continue
|
|
56
|
-
|
|
57
|
-
# NVIDIA Video Codec SDK があったら OpenH264 は採用しない
|
|
58
|
-
if (
|
|
59
|
-
nvidia_video_codec_sdk_available
|
|
60
|
-
and e.name == SoraVideoCodecImplementation.CISCO_OPENH264
|
|
61
|
-
):
|
|
62
|
-
continue
|
|
63
|
-
|
|
64
|
-
# macOS では INTERNAL の Video Toolbox が利用されるので OpenH264 は採用しないようにする
|
|
65
|
-
if sys.platform == "darwin":
|
|
66
|
-
if e.name == SoraVideoCodecImplementation.CISCO_OPENH264:
|
|
67
|
-
continue
|
|
68
|
-
|
|
69
|
-
for c in e.codecs:
|
|
70
|
-
if c.decoder or c.encoder:
|
|
71
|
-
# encoder/decoder どちらかが true であれば採用する
|
|
72
|
-
if c.decoder or c.encoder:
|
|
73
|
-
codecs.append(
|
|
74
|
-
SoraVideoCodecPreference.Codec(
|
|
75
|
-
type=c.type,
|
|
76
|
-
decoder=e.name,
|
|
77
|
-
encoder=e.name,
|
|
78
|
-
)
|
|
79
|
-
)
|
|
80
|
-
|
|
81
|
-
# print(e.parameters.nvcodec_gpu_device_name)
|
|
82
|
-
# print(e.parameters.openh264_path)
|
|
83
|
-
# print(e.parameters.version)
|
|
84
|
-
# print(e.parameters.vpl_impl)
|
|
85
|
-
# print(e.parameters.vpl_impl_value)
|
|
86
|
-
|
|
87
|
-
Sora(
|
|
88
|
-
video_codec_preference=SoraVideoCodecPreference(
|
|
89
|
-
codecs=codecs,
|
|
90
|
-
),
|
|
91
|
-
openh264=openh264_path,
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
def test_video_codec_preference(setup):
|
|
96
|
-
openh264_path = setup.get("openh264_path")
|
|
97
|
-
Sora(
|
|
98
|
-
video_codec_preference=SoraVideoCodecPreference(
|
|
99
|
-
codecs=[
|
|
100
|
-
SoraVideoCodecPreference.Codec(
|
|
101
|
-
type=SoraVideoCodecType.VP8,
|
|
102
|
-
decoder=SoraVideoCodecImplementation.INTERNAL,
|
|
103
|
-
encoder=SoraVideoCodecImplementation.INTERNAL,
|
|
104
|
-
),
|
|
105
|
-
SoraVideoCodecPreference.Codec(
|
|
106
|
-
type=SoraVideoCodecType.VP9,
|
|
107
|
-
decoder=SoraVideoCodecImplementation.INTERNAL,
|
|
108
|
-
encoder=SoraVideoCodecImplementation.INTERNAL,
|
|
109
|
-
),
|
|
110
|
-
SoraVideoCodecPreference.Codec(
|
|
111
|
-
type=SoraVideoCodecType.AV1,
|
|
112
|
-
decoder=SoraVideoCodecImplementation.INTERNAL,
|
|
113
|
-
encoder=SoraVideoCodecImplementation.INTERNAL,
|
|
114
|
-
),
|
|
115
|
-
# H.264 だけは OpenH264 を利用するようにする
|
|
116
|
-
SoraVideoCodecPreference.Codec(
|
|
117
|
-
type=SoraVideoCodecType.H264,
|
|
118
|
-
decoder=SoraVideoCodecImplementation.CISCO_OPENH264,
|
|
119
|
-
encoder=SoraVideoCodecImplementation.CISCO_OPENH264,
|
|
120
|
-
),
|
|
121
|
-
],
|
|
122
|
-
),
|
|
123
|
-
openh264=openh264_path,
|
|
124
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sora_sdk-2025.1.0.dev14 → sora_sdk-2025.1.0.dev15}/src/sora_sdk.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|