Skip to content

Commit 59fbfff

Browse files
committed
Merge branch 'develop' into feature/amd-amf
2 parents eaecb8d + 43481c5 commit 59fbfff

18 files changed

+712
-340
lines changed

.github/workflows/build-debug.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ env:
2020
TEST_CHANNEL_ID_PREFIX: ${{ secrets.TEST_CHANNEL_ID_PREFIX }}
2121
TEST_SECRET_KEY: ${{ secrets.TEST_SECRET_KEY }}
2222
TEST_API_URL: ${{ secrets.TEST_API_URL }}
23+
OPENH264_VERSION: 2.6.0
2324

2425
jobs:
2526
build-linux:
@@ -218,9 +219,9 @@ jobs:
218219
sudo apt-get -y install libva2 libdrm2 libva-dev libdrm-dev libx11-dev portaudio19-dev
219220
220221
# Download OpneH264
221-
curl -LO http://ciscobinary.openh264.org/libopenh264-2.4.1-linux64.7.so.bz2
222-
bzip2 -d libopenh264-2.4.1-linux64.7.so.bz2
223-
mv libopenh264-2.4.1-linux64.7.so libopenh264.so
222+
curl -LO http://ciscobinary.openh264.org/libopenh264-${{ env.OPENH264_VERSION }}-linux64.7.so.bz2
223+
bzip2 -d libopenh264-${{ env.OPENH264_VERSION }}-linux64.7.so.bz2
224+
mv libopenh264-${{ env.OPENH264_VERSION }}-linux64.7.so libopenh264.so
224225
echo "OPENH264_PATH=`pwd`/libopenh264.so" >> $GITHUB_ENV
225226
- name: Copy libwebrtc to sora-python-sdk
226227
if: inputs.buildType == 'Debug'

.github/workflows/build.yml

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ env:
2020
TEST_CHANNEL_ID_PREFIX: ${{ secrets.TEST_CHANNEL_ID_PREFIX }}
2121
TEST_SECRET_KEY: ${{ secrets.TEST_SECRET_KEY }}
2222
TEST_API_URL: ${{ secrets.TEST_API_URL }}
23+
OPENH264_VERSION: 2.6.0
2324

2425
jobs:
2526
# まず pyi を生成する
@@ -77,7 +78,6 @@ jobs:
7778
python_host_platform: "macosx-14.0-arm64"
7879
archflags: "-arch arm64"
7980
python_version:
80-
- "3.10"
8181
- "3.11"
8282
- "3.12"
8383
- "3.13"
@@ -139,15 +139,15 @@ jobs:
139139
env:
140140
SORA_SDK_TARGET: ${{ matrix.platform.target }}
141141

142-
# Ubuntu 向けに Python 3.10 では E2E テストを実行する
143-
- if: ${{ matrix.platform.os == 'ubuntu' && matrix.platform.arch == 'x86_64' && matrix.python_version == '3.10' }}
142+
# Ubuntu 向けに Python 3.11 では E2E テストを実行する
143+
- if: ${{ matrix.platform.os == 'ubuntu' && matrix.platform.arch == 'x86_64' && matrix.python_version == '3.11' }}
144144
name: Download openh264
145145
run: |
146-
curl -LO http://ciscobinary.openh264.org/libopenh264-2.4.1-linux64.7.so.bz2
147-
bzip2 -d libopenh264-2.4.1-linux64.7.so.bz2
148-
mv libopenh264-2.4.1-linux64.7.so libopenh264.so
146+
curl -LO http://ciscobinary.openh264.org/libopenh264-${{ env.OPENH264_VERSION }}-linux64.8.so.bz2
147+
bzip2 -d libopenh264-${{ env.OPENH264_VERSION }}-linux64.8.so.bz2
148+
mv libopenh264-${{ env.OPENH264_VERSION }}-linux64.8.so libopenh264.so
149149
echo "OPENH264_PATH=$(pwd)/libopenh264.so" >> $GITHUB_ENV
150-
- if: ${{ matrix.platform.os == 'ubuntu' && matrix.platform.arch == 'x86_64' && matrix.python_version == '3.10' }}
150+
- if: ${{ matrix.platform.os == 'ubuntu' && matrix.platform.arch == 'x86_64' && matrix.python_version == '3.11' }}
151151
run: uv run pytest tests -s
152152

