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

libwebrtc を m124.6367.3.1 にあげる #98

Merged
merged 17 commits into from
May 13, 2024
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
90207d6
libwebrtc を m124.6367.3.1 にあげる
enm10k May 7, 2024
4861e13
webrtc::VideoDecoderFactory 初期化時に webrtc::Environment の指定が必要になった
enm10k May 7, 2024
01ad4ff
test のビルドが通るように修正する
enm10k May 7, 2024
ba5bb61
sora::SoraClientContext::Create に webrtc::Environment を渡す
enm10k May 7, 2024
78843b9
webrtc::Environment を渡さない初期化方法を維持する
enm10k May 7, 2024
cac00ea
libwebrtc から examples/unityplugin が削除されたので追従する
enm10k May 8, 2024
01f5ba6
試行錯誤した際のコメントを消す
enm10k May 8, 2024
7e8622b
SoraClientContext で保持する webrtc::Environment は private で良かった
enm10k May 8, 2024
3e789b1
SoraClientContext で webrtc::Environment を保持するのを止める
enm10k May 10, 2024
ba0da74
互換性を維持するために webrtc::Environment を最後の変数として追加し、デフォルト値を指定する
enm10k May 10, 2024
9d5eb9b
最終的に webrtc::CreateEnvironment を実行する回数が変わらないので、 webrtc::Environment を…
enm10k May 10, 2024
ecec7db
不要な差分を元に戻す
enm10k May 10, 2024
d95ab15
CHANGES.md を更新する
enm10k May 10, 2024
2ae98b7
参照でキャプチャーするのをやめる
enm10k May 10, 2024
fdb7947
CHANGES.md を修正する
enm10k May 10, 2024
7a21aa4
Merge remote-tracking branch 'origin/develop' into feature/update-lib…
enm10k May 10, 2024
35b1eb6
yaml のエラーを直す
melpon May 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@

## develop

- [CHANGE] libwebrtc を m124.6367.3.1 にあげる
- 継承元のクラスの変更に追従するため、 SoraVideoDecoderFactory の初期化に利用する関数を CreateVideoDecoder から Create に変更
Copy link
Contributor

Choose a reason for hiding this comment

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

CHANGE なのはこの部分だけで、他の部分は違うと思うので、分けたほうが良いです

Copy link
Contributor Author

Choose a reason for hiding this comment

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

fdb7947 で対応しました

- Android の test アプリがリンクできなくなったため、リンカーを Android NDK のものから libwebrtc のものに変更
- リンカーのバージョンの違いによる互換性の問題でエラーが発生していた
- @melpon @enm10k
- [UPDATE] Boost を 1.85.0 にあげる
- @enm10k
- [UPDATE] SDL2 を 2.30.3 にあげる
- @enm10k
- [UPDATE] libwebrtc を m123.6312.3.5 にあげる
- Android の test アプリのリンク時に発生したエラーを解決するために、リンカーを Android NDK に含まれるものから libwebrtc のものに変更した
- リンカーのバージョンの違いによる互換性の問題でエラーが発生していたため、次回 Android NDK のバージョンを更新する際に、修正箇所を元に戻せる可能性がある
- @melpon @enm10k
- [UPDATE] CLI11 を 2.4.2 にあげる
- @enm10k
- [ADD] sumomo に `--openh264` と `--use-hardware-encoder` オプションを追加
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
SORA_CPP_SDK_VERSION=2024.6.1
WEBRTC_BUILD_VERSION=m123.6312.3.5
WEBRTC_BUILD_VERSION=m124.6367.3.1
BOOST_VERSION=1.85.0
CMAKE_VERSION=3.28.1
CUDA_VERSION=11.8.0-1
Expand Down
4 changes: 2 additions & 2 deletions examples/VERSION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SORA_CPP_SDK_VERSION=2024.6.1
WEBRTC_BUILD_VERSION=m123.6312.3.5
BOOST_VERSION=1.85.0
WEBRTC_BUILD_VERSION=m124.6367.3.1
BOOST_VERSION=1.84.0
Copy link
Contributor

Choose a reason for hiding this comment

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

Boost のバージョンが下がってる…?

Copy link
Contributor Author

@enm10k enm10k May 10, 2024

Choose a reason for hiding this comment

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

こちらですが、現在 Sora C++ SDK でリリースされている最新の Boost のバージョンが 1.84.0 なため、 --sora-dir . を指定しない場合ビルドが落ちるようです (= develop のsサンプル BOOST_VERSION を誤ってあげてしまっている)

この PR のマージにもう少し時間がかかるようであれば、 develop ブランチを直接修正します

Copy link
Member

Choose a reason for hiding this comment

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

1fa19e0

あやまってあげてしまってるってのがよくわからんのだが。

Copy link
Contributor Author

Choose a reason for hiding this comment

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

