Skip to content

Commit

Permalink
Merge branch 'release/2025.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
miosakuma committed Jan 29, 2025
2 parents 4f9bd80 + 88bdd17 commit 332a4eb
Show file tree
Hide file tree
Showing 10 changed files with 340 additions and 93 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
name:
- macos_arm64
- ios
runs-on: macos-12
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Cache
Expand Down Expand Up @@ -106,7 +106,7 @@ jobs:
- name: Prepare Ubuntu x86_64
if: matrix.name == 'ubuntu-20.04_x86_64'
run: |
sudo apt install libdrm-dev libva-dev libgl-dev
sudo apt install libgl-dev
- run: python3 run.py ${{ matrix.name }}
# Android 用
- name: Copy Android files
Expand Down Expand Up @@ -178,7 +178,7 @@ jobs:
name: Upload Release Asset
if: contains(github.ref, 'tags/202')
needs: [package]
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -199,7 +199,7 @@ jobs:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
prerelease: ${{ contains(github.ref, 'canary') }}
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
Expand Down
41 changes: 41 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,47 @@

## develop

## 2025.1.0

**リリース日**: 2025-01-29

- [CHANGE] `boost::optional` を利用していた部分を `std::optional` に変更
- Sora C++ SDK 2024.8.0 での変更に追従
- @torikizi
- [CHANGE] CI の Ubuntu から libdrm-dev と libva-dev をインストールしないようにする
- @torikizi
- [CHANGE] CMakefile の依存から libva と libdrm を削除する
- @torikizi
- [CHANGE] ForwardingFilter は非推奨であるため Obsolete を追加
- 今後は ForwardingFilters を利用するように促すメッセージを追加
- @torikizi
- [UPDATE] Sora C++ SDK を `2025.1.0` に上げる
- WEBRTC_BUILD_VERSION を `m132.6834.5.2` にアップデート
- BOOST_VERSION を 1.87.0 にアップデート
- boost::system::error_code が削除されたので boost::system::error_code に置き換える
- `rtc::CreateRandomString` のヘッダを追加
- `SetRtpTimestamp``frame.timestamp` から `frame.rtp_timestamp` に変更
- `CMAKE_VERSION``3.30.5` にアップデート
- @torikizi
- [ADD] `Sora.Config``ClientCert`, `ClientKey`, `CACert` を追加
- @melpon
- [ADD] DataChannels に `Header` を追加
- @torikizi
- [ADD] ForwardingFilter に name と priority を追加
- @torikizi
- [ADD] ForwardingFilters 機能を使えるようにする
- @torikizi

### misc

- [CHANGE] GitHub Actions の `ubuntu-latest``ubuntu-24.04` に変更する
- @voluntas
- [UPDATE] Github Actions の `macos-12``macos-14` に変更する
- @miosakuma
- [CHANGE] canary リリースの仕組みを導入する
- canary リリースの時は prerelease フラグをつけるように変更
- @torikizi

## 2024.4.0 (2024-07-29)

- [CHANGE] `--sora-dir`, `--sora-args``--local-sora-cpp-sdk-dir``--local-sora-cpp-sdk-args` に変更する
Expand Down
2 changes: 0 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,6 @@ elseif (SORA_UNITY_SDK_PACKAGE STREQUAL "ubuntu-20.04_x86_64" OR SORA_UNITY_SDK_
src/unity_camera_capturer_opengl.cpp
)

find_package(Libva REQUIRED)
find_package(Libdrm REQUIRED)
target_compile_definitions(SoraUnitySdk PRIVATE SORA_UNITY_SDK_UBUNTU)
target_compile_options(SoraUnitySdk PRIVATE "-nostdinc++")
target_include_directories(SoraUnitySdk PRIVATE ${LIBCXX_INCLUDE_DIR})
Expand Down
34 changes: 21 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Sora Unity SDK