153153

@@ -224,7 +224,6 @@ jobs:
224224
fail-fast: false
225225
matrix:
226226
python_version:
227-
- "3.10"
228227
- "3.11"
229228
- "3.12"
230229
- "3.13"
@@ -295,7 +294,6 @@ jobs:
295294
- name: macos-14_arm64
296295
- name: windows-2022
297296
python_version:
298-
- "3.10"
299297
- "3.11"
300298
- "3.12"
301299
- "3.13"
@@ -316,7 +314,7 @@ jobs:
316314
fi
317315
# matrix の中で1個だけソースディストリビューション用のデータを残しておく
318316
- run: mv *.tar.gz dist/
319-
if: ${{ matrix.platform.name == 'macos-15_arm64' && matrix.python_version == '3.10' }}
317+
if: ${{ matrix.platform.name == 'macos-15_arm64' && matrix.python_version == '3.11' }}
320318

321319
# テスト用
322320
# - name: Publish package to TestPyPI
@@ -349,8 +347,6 @@ jobs:
349347
timeout-minutes: 60
350348
steps:
351349
- uses: actions/checkout@v4
352-
- uses: ./.github/actions/download
353-
with: { "platform": "ubuntu-22.04_x86_64", "python_version": "3.10" }
354350
- uses: ./.github/actions/download
355351
with: { "platform": "ubuntu-22.04_x86_64", "python_version": "3.11" }
356352
- uses: ./.github/actions/download
@@ -359,24 +355,18 @@ jobs:
359355
with: { "platform": "ubuntu-22.04_x86_64", "python_version": "3.13" }
360356
- uses: ./.github/actions/download
361357
with: { "platform": "ubuntu-24.04_armv8", "python_version": "3.12" }
362-
- uses: ./.github/actions/download
363-
with: { "platform": "macos-15_arm64", "python_version": "3.10" }
364358
- uses: ./.github/actions/download
365359
with: { "platform": "macos-15_arm64", "python_version": "3.11" }
366360
- uses: ./.github/actions/download
367361
with: { "platform": "macos-15_arm64", "python_version": "3.12" }
368362
- uses: ./.github/actions/download
369363
with: { "platform": "macos-15_arm64", "python_version": "3.13" }
370-
- uses: ./.github/actions/download
371-
with: { "platform": "macos-14_arm64", "python_version": "3.10" }
372364
- uses: ./.github/actions/download
373365
with: { "platform": "macos-14_arm64", "python_version": "3.11" }
374366
- uses: ./.github/actions/download
375367
with: { "platform": "macos-14_arm64", "python_version": "3.12" }
376368
- uses: ./.github/actions/download
377369
with: { "platform": "macos-14_arm64", "python_version": "3.13" }
378-
- uses: ./.github/actions/download
379-
with: { "platform": "windows-2022", "python_version": "3.10" }
380370
- uses: ./.github/actions/download
381371
with: { "platform": "windows-2022", "python_version": "3.11" }
382372
- uses: ./.github/actions/download

.github/workflows/e2e-test-amf.yml renamed to .github/workflows/e2e-test-amd-amf.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@ env:
2222

