Skip to content

Commit

Permalink
Merge tag '2024.7.0' into support/jetson-jetpack-5
Browse files Browse the repository at this point in the history
2024.7.0
  • Loading branch information
torikizi committed Aug 2, 2024
2 parents 16379e4 + 3c5326e commit 617dd45
Show file tree
Hide file tree
Showing 37 changed files with 1,319 additions and 282 deletions.
59 changes: 42 additions & 17 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ jobs:
TEST_SIGNALING_URL: ${{ secrets.TEST_SIGNALING_URL }}
TEST_CHANNEL_ID_PREFIX: ${{ secrets.TEST_CHANNEL_ID_PREFIX }}
TEST_SECRET_KEY: ${{ secrets.TEST_SECRET_KEY }}
TEST_MATRIX_NAME: ${{ matrix.name }}
TEST_MATRIX_NAME: ${{ matrix.platform.name }}
steps:
- uses: actions/checkout@v4
- name: Disk cleanup
Expand All @@ -178,27 +178,52 @@ jobs:
sudo du -h -d1 /usr/local/share
sudo du -h -d1 /usr/local/lib
sudo du -h -d1 /usr/share
docker rmi `docker images -q -a`
RMI=`docker images -q -a`
if [ -n "$RMI" ]; then
docker rmi $RMI
fi
# 4.6G
sudo rm -rf /usr/local/.ghcup
# 1.7G
sudo rm -rf /usr/share/swift
# 1.4G
sudo rm -rf /usr/share/dotnet
df -h
- name: Install deps for ${{ matrix.name }}
if: matrix.name == 'ubuntu-20.04_x86_64' || matrix.name == 'ubuntu-22.04_x86_64'
# Ubuntu 24.04 だと libtinfo5 が見つからない問題があるので、その修正
# ref: https://qiita.com/gengen16k/items/88cf3c18a40a94205fab
- name: Fix CUDA issues for Ubuntu 24.04
if: matrix.platform.name == 'ubuntu-24.04_x86_64'
run: |
sudo tee /etc/apt/sources.list.d/jammy.list << EOF
deb http://archive.ubuntu.com/ubuntu/ jammy universe
EOF
sudo tee /etc/apt/preferences.d/pin-jammy <<EOF
Package: *
Pin: release n=jammy
Pin-Priority: -10
Package: libtinfo5
Pin: release n=jammy
Pin-Priority: 990
EOF
- name: Install deps for ${{ matrix.platform.name }}
if: matrix.platform.os == 'ubuntu'
run: |
source VERSION
# clang-18 と CUDA を入れる
sudo apt-get update
sudo apt-get install -y software-properties-common
# X11
sudo apt-get install libx11-dev libxext-dev
# CUDA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_*all.deb
sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo apt-get -y install cuda=$CUDA_VERSION
# clang-18
wget https://apt.llvm.org/llvm.sh
chmod a+x llvm.sh
sudo ./llvm.sh 18
Expand All @@ -213,7 +238,7 @@ jobs:
# multistrap に insecure なリポジトリからの取得を許可する設定を入れる
sudo sed -e 's/Apt::Get::AllowUnauthenticated=true/Apt::Get::AllowUnauthenticated=true";\n$config_str .= " -o Acquire::AllowInsecureRepositories=true/' -i /usr/sbin/multistrap
- name: Install deps for Android
if: matrix.name == 'android'
if: matrix.platform.os == 'android'
run: |
sudo apt-get -y install ninja-build
# JDK を指定しないとデフォルトの JDK 11 で動作するため指定する
Expand All @@ -222,40 +247,40 @@ jobs:
with:
java-version: '17'
distribution: 'temurin'
if: matrix.name == 'android'
if: matrix.platform.os == 'android'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
if: matrix.name == 'android'
- run: python3 run.py --test --run-e2e-test --package ${{ matrix.name }}
if: matrix.platform.os == 'android'
- run: python3 run.py --test --run-e2e-test --package ${{ matrix.platform.name }}
- name: Get package name
run: |
source _package/${{ matrix.name }}/release/sora.env
source _package/${{ matrix.platform.name }}/release/sora.env
echo "name=${PACKAGE_NAME}" >> $GITHUB_OUTPUT
echo "boost_name=${BOOST_PACKAGE_NAME}" >> $GITHUB_OUTPUT
id: package_name
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_name.outputs.name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.name }}
path: _package/${{ matrix.platform.name }}/release/${{ steps.package_name.outputs.name }}
- name: Upload Boost Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_name.outputs.boost_name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.boost_name }}
path: _package/${{ matrix.platform.name }}/release/${{ steps.package_name.outputs.boost_name }}
- name: Upload Environment
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}.env
path: _package/${{ matrix.name }}/release/sora.env
name: ${{ matrix.platform.name }}.env
path: _package/${{ matrix.platform.name }}/release/sora.env
# Examples のビルド
- name: Build Examples
run: |
cd examples
mkdir examples_${{ matrix.name }}
mkdir examples_${{ matrix.platform.name }}
for app in sdl_sample sumomo messaging_recvonly_sample; do
python3 $app/${{ matrix.name }}/run.py --local-sora-cpp-sdk-dir ..
cp _build/${{ matrix.name }}/release/$app/$app examples_${{ matrix.name }}
python3 $app/${{ matrix.platform.name }}/run.py --local-sora-cpp-sdk-dir ..
cp _build/${{ matrix.platform.name }}/release/$app/$app examples_${{ matrix.platform.name }}
done
if: matrix.name == 'ubuntu-20.04_x86_64' || matrix.name == 'ubuntu-22.04_x86_64' || matrix.name == 'ubuntu-20.04_armv8_jetson'
- name: Upload Examples Artifact
Expand Down
3 changes: 2 additions & 1 deletion .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,8 @@
"USE_VPL_ENCODER",
"RTC_ENABLE_H265"
],
"compilerPath": "${workspaceFolder}/_install/ubuntu-22.04_x86_64/release/llvm/clang/bin/clang++",
// "compilerPath": "${workspaceFolder}/_install/ubuntu-22.04_x86_64/release/llvm/clang/bin/clang++",
"compilerPath": "/usr/bin/clang++-18",
"compilerArgs": ["-nostdinc++"],
"cStandard": "gnu17",
"cppStandard": "gnu++17",
Expand Down
12 changes: 10 additions & 2 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

