変更履歴
webrtc パッケージに対する主な変更は、このファイルに記述されます。
ドキュメントのフォーマットは Keep a Changelog に基づいており、また、このプロジェクトは Semantic Versioning に準拠します。
[3.0.0-pre.7] - 2023-10-20
追加
- Android x86_64 サポートを実験的に追加。
RTCPeerConnectionクラスにCanTrickleIceCandidatesプロパティを追加。WebRTCクラスに設定可能なロガーを追加。- NVIDIA H.264 コーデックで解像度のスケールをサポート。
- NVIDIA H.264 コーデックでサイマルキャストをサポート。
- ビデオストリーミングの遅延改善のため、
RTCRtpSenderクラスにSyncApplicationFramerateプロパティを追加。
変更
- libwebrtc を M116 にアップグレード。
- Unity2020.3 LTS で Android API のバージョン 22 が非サポートになったため、最小バージョンを 23 に変更。
RTCDataChannel.onErrorイベントを追加。- ビデオテクスチャの反転処理を操作するため、
VideoStreamTrackのコンストラクタを変更。
修正
- ビデオエンコードで分数倍率のスケールを掛けた際の問題を修正。
- D3D11 グラフィックデバイスでハードウェアエンコーダを使用する際のクラッシュを修正。
- Windows で
nvEncodeAPI64.dllが見つからなかった場合の不具合を修正。 - オーディオサンプリングでミュートする際の負荷を削減。
[3.0.0-pre.6] - 2023-07-16
追加
- 他のピアから受信したオーディオバッファを取得するための
AudioStreamTrack.onReceivedデリゲートを追加。
変更
- libwebrtc を M112 にアップデート。
修正
- DX11/DX12 環境でのレンダリングスレッドの負荷を軽減するため、映像エンコード時のパフォーマンスを改善。
- NvCodec を使用する場合に、ビデオトラックを切り替えたときにランタイムエラーが発生する問題を修正。
AudioStreamTrack.SetDataがワーカースレッド上から呼び出せるように修正。- Unity 2022.1 の Android において、 VideoReceive サンプルシーンでカメラデバイスのビデオストリーミングが動作しない問題を修正。
削除
WebRTC クラスで非推奨になったメソッドを削除。
WebRTC.InitializeWebRTC.Dispose
RTCConfiguration クラスで非推奨になったメソッドを削除。
RTCConfiguration.enableDtlsSrtp
[3.0.0-pre.5] - 2023-04-28
追加
- Encoded Transform API を追加。
RTCRtpReceiver.GetContributingSourcesメソッドを追加。- Metadata、Encrypt をパッケージサンプルに追加。
変更
- NVIDIA Codec SDK を 12.0 にアップグレード。
- NVIDIA H264 ビデオコーデックを使用する際に SPS と PPS を送信するように変更。
修正
- NVIDIA ビデオコーデックの初期化及び再設定の際に意図しない NVENCException が発生する問題を修正。
- Dedicated Linux Server でクラッシュする問題を修正。
- Unity 2022.2 のビデオストリーミングで発生するパフォーマンスの問題を修正
[3.0.0-pre.4] - 2023-01-28
修正
RTCPeerConnectionのインスタンスを破棄した後にコールバックが発火されると KeyNotFoundException がスローされる問題を修正。- Android 端末で高解像度のビデオストリーミングを行うとクラッシュする問題を修正。
- macOS/iOS で高解像度のビデオストリーミングを行うとメモリリークする問題を修正。
[3.0.0-pre.3] - 2022-12-16
修正
- Unity Ediotr をコマンドライン上から
-nographicsオプションを指定して起動した時にクラッシュする問題を修正。
[3.0.0-pre.2] - 2022-12-09
変更
- libwebrtc を M107 に更新。
- Unity エディタを起動した直後にパッケージの初期化処理を自動的に実行するように修正。
WebRTC.InitializeとWebRTC.Disposeを非推奨に変更。
修正
- macOS Editor の Unity プロファイラでエンコードスレッドのプロファイリング結果が表示されない問題を修正。
- H264 コーデック使用時に最初の受信フレームから数秒間映像が停止する問題を修正。
- macOS Apple Silicon で小さい解像度の映像をストリーミングするときにクラッシュする問題を修正。
- Ubuntu 20.04 で WQHD (2560x1440) 以上の解像度を使用した時にフリーズする問題を修正。
削除
- Bitcode のサポートを停止。
- Unity 2019.4 のサポートを停止。
[3.0.0-pre.1] - 2022-10-28
変更
AudioListenerを引数にとるAudioStreamTrackのコンストラクタを追加。- macOS もしくは Windows で OpenGL を使用した時に
WebRTC.Initializeメソッドを呼び出す際に例外を発生させないように修正。 - Linux native plugin の libc++.so.1 への依存を解消。
修正
RTCPeerConnectionクラスのSetRemoteDescriptionとSetLocalDescriptionを同時に複数回呼び出した時の不具合を修正。
[2.4.0-exp.11] - 2022-09-28
変更
- ValidationExceptions.json を追加してパッケージ検証の際の警告を抑制。
- 反転シェーダの利用を終了して
Resourcesフォルダを削除。 VideoStraamTrack.CaptureStreamTrackメソッドの引数を変更。
修正
GetStatsメソッドを同時に複数回呼び出したときの不具合を修正。
[2.4.0-exp.10] - 2022-08-09
修正
- 異なるプラットフォーム間で映像を配信したときにクラッシュする問題を修正。
[2.4.0-exp.9] - 2022-08-01
修正
- pixel4a などの Android デバイスで Vulkan を利用したときにクラッシュする問題を修正。
[2.4.0-exp.8] - 2022-07-08
追加
- ビデオエンコーディングのフレームレートの調整をサポート。
- ビデオエンコード/デコード用スレッドの CPU 負荷をプロファイラウィンドウの項目に追加。
RTCRtpSender.ReplaceTrackメソッドの動作を確認するために "ReplaceTrack" サンプルを追加。
変更
RTCRtpTransceiverをインスタンス化する際の初期情報を設定するためRTCPeerConnection.AddTransceiverメソッドに引数を追加。
修正
- NVIDIA グラフィックスドライバのバージョンが古いときにクラッシュする問題を修正。
- ファイナライザが呼ばれないない状態で GC が実行される際の問題を修正。 Vulkan 利用時のビデオストリーミングのパフォーマンスを改善。
[2.4.0-exp.7] - 2022-05-20
追加
- Unity 2021.3 LTS をサポート。
- clang-format ファイルを追加。
- CMakePresets.json ファイルを追加。
- NVIDIA H.264 デコーダーをサポート。
- サンプルのメニューシーンにビデオストリーミングのコーデックと解像度のオプションを追加。
変更
- 色空間の変換処理の CPU 負荷をレンダリングスレッドからワーカースレッドに移動。
- NVIDIA Codec SDK を 11.0 にアップグレード。
修正
- Linux のネイティブプラグインの不要な依存ライブラリを削除。
削除
WebRTC.Initializeメソッドの引数のEncoderTypeを削除。- Removed
WebRTC.HardwareEncoderSupportメソッドを削除。
[2.4.0-exp.6] - 2022-02-24
修正
- 受信側で
AudioStreamTrackのインスタンス破棄の際にクラッシュする問題を修正。
[2.4.0-exp.5] - 2022-02-02
追加
- 保留中のタスクをメインスレッドから手動で実行する機能を追加
RTCDataChannelに Native コレクション (NativeArray<T>,NativeSlice<T>,NativeArray<T>.ReadOnly) を送信する API を追加RTCRtpTransceiver.Midプロパティを追加WebRTC.InitializeメソッドにenableNativeLogパラメータを追加- "E2ELatency" サンプルの追加
AudioStreamTrackクラスに引数なしコンストラクタを追加
変更
- libwebrtc を M92 に更新。
- Windows 用ネイティブプラグインのビルドに使用するコンパイラを MSVC から Clang に変更
- ストリーミングオーディオの再生を
MonoBehaviourのOnAudioFilterReadメソッドを利用する方法に変更 - 送信側で
RTCRtpEncodingParametersクラスのscaleResolutionDownByプロパティを使用すると、受信側のテクスチャサイズを動的に変更するように変更 Disposeメソッド実行済のインスタンスに対しアクセスしたときに、ObjectDisposedExceptionをスローするように変更
修正
- macOS(Silicon) でビデオストリーミングの初期化時にクラッシュする問題を修正
- Windows で OpenGL Core をグラフィックス API として選択するとクラッシュする問題を修正
- ステレオオーディオを複数のピアに対して送信すると、モノラルとして受信される問題を修正
- macOS(Intel) で HWA を有効にして Full HD 以上の解像度をビデオストリーミング送信するとクラッシュする問題を修正
- Windows で HWA を有効にして Full HD 以上の解像度をビデオストリーミング送信するとクラッシュする問題を修正
削除
- iOS のビルドプロセスをシンプルにするため iOS Simulator (x86_64) のサポートを削除
[2.4.0-exp.4] - 2021-08-19
追加
- macOS(Silicon) をサポート
- オーディオレンダリングをサポート
- パッケージサンプルを "Audio" と "MultiAudioReceive" の2つを追加
RTCAudioSourceStats、VideoSourceStatsクラスを追加
変更
- "MultiplePeerConnections" サンプルにオーディオ波形グラフを追加
修正
- Windows で Vulkan API を使用して "VideoReceive" サンプルを動作させるとクラッシュする問題を修正
WebRTC.Initializeメソッドを複数回呼び出すとクラッシュする問題を修正- Unity 2021.2 でビルドエラーが発生する問題を修正
[2.4.0-exp.3] - 2021-06-08
変更
- "VideoReceive" サンプルで入力映像用としてデバイス上のキャプチャモジュールを利用可能にする
修正
- ビデオ入力の色空間の判定処理を修正
RTCRtpSender.Trackのプロパティにアクセスしたときにクラッシュする問題を修正
[2.4.0-exp.2] - 2021-05-21
修正
- Vulkan API 利用時の RenderTexture の色空間を修正
- サンプルシーンの修正 iOS フレームワークの info.plist に short version string を追加
変更
- Android でストリーミングのテクスチャサイズに制限を設ける
- NvCodec の利用可否の判定部分を修正
- ハードウェアアクセラレーションが無効なときはソフトウェアデコーダを使用する
[2.4.0-exp.1] - 2021-04-23
追加
- Android ARM64 サポート
- 開発者のサンプルシーン間の移動を簡略化するため "Menu" を追加
- "PerfectNegotiation" サンプルを追加
- Linux 上で OpenGL Core をグラフィック API に指定したときにソフトウェアエンコーダを利用可能にする
RTCPeerConnectionクラスにRestartIceメソッドを追加RTCRtpReceiverクラスにStreamsプロパティを追加
変更
- Unity 2020.3 をサポート
- libwebrtc を m89 に更新
RTCPeerConnection.CreateOfferメソッドとRTCPeerConnection.CreateAnswerメソッドの引数の型を変更
修正
RTCDataChannelインスタンスのプロパティにアクセスするとクラッシュする問題を修正- macOS でビデオストリーミングに不正なグラフィックフォーマットを使用するとクラッシュする問題を修正
[2.3.3-preview] - 2021-02-26
追加
RTCPeerConnectionクラスにOnConnectionStateChangeイベントを追加
修正
RTCPeerConnectionインスタンスを破棄してからMediaStreamTrackインスタンスにアクセスするとクラッシュする問題を修正
[2.3.2-preview] - 2021-02-12
変更
Audio.CaptureStreamメソッドがトラックのラベル名を指定できるように修正
修正
- ネイティブコードでメモリリークしている問題を修正
- インスタンスを破棄した後にプロパティにアクセスするとクラッシュするバグを修正
MediaStream.GetVideoStreamTrackメソッドとMediaStream.GetVideoStreamTrackメソッドが正しい値を返すように修正RTCRtpTransceiver.ReceiverプロパティとRTCRtpTransceiver.Senderプロパティが正しい値を返すように修正
[2.3.1-preview] - 2021-01-07
修正
RTCIceCandidate.candidateプロパティが正しい SDP フォーマットを返すように修正
[2.3.0-preview] - 2020-12-28
追加
- iOS プラットフォームをサポート
macOS に H.264 ハードウェアデコーダ (VideoToolbox) を追加
RTCRtpSenderクラスとRTCRtpReceiverクラスにGetCapabilitiesメソッドを追加RTCRtpTransceiverクラスにSetCodecPreferencesメソッドを追加- 2サンプルを追加 ("ChangeCodecs", "TrickleIce")
RTCIceCandidateクラスにプロパティを追加RTCDataChannelInitクラスにプロパティを追加
変更
RTCIceCandidateの型を構造体からクラスに変更RTCIceCandidateInitの型を構造体からクラスに変更RTCDataChannelInitの型を構造体からクラスに変更RTCPeerConnection.AddIceCandidateメソッドの引数を変更// old public void AddIceCandidate(ref RTCIceCandidate candidate); // new public bool AddIceCandidate(RTCIceCandidate candidate);RTCPeerConnection.CreateDataChannelメソッドの引数を変更// old public RTCDataChannel CreateDataChannel(string label, ref RTCDataChannelInit options); // new public RTCDataChannel CreateDataChannel(string label RTCDataChannelInit options = null);
[2.2.1-preview] - 2020-11-13
追加
- "Bandwidth" サンプルの追加
修正
- Vulkan API でのビデオストリーミングの受信処理を修正
- Vulkan API を使用したアプリケーションの終了時に発生するクラッシュバグを修正
- Vulkan API を利用してスタンドアロンビルドしたときに発生するバグを修正
- Linux で NVIDIA ドライバがインストールされていないときに発生するバグを修正
- "VideoReceive" サンプルのバグ修正
[2.2.0-preview] - 2020-10-26
追加
- ソフトウェアデコーダのサポート
- macOS 上でのハードウェアエンコーダのサポート (VideoToolbox)
- Linux と Windows 上での Vulkan API のサポート
- Linux IL2CPP のサポート
- パッケージサンプルを追加 ("MultiplePeerConnections", "MultiVideoReceive", "MungeSDP", "VideoReceive")
変更
- libwebrtc のバージョンを m85 にアップグレード
- NVIDIA Codec SDK を 9.1 にアップグレード
RTCPeerConnectionクラスのSetLocalDescriptionとSetRemoteDescriptionの2つのメソッドで、無効な引数を渡したときに例外を投げるように修正
[2.1.3-preview] - 2020-09-28
変更
RTCRtpEncodingParametersクラスに "minBitrate" パラメータを追加
[2.1.2-preview] - 2020-09-14
変更
- 社内の翻訳システムへの移行のため日本語ドキュメントを削除
[2.1.1-preview] - 2020-09-11
修正
RTCRtpSender.SetParametersAPI が正しく動作しない問題を修正- C# コードに含まれる ZWSP(幅なしスペース) を削除
[2.1.0-preview] - 2020-08-24
追加
- WebRTC の動作を確認するための統計ウィンドウを Unity エディタに追加
- WebRTC の統計情報を収集するための
RTCPeerConnection.GetStatsAPI を追加 - ビデオストリーミングの品質を調整するために
RTCRtpSender.SetParametersとRTCRtpSender.GetParametersを追加 - データチャネルを状態を確認するための
RTCDataChannel.ReadyStateを追加
修正
- ネットワークの品質が低下した後に、ビデオストリーミングの品質が悪い状態のままになる問題を修正
[2.0.5-preview] - 2020-07-30
修正
- セキュリティに関する問題を修正するため libwebrtc のバージョンを m84 にアップグレード
[2.0.4-preview] - 2020-07-10
修正
- ビデオトラックを破棄する際にクラッシュする問題を修正
[2.0.3-preview] - 2020-06-05
修正
- DirectX12 を利用しているときメモリリークする問題を修正
[2.0.2-preview] - 2020-05-14
修正
RTCDataChannelのコンストラクタの引数に、無効なパラメータを指定するとクラッシュする問題を修正- ハードウェアエンコーダーの初期化に失敗したときにクラッシュする問題を修正
- スクリプトをリコンパイルする際にエディタがフリーズする問題を修正
- ドキュメントを修正
[2.0.1-preview] - 2020-05-01
修正
- バージョン表記の問題を修正
[2.0.0-preview] - 2020-04-30
追加
- マルチカメラのサポート
- DirectX12 API のサポート
- VideoStreamTrack API の公開
- AudioStreamTrack API の公開
[1.1.2-preview] - 2020-03-19
修正
- OpenGL の表示色の問題を修正
[1.1.1-preview] - 2020-02-28
修正
- DLL 読み込み時エラーの修正
[1.1.0-preview] - 2020-02-25
追加
- IL2CPP サポート
- Linux OpenGL API でのハードウェアエンコーダのサポート
- Mac OS Metal API でのソフトウェアエンコーダのサポート
- Windows DirectX11 API でのソフトウェアエンコーダのサポート
変更
Audio.Updateメソッドをパブリックメソッドに変更
[1.0.1-preview] - 2019-09-22
修正
- ドキュメントを修正
[1.0.0-preview] - 2019-08-22
追加
- ツールチップの追加
変更
- サンプルフォルダのフォルダ名を変更
[0.2.0-preview] - 2019-07-30
変更
- NvCodec の初期化に失敗したときにログを出力するように修正
[0.1.0-preview] - 2019-07-02
- リリース