サンプルのビルド時は Sora C++ SDK のリリースに含まれる Boost のバイナリを取得してビルドする挙動がデフォルトとなっています。
そのため、 SDK とサンプルの Boost のバージョンを同時に上げられないようです。
(SDK の Boost のバージョンを上げてリリースした後、サンプルの Boost のバージョンをあげる必要がある)

0997648 でサンプルの BOOST_VERSION を 1.84.0 に戻しました

CMAKE_VERSION=3.28.1
SDL2_VERSION=2.30.3
CLI11_VERSION=v2.4.2
4 changes: 3 additions & 1 deletion include/sora/sora_video_decoder_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <vector>

// WebRTC
#include <api/environment/environment.h>
#include <api/video/video_codec_type.h>
#include <api/video_codecs/video_decoder_factory.h>

Expand Down Expand Up @@ -52,7 +53,8 @@ class SoraVideoDecoderFactory : public webrtc::VideoDecoderFactory {

std::vector<webrtc::SdpVideoFormat> GetSupportedFormats() const override;

std::unique_ptr<webrtc::VideoDecoder> CreateVideoDecoder(
std::unique_ptr<webrtc::VideoDecoder> Create(
const webrtc::Environment& env,
const webrtc::SdpVideoFormat& format) override;

private:
Expand Down
1 change: 1 addition & 0 deletions src/sora_peer_connection_factory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class PeerConnectionFactoryWithContext : public webrtc::PeerConnectionFactory {
PeerConnectionFactoryWithContext(
webrtc::PeerConnectionFactoryDependencies dependencies)
: PeerConnectionFactoryWithContext(
// SDK の外部から webrtc::Environment を設定したくなるまで、ここで初期化する
webrtc::ConnectionContext::Create(webrtc::CreateEnvironment(),
&dependencies),
&dependencies) {}
Expand Down
17 changes: 10 additions & 7 deletions src/sora_video_decoder_factory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

// WebRTC
#include <absl/strings/match.h>
#include <api/environment/environment_factory.h>
#include <api/video_codecs/sdp_video_format.h>
#include <media/base/codec.h>
#include <media/base/media_constants.h>
Expand Down Expand Up @@ -67,8 +68,8 @@ SoraVideoDecoderFactory::GetSupportedFormats() const {
return r;
}

std::unique_ptr<webrtc::VideoDecoder>
SoraVideoDecoderFactory::CreateVideoDecoder(
std::unique_ptr<webrtc::VideoDecoder> SoraVideoDecoderFactory::Create(
const webrtc::Environment& env,
const webrtc::SdpVideoFormat& format) {
webrtc::VideoCodecType specified_codec =
webrtc::PayloadStringToCodecType(format.name);
Expand All @@ -84,10 +85,10 @@ SoraVideoDecoderFactory::CreateVideoDecoder(
std::vector<webrtc::SdpVideoFormat> supported_formats = formats_[n++];

if (enc.factory != nullptr) {
create_video_decoder =
[factory = enc.factory.get()](const webrtc::SdpVideoFormat& format) {
return factory->CreateVideoDecoder(format);
};
create_video_decoder = [factory = enc.factory.get(),
&env](const webrtc::SdpVideoFormat& format) {
Copy link
Contributor

Choose a reason for hiding this comment

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

参照でも動作するとは思いますけど、参照にする理由もないので env にして下さい。

Copy link
Contributor Author

Choose a reason for hiding this comment

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

2ae98b7 で修正しました

return factory->Create(env, format);
};
} else if (enc.create_video_decoder != nullptr) {
create_video_decoder = enc.create_video_decoder;
}
Expand Down Expand Up @@ -250,10 +251,12 @@ SoraVideoDecoderFactoryConfig GetDefaultVideoDecoderFactoryConfig(
}

SoraVideoDecoderFactoryConfig GetSoftwareOnlyVideoDecoderFactoryConfig() {
// SDK の外部から webrtc::Environment を設定したくなるまで、ここで初期化する
auto env = webrtc::CreateEnvironment();
SoraVideoDecoderFactoryConfig config;
config.decoders.push_back(VideoDecoderConfig(
webrtc::kVideoCodecVP8,
[](auto format) { return webrtc::VP8Decoder::Create(); }));
[&env](auto format) { return webrtc::CreateVp8Decoder(env); }));
Copy link
Contributor

Choose a reason for hiding this comment

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

参照を渡すのは未定義動作なので env を渡して下さい。

Copy link
Contributor Author

Choose a reason for hiding this comment

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

2ae98b7 で修正しました

config.decoders.push_back(VideoDecoderConfig(
webrtc::kVideoCodecVP9,
[](auto format) { return webrtc::VP9Decoder::Create(); }));
Expand Down
1 change: 0 additions & 1 deletion test/android/app/src/main/cpp/jni_onload.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
#undef JNIEXPORT
#define JNIEXPORT __attribute__((visibility("default")))

#include "examples/unityplugin/class_reference_holder.h"
#include "rtc_base/logging.h"
#include "rtc_base/ssl_adapter.h"
#include "sdk/android/native_api/jni/class_loader.h"
Expand Down