## develop

## 2024.7.0 (2024-07-29)

- [CHANGE] `--sora-dir`, `--sora-args``--local-sora-cpp-sdk-dir``--local-sora-cpp-sdk-args` に変更する
- @melpon
- [CHANGE] `--webrtc-build-dir`, `--webrtc-build-args``--local-webrtc-build-dir``--local-webrtc-build-args` に変更する
Expand All @@ -29,10 +31,10 @@
- @enm10k
- [UPDATE] CLI11 を 2.4.2 にあげる
- @enm10k
- [UPDATE] libwebrtc を m125.6422.2.1 にあげる
- [UPDATE] libwebrtc を m126.6478.1.1 にあげる
- Android の test アプリがリンクできなくなったため、リンカーを Android NDK のものから libwebrtc のものに変更
- リンカーのバージョンの違いによる互換性の問題でエラーが発生していた
- @melpon @enm10k
- @melpon @enm10k @torikizi
- [ADD] sumomo に `--openh264``--use-hardware-encoder` オプションを追加
- @melpon
- [ADD] sumomo に `--video-h264-params``--video-h265-params` オプションを追加
Expand All @@ -43,6 +45,12 @@
- @melpon
- [ADD] Intel VPL で AV1 デコーダを動くようにする
- @melpon
- [ADD] NVIDIA Video Codec SDK を H265 に対応する
- @melpon
- [ADD] Ubuntu 24.04 に対応する
- @melpon
- [ADD] WebSocket での接続時に User-Agent ヘッダーを追加する
- @melpon

## 2024.6.1 (2024-04-16)