[![libwebrtc](https://img.shields.io/badge/libwebrtc-127.6533-blue.svg)](https://chromium.googlesource.com/external/webrtc/+/branch-heads/6533)
[![libwebrtc](https://img.shields.io/badge/libwebrtc-132.6834-blue.svg)](https://chromium.googlesource.com/external/webrtc/+/branch-heads/6834)
[![GitHub tag](https://img.shields.io/github/tag/shiguredo/sora-unity-sdk.svg)](https://github.com/shiguredo/sora-unity-sdk)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Actions Status](https://github.com/shiguredo/sora-unity-sdk/workflows/build/badge.svg)](https://github.com/shiguredo/sora-unity-sdk/actions)
Expand Down Expand Up @@ -37,7 +37,7 @@ Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use

## システム条件

- WebRTC SFU Sora 2024.1.0 以降
- WebRTC SFU Sora 2024.2.0 以降

## 対応プラットフォーム

Expand Down Expand Up @@ -89,14 +89,24 @@ Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use
- Sora データチャネルメッセージングへの対応
- 実験的機能
- Apple VideoToolbox
- H.265 ハードウェアエンコードへの対応
- H.265 ハードウェアデコードへの対応
- H.264 ハードウェアエンコードへの対応
- H.264 ハードウェアデコードへの対応
- NVIDIA VIDEO CODEC SDK
- Windows 版
- H.264 のハードウェアエンコードへの対応
- H.264 のハードウェアデコードへの対応
- VP8 のハードウェアデコードへの対応
- VP9 のハードウェアデコードへの対応
- H.265 のハードウェアエンコードへの対応
- H.265 のハードウェアデコードへの対応
- H.264 のハードウェアエンコードへの対応
- H.264 のハードウェアデコードへの対応
- VP8 のハードウェアデコードへの対応
- VP9 のハードウェアデコードへの対応
- Intel VPL
- H.265 ハードウェアエンコードへの対応
- H.265 ハードウェアデコードへの対応
- H.264 のハードウェアエンコードへの対応
- H.264 のハードウェアデコードへの対応
- AV1 のハードウェアエンコードへの対応
- AV1 のハードウェアデコードへの対応
- ミュート機能
- iOS, Android 向け音声出力先変更機能
- マイクやカメラ等のメディアデバイスをつかまないようにする機能
Expand Down Expand Up @@ -149,12 +159,10 @@ Please read https://github.com/shiguredo/oss/blob/master/README.en.md before use

- サイマルキャスト rid 指定対応
- iOS, Android 以外の音声出力先変更機能
- ビデオ・トラック ID 取得機能 (統計情報との紐づけによる利用を想定)
- オーディオ・トラック ID 取得機能 (統計情報との紐づけによる利用を想定)

### NVIDIA VIDEO CODEC SDK

- AV1 のハードウェアデコードへの対応
- 音声トラックの個別取得機能
- 音声トラック ID 取得機能 (統計情報との紐づけによる利用を想定)
- 映像トラックの個別取得機能
- 映像トラック ID 取得機能 (統計情報との紐づけによる利用を想定)

## ライセンス

Expand Down
113 changes: 79 additions & 34 deletions Sora/Sora.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ public enum SpotlightFocusRidType
R1,
R2,
}

public class DataChannel
{
// 以下は設定必須
Expand All @@ -62,6 +61,7 @@ public class DataChannel
public int? MaxRetransmits;
public string? Protocol;
public bool? Compress;
public List<string>? Header;
}

public const string ActionBlock = "block";
Expand All @@ -71,10 +71,11 @@ public class DataChannel
public const string FieldKind = "kind";
public const string OperatorIsIn = "is_in";
public const string OperatorIsNotIn = "is_not_in";

public class ForwardingFilter
{
public string? Action;
public string? Name;
public int? Priority;
public class Rule
{
public string Field;
Expand All @@ -85,7 +86,6 @@ public class Rule
public string? Version;
public string? Metadata;
}

/// <summary>
/// カメラの設定
/// </summary>
Expand Down Expand Up @@ -234,11 +234,17 @@ public class Config
public string ProxyPassword = "";
// Proxy サーバーに接続するときの User-Agent。未設定ならデフォルト値が使われる
public string ProxyAgent = "";

[System.Obsolete("forwardingFilter は非推奨です。代わりに forwardingFilters を使用してください。")]
public ForwardingFilter ForwardingFilter;
public List<ForwardingFilter> ForwardingFilters;

// ハードウェアエンコーダー/デコーダーを利用するかどうか。null の場合は実装依存となる
public bool? UseHardwareEncoder;

// 証明書周りの設定
public string? ClientCert;
public string? ClientKey;
public string? CACert;
}

IntPtr p;
Expand Down Expand Up @@ -448,6 +454,10 @@ public void Connect(Config config)
{
c.SetCompress(m.Compress.Value);
}
if (m.Header != null)
{
c.SetHeader(new SoraConf.Internal.DataChannel.Header { content = m.Header });
}
cc.data_channels.Add(c);
}
cc.proxy_url = config.ProxyUrl;
Expand All @@ -456,41 +466,34 @@ public void Connect(Config config)
cc.proxy_agent = config.ProxyAgent;
if (config.ForwardingFilter != null)
{
var ff = new SoraConf.Internal.ForwardingFilter();
if (config.ForwardingFilter.Action != null)
{
ff.SetAction(config.ForwardingFilter.Action);
}
foreach (var rs in config.ForwardingFilter.Rules)
{
var ccrs = new SoraConf.Internal.ForwardingFilter.Rules();
foreach (var r in rs)
{
var ccr = new SoraConf.Internal.ForwardingFilter.Rule();
ccr.field = r.Field;
ccr.op = r.Operator;
foreach (var v in r.Values)
{
ccr.values.Add(v);
}
ccrs.rules.Add(ccr);
}
ff.rules.Add(ccrs);
}
if (config.ForwardingFilter.Version != null)
{
ff.SetVersion(config.ForwardingFilter.Version);
}
if (config.ForwardingFilter.Metadata != null)
cc.SetForwardingFilter(ConvertToInternalForwardingFilter(config.ForwardingFilter));
}

if (config.ForwardingFilters != null)
{
var ffs = new SoraConf.Internal.ForwardingFilters();
foreach (var filter in config.ForwardingFilters)
{
ff.SetMetadata(config.ForwardingFilter.Metadata);
ffs.filters.Add(ConvertToInternalForwardingFilter(filter));
}
cc.SetForwardingFilter(ff);
cc.SetForwardingFilters(ffs);
}
if (config.UseHardwareEncoder.HasValue)
{
cc.SetUseHardwareEncoder(config.UseHardwareEncoder.Value);
}
if (config.ClientCert != null)
{
cc.SetClientCert(config.ClientCert);
}
if (config.ClientKey != null)
{
cc.SetClientKey(config.ClientKey);
}
if (config.CACert != null)
{
cc.SetCaCert(config.CACert);
}

sora_connect(p, Jsonif.Json.ToJson(cc));
}
Expand All @@ -505,6 +508,48 @@ public void Disconnect()
sora_disconnect(p);
}

static SoraConf.Internal.ForwardingFilter ConvertToInternalForwardingFilter(ForwardingFilter filter)
{
var ff = new SoraConf.Internal.ForwardingFilter();
if (filter.Action != null)
{
ff.SetAction(filter.Action);
}
if (filter.Name != null)
{
ff.SetName(filter.Name);
}
if (filter.Priority.HasValue)
{
ff.SetPriority(filter.Priority.Value);
}
foreach (var rs in filter.Rules)
{
var ccrs = new SoraConf.Internal.ForwardingFilter.Rules();
foreach (var r in rs)
{
var ccr = new SoraConf.Internal.ForwardingFilter.Rule();
ccr.field = r.Field;
ccr.op = r.Operator;
foreach (var v in r.Values)
{
ccr.values.Add(v);
}
ccrs.rules.Add(ccr);
}
ff.rules.Add(ccrs);
}
if (filter.Version != null)
{
ff.SetVersion(filter.Version);
}
if (filter.Metadata != null)
{
ff.SetMetadata(filter.Metadata);
}
return ff;
}

/// <summary>
/// カメラを切り替えます。
/// </summary>
Expand Down Expand Up @@ -1177,7 +1222,7 @@ public DefaultAudioOutputHelper(Action onChangeRoute)
{
if (onChangeRoute == null)
{
onChangeRoute = () => {}; // 空のアクションを割り当てる
onChangeRoute = () => { }; // 空のアクションを割り当てる
}

onChangeRouteHandle = GCHandle.Alloc(onChangeRoute);
Expand Down Expand Up @@ -1231,4 +1276,4 @@ public static IAudioOutputHelper Create(Action onChangeRoute)
#endif
}
}
}
}
10 changes: 5 additions & 5 deletions VERSION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
SORA_UNITY_SDK_VERSION=2024.4.0
SORA_CPP_SDK_VERSION=2024.7.0
WEBRTC_BUILD_VERSION=m127.6533.1.1
BOOST_VERSION=1.85.0
CMAKE_VERSION=3.29.6
SORA_UNITY_SDK_VERSION=2025.1.0
SORA_CPP_SDK_VERSION=2025.1.0
WEBRTC_BUILD_VERSION=m132.6834.5.2
BOOST_VERSION=1.87.0
CMAKE_VERSION=3.30.5
PROTOBUF_VERSION=21.1
PROTOC_GEN_JSONIF_VERSION=0.12.0
ANDROID_NDK_VERSION=r26b
Expand Down
Loading

0 comments on commit 332a4eb

Please sign in to comment.