2323
jobs:
2424
e2e_test_amf:
25-
runs-on: [self-hosted, linux, x64, AMD-AMF]
25+
runs-on:
26+
group: Self
27+
labels: [self-hosted, linux, x64, AMD-AMF]
2628
timeout-minutes: 15
27-
if: >-
29+
if:
2830
${{
2931
contains(github.event.head_commit.message, '[e2e]') ||
3032
contains(github.ref, 'feature/e2e-test') ||
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: e2e-test-apple-video-toolbox
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
paths:
7+
- ".github/workflows/e2e-test-apple-video-toolbox.yml"
8+
- "tests/test_apple_video_toolbox.py"
9+
# C++ SDK のアップデートしたときテストするため
10+
- "VERSION"
11+
schedule:
12+
# UTC の 01:00 は JST だと 10:00 。
13+
# 1-5 で 月曜日から金曜日
14+
- cron: "0 1 * * 1-5"
15+
16+
env:
17+
TEST_SIGNALING_URLS: ${{ secrets.TEST_SIGNALING_URLS }}
18+
TEST_CHANNEL_ID_PREFIX: ${{ secrets.TEST_CHANNEL_ID_PREFIX }}
19+
TEST_SECRET_KEY: ${{ secrets.TEST_SECRET_KEY }}
20+
TEST_API_URL: ${{ secrets.TEST_API_URL }}
21+
APPLE_VIDEO_TOOLBOX: true
22+
23+
jobs:
24+
e2e_test_apple_video_toolbox:
25+
strategy:
26+
fail-fast: true
27+
matrix:
28+
python_version:
29+
# TODO: push 時には 3.13 でテストする、schedule 時には全部でテストする
30+
# - "3.11"
31+
# - "3.12"
32+
- "3.13"
33+
runs-on:
34+
group: Self
35+
labels: [self-hosted, self-hosted, macOS, ARM64, M2Pro]
36+
timeout-minutes: 15
37+
if: >-
38+
${{
39+
contains(github.event.head_commit.message, '[e2e]') ||
40+
contains(github.ref, 'feature/e2e-test') ||
41+
github.event_name == 'workflow_dispatch' ||
42+
github.event_name == 'push' ||
43+
github.event_name == 'schedule'
44+
}}
45+
steps:
46+
- uses: actions/checkout@v4
47+
- uses: astral-sh/setup-uv@v5
48+
with:
49+
enable-cache: false
50+
- run: uv python pin ${{ matrix.python_version }}
51+
- run: uv sync
52+
- run: uv run python run.py macos_arm64
53+
- run: uv run pytest tests/test_apple_video_toolbox.py -v
54+
55+
# slack_notify_succeeded:
56+
# needs: [e2e_test_ubuntu, e2e_test_macos, e2e_test_windows]
57+
# runs-on: ubuntu-24.04
58+
# if: success()
59+
# steps:
60+
# - name: Slack Notification
61+
# uses: rtCamp/action-slack-notify@v2
62+
# env:
63+
# SLACK_CHANNEL: sora-python-sdk
64+
# SLACK_COLOR: good
65+
# SLACK_TITLE: SUCCEEDED
66+
# SLACK_ICON_EMOJI: ":star-struck:"
67+
# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
68+
69+
slack_notify_failed:
70+
needs: [e2e_test_apple_video_toolbox]
71+
runs-on: ubuntu-24.04
72+
if: failure()
73+
steps:
74+
- name: Slack Notification
75+
uses: rtCamp/action-slack-notify@v2
76+
env:
77+
SLACK_CHANNEL: sora-python-sdk
78+
SLACK_COLOR: danger
79+
SLACK_TITLE: "FAILED"
80+
SLACK_ICON_EMOJI: ":japanese_ogre:"
81+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

.github/workflows/e2e-test-vpl.yml renamed to .github/workflows/e2e-test-intel-vpl.yml

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
name: e2e-test-vpl
1+
name: e2e-test-intel-vpl
22

33
on:
44
workflow_dispatch:
55
push:
66
paths:
7-
- ".github/workflows/e2e-test-vpl.yml"
7+
- ".github/workflows/e2e-test-intel-vpl.yml"
88
- "tests/test_intel_vpl.py"
9-
# paths-ignore:
10-
# - "**.md"
9+
# C++ SDK のアップデートしたときテストするため
10+
- "VERSION"
1111
schedule:
1212
# UTC の 01:00 は JST だと 10:00 。
1313
# 1-5 で 月曜日から金曜日
@@ -23,8 +23,18 @@ env:
2323
LIBVA_MESSAGING_LEVEL: 0
2424

2525
jobs:
26-
e2e_test_vpl:
27-
runs-on: [self-hosted, linux, x64, Intel-VPL]
26+
e2e_test_intel_vpl:
27+
strategy:
28+
fail-fast: true
29+
matrix:
30+
python_version:
31+
# TODO: push 時には 3.13 でテストする、schedule 時には全部でテストする
32+
# - "3.11"
33+
# - "3.12"
34+
- "3.13"
35+
runs-on:
36+
group: Self
37+
labels: [self-hosted, linux, x64, Intel-VPL]
2838
timeout-minutes: 15
2939
if: >-
3040
${{
@@ -39,13 +49,13 @@ jobs:
3949
- uses: astral-sh/setup-uv@v5
4050
with:
4151
enable-cache: false
42-
- run: uv python pin 3.13
52+
- run: uv python pin ${{ matrix.python_version }}
4353
- run: uv sync
4454
- run: uv run python run.py ubuntu-24.04_x86_64
45-
- run: uv run pytest tests/test_intel_vpl.py -s
55+
- run: uv run pytest tests/test_intel_vpl.py -v
4656

4757
# slack_notify_succeeded:
48-
# needs: [e2e_test_ubuntu, e2e_test_macos, e2e_test_windows]
58+
# needs: [e2e_test_intel_vpl]
4959
# runs-on: ubuntu-24.04
5060
# if: success()
5161
# steps:
@@ -59,7 +69,7 @@ jobs:
5969
# SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
6070

6171
slack_notify_failed:
62-
needs: [e2e_test_vpl]
72+
needs: [e2e_test_intel_vpl]
6373
runs-on: ubuntu-24.04
6474
if: failure()
6575
steps:

.github/workflows/e2e-test.yml

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@ on:
55
push:
66
paths-ignore:
77
- "**.md"
8+
- ".github/workflows/e2e-test-intel-vpl.yml"
9+
- ".github/workflows/e2e-test-amd-amf.yml"
10+
- ".github/workflows/e2e-test-apple-video-toolbox.yml"
811
- "tests/test_intel_vpl.py"
912
- "tests/test_amd_amf.py"
13+
- "tests/test_apple_video_toolbox.py"
1014
schedule:
1115
# UTC の 01:00 は JST だと 10:00 。
1216
# 1-5 で 月曜日から金曜日
@@ -17,14 +21,14 @@ env:
1721
TEST_CHANNEL_ID_PREFIX: ${{ secrets.TEST_CHANNEL_ID_PREFIX }}
1822
TEST_SECRET_KEY: ${{ secrets.TEST_SECRET_KEY }}
1923
TEST_API_URL: ${{ secrets.TEST_API_URL }}
20-
OPENH264_VERSION: 2.5.0
24+
OPENH264_VERSION: 2.6.0
2125

2226
jobs:
2327
e2e_test_ubuntu:
2428
strategy:
2529
fail-fast: false
2630
matrix:
27-
python_version: ["3.10", "3.11", "3.12", "3.13"]
31+
python_version: ["3.11", "3.12", "3.13"]
2832
platform:
2933
- target: "ubuntu-22.04_x86_64"
3034
runs-on: "ubuntu-22.04"
@@ -70,23 +74,23 @@ jobs:
7074
sudo ./llvm.sh 18
7175
- name: Download openh264
7276
run: |
73-
curl -LO http://ciscobinary.openh264.org/libopenh264-${{ env.OPENH264_VERSION }}-${{ matrix.platform.openh264_arch }}.7.so.bz2
74-
bzip2 -d libopenh264-${{ env.OPENH264_VERSION }}-${{ matrix.platform.openh264_arch }}.7.so.bz2
75-
mv libopenh264-${{ env.OPENH264_VERSION }}-${{ matrix.platform.openh264_arch }}.7.so libopenh264.so
77+
curl -LO http://ciscobinary.openh264.org/libopenh264-${{ env.OPENH264_VERSION }}-${{ matrix.platform.openh264_arch }}.8.so.bz2
78+
bzip2 -d libopenh264-${{ env.OPENH264_VERSION }}-${{ matrix.platform.openh264_arch }}.8.so.bz2
79+
mv libopenh264-${{ env.OPENH264_VERSION }}-${{ matrix.platform.openh264_arch }}.8.so libopenh264.so
7680
echo "OPENH264_PATH=$(pwd)/libopenh264.so" >> $GITHUB_ENV
7781
- uses: astral-sh/setup-uv@v5
7882
with:
7983
enable-cache: false
8084
- run: uv python pin ${{ matrix.python_version }}
8185
- run: uv sync
8286
- run: uv run python run.py ${{ matrix.platform.target }}
83-
- run: uv run pytest tests -s
87+
- run: uv run pytest tests -v
8488

8589
e2e_test_macos:
8690
strategy:
8791
fail-fast: false
8892
matrix:
89-
python_version: ["3.10", "3.11", "3.12", "3.13"]
93+
python_version: ["3.11", "3.12", "3.13"]
9094
# macos-13 は test_macos.py が上手くテストが動かないのでスキップ
9195
os: ["macos-14", "macos-15"]
9296
runs-on: ${{ matrix.os }}
@@ -113,13 +117,13 @@ jobs:
113117
- run: uv python pin ${{ matrix.python_version }}
114118
- run: uv sync
115119
- run: uv run python run.py macos_arm64
116-
- run: uv run pytest tests -s
120+
- run: uv run pytest tests -v
117121

118122
e2e_test_windows:
119123
strategy:
120124
fail-fast: false
121125
matrix:
122-
python_version: ["3.10", "3.11", "3.12", "3.13"]
126+
python_version: ["3.11", "3.12", "3.13"]
123127
runs-on: windows-2022
124128
timeout-minutes: 15
125129
env:
@@ -149,7 +153,7 @@ jobs:
149153
- run: uv python pin ${{ matrix.python_version }}
150154
- run: uv sync
151155
- run: uv run python run.py windows_x86_64
152-
- run: uv run pytest tests -s
156+
- run: uv run pytest tests -v
153157

154158
# slack_notify_succeeded:
155159
# needs: [e2e_test_ubuntu, e2e_test_macos, e2e_test_windows]

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.10
1+
3.11

CHANGES.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
## develop
1313

14+
- [CHANGE] 対応 Python バージョンの 3.10 のサポートを終了する
15+
- [SPEC 0 — Minimum Supported Dependencies](https://scientific-python.org/specs/spec-0000/) を参考に直近 3 バージョンのサポートに変更する
16+
- @voluntas
1417
- [CHANGE] シグナリング接続時の ``"type": "connect"`` 時に ``multistream`` 項目を送らないようにする
1518
- Sora 2022.1.0 以前には接続できなくなる
1619
- TODO: legacy_multistream という項目を追加して multistream: true を遅れるようにするかどうか検討する
@@ -79,16 +82,16 @@
7982
- `create_video_codec_preference_from_implementation()`
8083
- `SoraVideoCodecType`
8184
- @melpon
82-
- [UPDATE] nanobind を `2.4.0` に上げる
85+
- [UPDATE] nanobind を `2.5.0` に上げる
8386
- @voluntas
84-
- [UPDATE] Sora C++ SDK のバージョンを `2025.1.0` に上げる
85-
- WEBRTC_BUILD_VERSION を `m132.6834.5.2` に上げる
87+
- [UPDATE] Sora C++ SDK のバージョンを `2025.2.0` に上げる
88+
- WEBRTC_BUILD_VERSION を `m132.6834.5.8` に上げる
8689
- libwebrtc のモジュール分割に追従するため rtc::CreateRandomString のヘッダを追加
8790
- Sora CPP SDK の absl::optional を std::optional に変更した仕様に追従する
8891
- Sora CPP SDK の absl::nullopt を std::nullopt に変更した仕様に追従する
89-
- CMAKE_VERSION を `3.30.5` に上げる
92+
- CMAKE_VERSION を `3.31.4` に上げる
9093
- BOOST_VERSION を `1.87.0` に上げる
91-
- OPENH264_VERSION を `v2.5.0` に上げる
94+
- OPENH264_VERSION を `v2.6.0` に上げる
9295
- @torikizi @voluntas
9396
- [FIX] nanobind が libstdc++ を使ってしまっていたのを libc++ を使うように修正する
9497
- @melpon

0 commit comments

Comments
 (0)