Expand Down
13 changes: 9 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ elseif (SORA_TARGET STREQUAL "ubuntu-20.04_armv8_jetson")
set(SORA_TARGET_OS "jetson")
set(SORA_TARGET_ARCH "armv8")
set(SORA_TARGET_DEF "SORA_CPP_SDK_JETSON")
elseif (SORA_TARGET STREQUAL "ubuntu-24.04_x86_64")
set(SORA_TARGET_OS "ubuntu")
set(SORA_TARGET_OS_VERSION "24.04")
set(SORA_TARGET_ARCH "x86_64")
set(SORA_TARGET_DEF "SORA_CPP_SDK_UBUNTU_2404")
endif()

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
Expand Down Expand Up @@ -254,7 +259,7 @@ if (SORA_TARGET_OS STREQUAL "windows")
if (USE_NVCODEC_ENCODER)
target_sources(sora
PRIVATE
src/hwenc_nvcodec/nvcodec_h264_encoder.cpp
src/hwenc_nvcodec/nvcodec_video_encoder.cpp
third_party/NvCodec/NvCodec/NvEncoder/NvEncoder.cpp
third_party/NvCodec/NvCodec/NvEncoder/NvEncoderD3D11.cpp
src/hwenc_nvcodec/nvcodec_video_decoder.cpp)
Expand Down Expand Up @@ -464,9 +469,9 @@ elseif (SORA_TARGET_OS STREQUAL "ubuntu")
target_sources(sora
PRIVATE
src/cuda_context_cuda.cpp
src/hwenc_nvcodec/nvcodec_h264_encoder.cpp
src/hwenc_nvcodec/nvcodec_video_encoder.cpp
src/hwenc_nvcodec/nvcodec_v4l2_capturer.cpp
src/hwenc_nvcodec/nvcodec_h264_encoder_cuda.cpp
src/hwenc_nvcodec/nvcodec_video_encoder_cuda.cpp
src/hwenc_nvcodec/nvcodec_decoder_cuda.cpp
src/hwenc_nvcodec/nvcodec_video_decoder.cpp
third_party/NvCodec/NvCodec/NvDecoder/NvDecoder.cpp
Expand All @@ -481,7 +486,7 @@ elseif (SORA_TARGET_OS STREQUAL "ubuntu")
# これらのソースは CUDA としてコンパイルする
set_source_files_properties(
src/cuda_context_cuda.cpp
src/hwenc_nvcodec/nvcodec_h264_encoder_cuda.cpp
src/hwenc_nvcodec/nvcodec_video_encoder_cuda.cpp
src/hwenc_nvcodec/nvcodec_decoder_cuda.cpp
third_party/NvCodec/NvCodec/NvDecoder/NvDecoder.cpp
third_party/NvCodec/NvCodec/NvEncoder/NvEncoderCuda.cpp
Expand Down
32 changes: 22 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,18 @@ Please read <https://github.com/shiguredo/oss/blob/master/README.en.md> before u

- 各プラットフォームで利用可能な HWA への対応
- NVIDIA Video Codec SDK (NVENC / NVDEC)
- VP9 / H.264
- VP9 / H.264 / H.265
- NVIDIA Jetson Video HWA
- VP9 / AV1 / H.264
- VP9 / AV1 / H.264 / H.265
- Apple macOS / iOS Video Toolbox
- H.264 / H.265
- Google Android HWA
- VP8 / VP9 / H.264 / H.265
- [Intel VPL](https://github.com/intel/libvpl) (Intel Media SDK の後継)
- VP9 / H.264 / H.265
- H.264 / H.265 / AV1
- AV1 は デコードのみ
- H.265 は Windows と Ubuntu 22.04 のみ
- Media SDK での動作は未検証です

## ライブラリのバイナリ提供について

Expand All @@ -52,12 +54,15 @@ _hololens2 は無視してください_

- Windows 10.1809 x86_64 以降
- macOS 13.5 arm64 以降
- Ubuntu 20.04 ARMv8 Jetson (JetPack 5.1.1 以降)
- Ubuntu 22.04 ARMv8 Jetson (JetPack 6.0.0 以降)
- Jetson AGX Orin
- Jetson AGX Xavier
- Jetson Xavier NX
- Jetson Orin NX
- 動作未検証です
- Ubuntu 20.04 x86_64
- 動作未検証です
- Ubuntu 22.04 x86_64
- Ubuntu 24.04 x86_64
- 動作未検証です
- Android 7 arm64 以降
- iOS 13 arm64 以降

Expand All @@ -69,22 +74,29 @@ _hololens2 は無視してください_

[faq.md](doc/faq.md) をお読みください。

## メンテナンスポリシー

Sora C++ SDK のメンテナンスポリシーにはプライオリティがあります。

詳細については [maintenance_policy.md](doc/maintenance_policy.md) をお読みください。

## 優先実装

優先実装とは Sora のライセンスを契約頂いているお客様限定で Sora C++ SDK の実装予定機能を有償にて前倒しで実装することです。

- Intel VPL H.265 対応
- [アダワープジャパン株式会社](https://adawarp.com/)

### 優先実装が可能な機能一覧
### 優先実装が可能な対応一覧

**詳細は Discord やメールなどでお気軽にお問い合わせください**

- NVIDIA Jetson JetPack 5 対応
- NVIDIA Jetson JetPack 6 Jetson Orin Nano 対応
- Raspberry Pi OS (64bit) arm64 対応
- Windows arm64 対応
- Ubuntu 24.04 x86_64
- Ubuntu 22.04 arm64 対応
- NVIDIA Jetson JetPack 6 対応
- AMD 系 HWA 対応
- Windows arm64 対応

## サポートについて

Expand Down
6 changes: 3 additions & 3 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
SORA_CPP_SDK_VERSION=2024.7.0-canary.2
WEBRTC_BUILD_VERSION=m125.6422.2.1
SORA_CPP_SDK_VERSION=2024.7.0
WEBRTC_BUILD_VERSION=m127.6533.1.1
BOOST_VERSION=1.85.0
CMAKE_VERSION=3.28.1
CMAKE_VERSION=3.29.6
CUDA_VERSION=11.8.0-1
ANDROID_NDK_VERSION=r26b
ANDROID_NATIVE_API_LEVEL=29
Expand Down
Loading

0 comments on commit 617dd45

Please sign in to comment.