Skip to content

Commit

Permalink
Merge branch 'release/2024.3.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
miosakuma committed Mar 7, 2024
2 parents 688d308 + 3be0cef commit caffc57
Show file tree
Hide file tree
Showing 83 changed files with 1,773 additions and 3,207 deletions.
6 changes: 0 additions & 6 deletions .github/actions/download/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,8 @@ runs:
source ${{ inputs.platform }}.env/sora.env
echo "package_name=$PACKAGE_NAME" >> $GITHUB_OUTPUT
echo "boost_package_name=$BOOST_PACKAGE_NAME" >> $GITHUB_OUTPUT
echo "lyra_package_name=$LYRA_PACKAGE_NAME" >> $GITHUB_OUTPUT
echo "$PACKAGE_NAME/$PACKAGE_NAME" >> package_paths.env
echo "$BOOST_PACKAGE_NAME/$BOOST_PACKAGE_NAME" >> package_paths.env
echo "$LYRA_PACKAGE_NAME/$LYRA_PACKAGE_NAME" >> package_paths.env
id: env
- uses: actions/download-artifact@v4
with:
Expand All @@ -34,7 +32,3 @@ runs:
with:
name: ${{ steps.env.outputs.boost_package_name }}
path: ${{ steps.env.outputs.boost_package_name }}
- uses: actions/download-artifact@v4
with:
name: ${{ steps.env.outputs.lyra_package_name }}
path: ${{ steps.env.outputs.lyra_package_name }}
43 changes: 0 additions & 43 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,6 @@ jobs:
echo "userprofile=${Env:USERPROFILE}" >> ${Env:GITHUB_OUTPUT}
echo "username=${Env:USERNAME}" >> ${Env:GITHUB_OUTPUT}
id: env
- name: Bazel cache (cache)
uses: actions/cache@v4
with:
path: "${{ steps.env.outputs.userprofile }}/_bazel_${{ steps.env.outputs.username }}/cache"
key: bazel-cache-${{ matrix.name }}-v1
- name: Bazel cache (install)
uses: actions/cache@v4
with:
path: "${{ steps.env.outputs.userprofile }}/_bazel_${{ steps.env.outputs.username }}/install"
key: bazel-install-${{ matrix.name }}-v1
- name: Get Versions
run: |
Get-Content "VERSION" | Foreach-Object {
Expand All @@ -55,7 +45,6 @@ jobs:
key: windows-cuda-${{ steps.versions.outputs.cuda_version }}.v1
- run: echo "${CUDA_VERSION}" > _install\windows_x86_64\release\cuda.version
if: steps.cache-cuda.outputs.cache-hit == 'true'
- run: pip install numpy
- run: python3 run.py --test --package ${{ matrix.name }}
env:
SORA_CPP_SDK_TEMP_DIR: C:\
Expand All @@ -68,7 +57,6 @@ jobs:
}
echo "name=${PACKAGE_NAME}" >> ${Env:GITHUB_OUTPUT}
echo "boost_name=${BOOST_PACKAGE_NAME}" >> ${Env:GITHUB_OUTPUT}
echo "lyra_name=${LYRA_PACKAGE_NAME}" >> ${Env:GITHUB_OUTPUT}
id: package_name
- name: Upload Artifact
uses: actions/upload-artifact@v4
Expand All @@ -80,11 +68,6 @@ jobs:
with:
name: ${{ steps.package_name.outputs.boost_name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.boost_name }}
- name: Upload Lyra Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_name.outputs.lyra_name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.lyra_name }}
- name: Upload Environment
uses: actions/upload-artifact@v4
with:
Expand All @@ -107,19 +90,12 @@ jobs:
run: |
echo "user=`users`" >> $GITHUB_OUTPUT
id: env
- name: Bazel cache
uses: actions/cache@v4
with:
path: "/private/var/tmp/_bazel_${{ steps.env.outputs.user }}"
key: bazel-${{ matrix.name }}-v2
- run: pip3 install numpy setuptools
- run: python3 run.py --test --package ${{ matrix.name }}
- name: Get package name
run: |
source _package/${{ matrix.name }}/release/sora.env
echo "name=${PACKAGE_NAME}" >> $GITHUB_OUTPUT
echo "boost_name=${BOOST_PACKAGE_NAME}" >> $GITHUB_OUTPUT
echo "lyra_name=${LYRA_PACKAGE_NAME}" >> $GITHUB_OUTPUT
id: package_name
- name: Upload Artifact
uses: actions/upload-artifact@v4
Expand All @@ -131,11 +107,6 @@ jobs:
with:
name: ${{ steps.package_name.outputs.boost_name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.boost_name }}
- name: Upload Lyra Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_name.outputs.lyra_name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.lyra_name }}
- name: Upload Environment
uses: actions/upload-artifact@v4
with:
Expand All @@ -154,11 +125,6 @@ jobs:
runs-on: ${{ matrix.name == 'ubuntu-22.04_x86_64' && 'ubuntu-22.04' || 'ubuntu-20.04' }}
steps:
- uses: actions/checkout@v4
- name: Bazel cache
uses: actions/cache@v4
with:
path: "~/.cache/bazel"
key: bazel-${{ matrix.name }}-v1
- name: Disk cleanup
run: |
set -x
Expand Down Expand Up @@ -201,8 +167,6 @@ jobs:
sudo apt-get -y install multistrap binutils-aarch64-linux-gnu
# 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
# Lyra ビルドのためにクロスコンパイル環境一式を入れる
sudo apt-get -y install libstdc++-9-dev-arm64-cross gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Install deps for Android
if: matrix.name == 'android'
run: |
Expand All @@ -217,14 +181,12 @@ jobs:
- name: Setup Android SDK
uses: android-actions/setup-android@v3
if: matrix.name == 'android'
- run: pip3 install numpy
- run: python3 run.py --test --package ${{ matrix.name }}
- name: Get package name
run: |
source _package/${{ matrix.name }}/release/sora.env
echo "name=${PACKAGE_NAME}" >> $GITHUB_OUTPUT
echo "boost_name=${BOOST_PACKAGE_NAME}" >> $GITHUB_OUTPUT
echo "lyra_name=${LYRA_PACKAGE_NAME}" >> $GITHUB_OUTPUT
id: package_name
- name: Upload Artifact
uses: actions/upload-artifact@v4
Expand All @@ -236,11 +198,6 @@ jobs:
with:
name: ${{ steps.package_name.outputs.boost_name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.boost_name }}
- name: Upload Lyra Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_name.outputs.lyra_name }}
path: _package/${{ matrix.name }}/release/${{ steps.package_name.outputs.lyra_name }}
- name: Upload Environment
uses: actions/upload-artifact@v4
with:
Expand Down
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
/_build
/_source
/_package
/third_party/lyra/bazel-*
/third_party/lyra/lyra/
/third_party/lyra/third_party/
/test/*.json
/test/ios/build/
/test/ios/hello/model_coeffs/
Expand Down
3 changes: 0 additions & 3 deletions .vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
"${workspaceFolder}/_build/ubuntu-20.04_x86_64/release/sora",
"${workspaceFolder}/third_party/NvCodec/include",
"${workspaceFolder}/third_party/NvCodec/NvCodec",
"${workspaceFolder}/third_party/lyra",
"${workspaceFolder}/include",
"/usr/local/cuda/include"
],
Expand Down Expand Up @@ -135,7 +134,6 @@
"${workspaceFolder}/_build/windows_x86_64/release/sora",
"${workspaceFolder}/third_party/NvCodec/include",
"${workspaceFolder}/third_party/NvCodec/NvCodec",
"${workspaceFolder}/third_party/lyra",
"${workspaceFolder}/include"
],
"defines": [
Expand All @@ -162,7 +160,6 @@
"${workspaceFolder}/_build/windows_x86_64/debug/sora",
"${workspaceFolder}/third_party/NvCodec/include",
"${workspaceFolder}/third_party/NvCodec/NvCodec",
"${workspaceFolder}/third_party/lyra",
"${workspaceFolder}/include"
],
"defines": [
Expand Down
36 changes: 31 additions & 5 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,32 @@

## develop

## 2024.3.0 (2024-03-07)

- [CHANGE] Lyra を Sora C++ SDK から外し、Lyra に関連するファイルや関数、オプションを除ける
- SoraSignalingConfig::audio_codec_lyra_bitrate オプションを削除
- SoraSignalingConfig::audio_codec_lyra_usedtx オプションを削除
- SoraSignalingConfig::check_lyra_version オプションを削除
- audio_encoder_lyra.{h,cpp} を削除し、AudioEncoderLyra クラスを削除
- audio_decoder_lyra.{h,cpp} を削除し、AudioDecoderLyra クラスを削除
- sora_audio_encoder_factory.{h,cpp} を削除し、CreateBuiltinAudioEncoderFactory 関数を削除
- sora_audio_decoder_factory.{h,cpp} を削除し、CreateBuiltinAudioDecoderFactory 関数を削除
- Version クラスから GetLyraCompatibleVersion 関数を削除
- enum class SoraSignalingErrorCode から LYRA_VERSION_INCOMPATIBLE を削除
- VERSION ファイルから LYRA_VERSION, LYRA_COMPATIBLE_VERSION を削除
- リリースパッケージから `lyra-1.3.2_sora-cpp-sdk-2024.2.0_android.tar.gz` などの Lyra パッケージを生成しないようにする
- インストールする内容から `share/cmake/FindLyra.cmake` を削除
- run.py を実行する時のオプションから `--no-lyra` オプションを削除
- test/hello 実行時に指定する json フォーマットのオプション mode: lyra を削除し、mode オプションそのものも削除
- @melpon
- [CHANGE] ビルド時に Bazel のインストールを行わないようにする
- Lyra のために Bazel を利用していたので、関連して削除となる
- @melpon
- [ADD] Android 向けに音声出力先変更機能として `SoraAudioManager` を追加する
- Android では C++ を経由した OS の API 利用が煩雑となるため、Java で実装し、Sora.aar をビルドして提供を行う
- Sora.aar ファイルは Android のパッケージに含める
- @tnoho

## 2024.2.0 (2024-03-04)

- [CHANGE] `--webrtcbuild`, `--webrtc-fetch` などの webrtc ローカルビルドに関するフラグを削除し、代わりに `--webrtc-build-dir``--webrtc-build-args` を追加する
Expand All @@ -28,11 +54,6 @@
- [UPDATE] CUDA を 11.8 にあげる
- 更新時に発生したビルド・エラーを回避するために `include/sora/fix_cuda_noinline_macro_error.h` を追加した
- @enm10k
- [UPDATE] `SoraClientContextConfig`, `SoraVideoEncoderFactoryConfig``force_i420_conversion_for_simulcast_adapter` を追加する
- use_simulcast_adapter = true の際に、エンコーダー内でビデオ・フレームのバッファーを I420 に変換しているが、この変換の有無をフラグで制御可能にした
- force_i420_conversion_for_simulcast_adapter のデフォルト値は true で I420 への変換を行う
- 変換を行わない場合、エンコードの性能が向上するが、バッファーの実装によってはサイマルキャストが利用できなくなる
- @enm10k
- [UPDATE] Lyra を 1.3.2 にあげる
- @melpon
- [UPDATE] Github Actions の setup-android と setup-msbuild のバージョンをアップデート
Expand All @@ -52,6 +73,11 @@
- @torikizi
- [ADD] Python コードのフォーマッターに Ruff を使うようにする
- @voluntas
- [ADD] `SoraClientContextConfig`, `SoraVideoEncoderFactoryConfig``force_i420_conversion_for_simulcast_adapter` を追加する
- use_simulcast_adapter = true の際に、エンコーダー内でビデオ・フレームのバッファーを I420 に変換しているが、この変換の有無をフラグで制御可能にした
- force_i420_conversion_for_simulcast_adapter のデフォルト値は true で I420 への変換を行う
- 変換を行わない場合、エンコードの性能が向上するが、バッファーの実装によってはサイマルキャストが利用できなくなる
- @enm10k
- [ADD] `SoraSignalingObserver``OnSwitched` を追加する
- @enm10k
- [FIX] Jetson Orin で AV1 を送信中、他のユーザーが後から接続して受信した時に映像が出ない問題を修正
Expand Down
21 changes: 0 additions & 21 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ set(WEBRTC_LIBRARY_NAME "webrtc" CACHE STRING "WebRTC のライブラリ名")
set(USE_LIBCXX OFF CACHE BOOL "libstdc++ の代わりに libc++ を使うかどうか")
set(LIBCXX_INCLUDE_DIR "" CACHE PATH "libc++ を使う場合の libc++ のインクルードディレクトリ\n空文字だった場合はデフォルト検索パスの libc++ を利用する")
set(USE_NVCODEC_ENCODER OFF CACHE BOOL "NVIDIA Video Codec SDK によるハードウェアエンコーダを利用するかどうか")
set(USE_LYRA OFF CACHE BOOL "Lyra を利用するかどうか")

project(sora-cpp-sdk C CXX)

Expand Down Expand Up @@ -69,9 +68,6 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE NEVER)
find_package(WebRTC REQUIRED)
find_package(Boost REQUIRED COMPONENTS json filesystem)
find_package(Threads REQUIRED)
if (USE_LYRA)
find_package(Lyra REQUIRED)
endif()

set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
Expand Down Expand Up @@ -104,8 +100,6 @@ target_sources(sora
src/rtc_stats.cpp
src/scalable_track_source.cpp
src/session_description.cpp
src/sora_audio_decoder_factory.cpp
src/sora_audio_encoder_factory.cpp
src/sora_client_context.cpp
src/sora_peer_connection_factory.cpp
src/sora_signaling.cpp
Expand All @@ -118,13 +112,6 @@ target_sources(sora
src/websocket.cpp
src/zlib_helper.cpp
)
if (USE_LYRA)
target_sources(sora
PRIVATE
src/audio_decoder_lyra.cpp
src/audio_encoder_lyra.cpp
)
endif()

target_compile_definitions(sora PRIVATE ${SORA_TARGET_DEF})

Expand All @@ -141,12 +128,6 @@ if (NOT USE_NVCODEC_ENCODER)
target_sources(sora PRIVATE src/cuda_context_cuda.cpp)
endif()

if (USE_LYRA)
target_link_libraries(sora
PUBLIC
Lyra::lyra
)
endif()
target_link_libraries(sora
PUBLIC
WebRTC::webrtc
Expand All @@ -169,7 +150,6 @@ target_compile_definitions(sora
USE_NVCODEC_ENCODER=$<BOOL:${USE_NVCODEC_ENCODER}>
USE_JETSON_ENCODER=$<BOOL:${USE_JETSON_ENCODER}>
USE_VPL_ENCODER=$<BOOL:${USE_VPL_ENCODER}>
USE_LYRA=$<BOOL:${USE_LYRA}>
)

# 指定したライブラリを自身の静的ライブラリにバンドルする
Expand Down Expand Up @@ -619,7 +599,6 @@ install(
cmake/FindWebRTC.cmake
cmake/FindLibdrm.cmake
cmake/FindLibva.cmake
cmake/FindLyra.cmake
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake
)
install(FILES LICENSE NOTICE.md
Expand Down
19 changes: 0 additions & 19 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,22 +68,3 @@ sudo apt install libva2 libdrm2
```
- (もし内部実装が Intel Media SDK の oneVPL を有効にしたいなら)libmfx1
- (もし内部実装が oneVPL GPU の oneVPL を有効にしたいなら)libmfx-gen1.2 (Ubuntu 22.04 のみ利用可)

## Lyra モデル係数データのディレクトリ

デフォルトでは実行ファイルのディレクトリ下にある `model_coeffs` ディレクトリを検索する。

ただし `SORA_LYRA_MODEL_COEFFS_PATH` 環境変数が設定されている場合は、この環境変数に指定されているディレクトリを検索する。

## Lyra の開発環境切り替え

Lyra では各環境でワークスペースが異なるため、Android でビルドした後に Ubuntu でビルドする、みたいなことをすると Lyra のビルドでエラーが発生する。

この問題が起きた場合は、以下のように Lyra のビルド環境を一度リセットする必要がある。

```bash
cd third_party/lyra
bazel clean --expunge
```

`bazel` コマンドがグローバルに存在しない場合、`_install/<target>/release/bazel/bazel` を利用すると良い。
Loading

0 comments on commit caffc57

Please sign in to comment.