Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WebRTC を M121 に更新する #54

Merged
merged 24 commits into from
Jan 29, 2024
Merged

WebRTC を M121 に更新する #54

merged 24 commits into from
Jan 29, 2024

Conversation

enm10k
Copy link
Contributor

@enm10k enm10k commented Jan 17, 2024

変更内容

CHANGES.md の通りです

また、 CHANGES.md に記載しなかった細かい変更点を以下に記載します。

  • CUDA 11.8 の Windows インストーラーの更新に伴う対応
    • Windows の CUDA を 11.8 に更新したところインストーラーの構成が変更されており、 cuda ディレクトリが cuda_nvcc/cuda と cuda_cudart/cudart の2つに分割されたようでした
    • 上記2つを重ね合わせたところ、ビルドが通りました
  • Ubuntu でのビルド時に _LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE の指定が必須になったため対応しました
  • ubuntu-20.04_x86_64, ubuntu-22.04_x86_64 で使用する clang を clang-18 に更新しました

特に確認して欲しい点

メモ

TODO

  • CUDA を更新した際に、 VERSION ファイルへの記載をマイナー・バージョンまでにしてしまっているので、パッチ・バージョンも記載するようにする

@enm10k enm10k force-pushed the feature/update-webrtc-m121 branch 4 times, most recently from 1151cab to 41ace3e Compare January 24, 2024 05:56
@enm10k enm10k force-pushed the feature/update-webrtc-m121 branch from 41ace3e to 43ea5d3 Compare January 25, 2024 06:07
@enm10k enm10k force-pushed the feature/update-webrtc-m121 branch from abd64a0 to 108c476 Compare January 25, 2024 06:26
@enm10k enm10k requested review from melpon and torikizi January 25, 2024 06:48
@enm10k enm10k marked this pull request as ready for review January 25, 2024 06:48
CHANGES.md Outdated
@@ -11,8 +11,17 @@

## develop

- [CHANGE] WebRTC を `m121.6167.3.0` にあげる
- libwebrtc から cricket::MediaEngineDependencies が削除されたため、 SoraClientContextConfig から configure_media_dependencies を削除した
- 同じく、 libwertc の更新に伴い webrtc::ConnectionContext のメソッド default_network_manager, default_socket_factory を signaling_thread 上で実行することが必須になった
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これは以前からそうだったはずです。リリースビルドだと気が付かないから放置されてただけで。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ありがとうございます。
CHANGES.md から記述を削除しました。

@@ -2,7 +2,11 @@
#define SORA_HWENC_NVCODEC_NVCODEC_DECODER_CUDA_H_

#include <memory>

// clang-format off
#include "sora/fix_cuda_noinline_macro_error.h"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • 問題のある include があるたびにこのファイルを include するのはきつい
  • CUDA コンパイル時だけの問題なのに、ヘッダーでこのファイルを include すると、C++ のコンパイルにも影響が出る

なので CUDA ソースの先頭で include して解消するかどうか確認して、それで済むならそうしておきたいです。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

 be3a060 で対応しました

@@ -699,8 +712,8 @@ def install_bazel(version, source_dir, install_dir, platform: str):
def install_cuda_windows(version, source_dir, build_dir, install_dir):
rm_rf(os.path.join(build_dir, 'cuda'))
rm_rf(os.path.join(install_dir, 'cuda'))
if version == '10.2.89-1':
url = 'http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_441.22_win10.exe' # noqa: E501
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

以前のバージョンの URL は残しておいてあげても良さそう

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

残すことにしました

CUresult result =
dyn::cuvidGetDecodeStatus(m_hDecoder, pDispInfo->picture_index, &DecodeStatus);
CUresult result = dyn::cuvidGetDecodeStatus(
m_hDecoder, pDispInfo->picture_index, &DecodeStatus);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

この辺のファイルはフォーマットされると、更新時に大変になるのでフォーマットしないでください

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

戻しました

また、 third_party/NvCodec 以下の自動フォーマットを無効化するための .clang-format を a215b95 で追加しました

.vscode/settings.json で設定したかったのですが、上手くいかなかったため .clang-format を追加することにしました


# NvCodec
if platform.target.os in ('windows', 'ubuntu') and platform.target.arch == 'x86_64':
cmake_args.append('-DUSE_NVCODEC_ENCODER=ON')
if platform.target.os == 'windows':
cmake_args.append(f"-DCUDA_TOOLKIT_ROOT_DIR={cmake_path(os.path.join(install_dir, 'cuda', 'nvcc'))}")
cmake_args.append(f"-DCUDA_TOOLKIT_ROOT_DIR={cmake_path(os.path.join(install_dir, 'cuda'))}")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nvcc ディレクトリが消えると

path: _install\windows_x86_64\release\cuda\nvcc
ここのキャッシュが使えなくなっちゃうかも

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

キャッシュのパスを修正しました
4c214d1

@enm10k enm10k force-pushed the feature/update-webrtc-m121 branch from db27312 to a1f62c1 Compare January 26, 2024 03:09
@enm10k enm10k force-pushed the feature/update-webrtc-m121 branch from a1f62c1 to be3a060 Compare January 26, 2024 04:26
@enm10k
Copy link
Contributor Author

enm10k commented Jan 26, 2024

@melpon 指摘を受けた箇所を修正しました
ご確認お願いいたします

@@ -47,11 +47,11 @@ jobs:
# CUDA のインストールバイナリのダウンロードは 3GB ぐらいあって、
# ビルドの度に取得するのはつらいのでキャッシュする
# (インストールする nvcc は解凍後で 100MB 程度なのでキャッシュ可能)
Copy link
Contributor

@torikizi torikizi Jan 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

細かいですがここのコメントは nvcc でなくなったのでこのコメントは不要になりますか?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

パスを変更しましたが、中身は変わっていない (= nvcc ) なので、このままでも良いかなと思いました

Copy link
Contributor

@torikizi torikizi Jan 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

なるほど。それでしたら残したままで良さそうです。🙏

@@ -1,15 +1,21 @@
#include <iostream>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

標準ライブラリは #include "sora/sora_client_context.h" の下でインクルードして下さい。他のファイルではそうなってるはず。

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確認したところ、消してもビルドが通りました
デバッグ中に追加してしまったようです

Copy link
Contributor

@melpon melpon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

よさそう

@enm10k
Copy link
Contributor Author

enm10k commented Jan 29, 2024

レビューありがとうございます
マージします

@enm10k enm10k merged commit d7a4bab into develop Jan 29, 2024
8 checks passed
@enm10k enm10k deleted the feature/update-webrtc-m121 branch January 29, 2024 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants