sora-sdk 2024.4.0.dev13__tar.gz → 2024.4.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.
Files changed (29) hide show
  1. {sora_sdk-2024.4.0.dev13/src/sora_sdk.egg-info → sora_sdk-2024.4.0.dev15}/PKG-INFO +1 -1
  2. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/pyproject.toml +1 -1
  3. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15/src/sora_sdk.egg-info}/PKG-INFO +1 -1
  4. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_macos.py +62 -0
  5. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_simulcast.py +1 -0
  6. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/LICENSE +0 -0
  7. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/MANIFEST.in +0 -0
  8. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/NOTICE.md +0 -0
  9. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/README.md +0 -0
  10. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/buildbase.py +0 -0
  11. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/pypath.py +0 -0
  12. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/run.py +0 -0
  13. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/setup.cfg +0 -0
  14. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/setup.py +0 -0
  15. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/src/sora_sdk/__init__.py +0 -0
  16. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/src/sora_sdk/py.typed +0 -0
  17. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/src/sora_sdk/sora_sdk_ext.cpython-310-darwin.so +0 -0
  18. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/src/sora_sdk/sora_sdk_ext.pyi +0 -0
  19. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/src/sora_sdk.egg-info/SOURCES.txt +0 -0
  20. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/src/sora_sdk.egg-info/dependency_links.txt +0 -0
  21. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/src/sora_sdk.egg-info/top_level.txt +0 -0
  22. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_ca_cert.py +0 -0
  23. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_messaging.py +0 -0
  24. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_openh264.py +0 -0
  25. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_re_offer_re_answer_sdp.py +0 -0
  26. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_sendonly_recvonly.py +0 -0
  27. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_signaling_message.py +0 -0
  28. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_sora_disconnect.py +0 -0
  29. {sora_sdk-2024.4.0.dev13 → sora_sdk-2024.4.0.dev15}/tests/test_vad.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sora_sdk
3
- Version: 2024.4.0.dev13
3
+ Version: 2024.4.0.dev15
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>
@@ -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 = "2024.4.0.dev13"
4
+ version = "2024.4.0.dev15"
5
5
  description = "WebRTC SFU Sora Python SDK"
6
6
  readme = "README.md"
7
7
  license = { file = "LICENSE" }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sora_sdk
3
- Version: 2024.4.0.dev13
3
+ Version: 2024.4.0.dev15
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>
@@ -58,6 +58,68 @@ def test_macos_video_hwa_sendonly(setup, video_codec_type):
58
58
  assert outbound_rtp_stats["packetsSent"] > 0
59
59
 
60
60
 
61
+ @pytest.mark.skipif(sys.platform != "darwin", reason="macOS でのみ実行する")
62
+ @pytest.mark.parametrize(
63
+ ("video_codec_type", "expected_implementation"),
64
+ [
65
+ ("H264", "SimulcastEncoderAdapter (VideoToolbox, VideoToolbox, VideoToolbox)"),
66
+ ("H265", "SimulcastEncoderAdapter (VideoToolbox, VideoToolbox, VideoToolbox)"),
67
+ ],
68
+ )
69
+ def test_macos_simulcast(setup, video_codec_type, expected_implementation):
70
+ signaling_urls = setup.get("signaling_urls")
71
+ channel_id_prefix = setup.get("channel_id_prefix")
72
+ metadata = setup.get("metadata")
73
+
74
+ channel_id = f"{channel_id_prefix}_{__name__}_{sys._getframe().f_code.co_name}_{uuid.uuid4()}"
75
+
76
+ sendonly = SoraClient(
77
+ signaling_urls,
78
+ SoraRole.SENDONLY,
79
+ channel_id,
80
+ simulcast=True,
81
+ audio=False,
82
+ video=True,
83
+ video_codec_type=video_codec_type,
84
+ video_bit_rate=3000,
85
+ metadata=metadata,
86
+ video_width=1280,
87
+ video_height=720,
88
+ use_hwa=True,
89
+ )
90
+ sendonly.connect(fake_video=True)
91
+
92
+ time.sleep(5)
93
+
94
+ sendonly_stats = sendonly.get_stats()
95
+
96
+ sendonly.disconnect()
97
+
98
+ # "type": "answer" の SDP で Simulcast があるかどうか
99
+ assert sendonly.answer_message is not None
100
+ assert "sdp" in sendonly.answer_message
101
+ assert "a=simulcast:send r0;r1;r2" in sendonly.answer_message["sdp"]
102
+
103
+ # codec が無かったら StopIteration 例外が上がる
104
+ sendonly_codec_stats = next(s for s in sendonly_stats if s.get("type") == "codec")
105
+ assert sendonly_codec_stats["mimeType"] == f"video/{video_codec_type}"
106
+
107
+ # 複数のoutbound-rtp統計情報を取得
108
+ outbound_rtp_stats = [
109
+ s for s in sendonly_stats if s.get("type") == "outbound-rtp" and s.get("kind") == "video"
110
+ ]
111
+ assert len(outbound_rtp_stats) == 3
112
+
113
+ # rid でソート
114
+ sorted_stats = sorted(outbound_rtp_stats, key=lambda x: x.get("rid", ""))
115
+
116
+ for i, rtp_stat in enumerate(sorted_stats):
117
+ assert rtp_stat["rid"] == f"r{i}"
118
+ assert rtp_stat["encoderImplementation"] == expected_implementation
119
+ assert rtp_stat["bytesSent"] > 0
120
+ assert rtp_stat["packetsSent"] > 0
121
+
122
+
61
123
  @pytest.mark.skip(reason="ローカルでは成功する")
62
124
  def test_macos_h264_sendonly_recvonly(setup):
63
125
  signaling_urls = setup.get("signaling_urls")
@@ -65,3 +65,4 @@ def test_simulcast(setup, video_codec_type, expected_implementation):
65
65
  assert rtp_stat["encoderImplementation"] == expected_implementation
66
66
  assert rtp_stat["bytesSent"] > 0
67
67
  assert rtp_stat["packetsSent"] > 0
68
+