Changelog
All notable changes to the webrtc package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[3.0.0-pre.8] - 2024-12-12
Changed
- doc: improve the API doc of CameraExtension
- doc: improve the API doc of RTCSessionDescription
- doc: improve the API doc of RTCDataChannel
- doc: Improve the API doc of RTCConfiguration
- doc: Improve the API doc of RTCRtpEncodingParameters
- doc: Improve the API doc of RTCRtpSender
- doc: Improve the API doc of RTCRtpTransceiver
- doc: Improve the API doc of WebRTC
- doc: Improve the API doc of AudioStreamTrack
- doc: Improve the API doc of VideoStreamTrack
- doc: Improve the API doc of MediaStreamTrack
- doc: Improve the API doc of MediaStream
- doc: Improve the API doc of RTCPeerConnection
- doc: Improve the API doc of RTCIceServer
[3.0.0-pre.7] - 2023-10-20
Added
- Add Android x86_64 support experimentally.
- Add an property
.CanTrickleIceCandidates
inRTCPeerConnection
class. - Add an configurable logger in
WebRTC
class. - Support scale resolution for NVIDIA H.264 codec.
- Support simulcast for NVIDIA H.264 codec.
- Add an property
SyncApplicationFramerate
inRTCRtpSender
class to improve latency of video streaming.
Changed
- Upgrade libwebrtc M116.
- Change Android API minimum level to 23 because the API level 22 is obsoleted on Unity2020.3 LTS.
- Add
RTCDataChannel.onError
event. - Change a constructor of
VideoStreamTrack
to make simple to flip video texture.
Fixed
- Fix an issue when setting a scale factor of video encoding to a fractional scaling ratio.
- Fix an occasional crash issue when using hardware encoder with D3D11 graphic device.
- Fix an crash when
nvEncodeAPI64.dll
is not found on Windows. - Optimize audio sampling when using mute.
[3.0.0-pre.6] - 2023-07-16
Added
- Add
AudioStreamTrack.onReceived
delegate which fetch audio buffers from other peers.
Changed
- Upgrade libwebrtc M112.
Fixed
- Improve video encoding performance for DX11/DX12 which decrease the loads on the rendering thread.
- Fix a runtime error when replacing track with NvCodec.
- Support calling
AudioStreamTrack.SetData
on worker thread - Fix an issue in a VideoReceive sample scene which a video streaming doesn't work from camera device on Android since Unity 2022.1.
Removed
Remove Obsolete methods in WebRTC class.
WebRTC.Initialize
WebRTC.Dispose
Remove Obsolete methods in RTCConfiguration class.
RTCConfiguration.enableDtlsSrtp
[3.0.0-pre.5] - 2023-04-28
Added
- Add Encoded Transform API.
- Add
RTCRtpReceiver.GetContributingSources
method. - Add Metadata and Encrypt into package sample.
Changed
- Upgrade NVIDIA Codec SDK 12.0.
- Change to send SPS and PPS when using the encoder of NVIDIA video codec.
Fixed
- Fix unhandled NVENCException's occurring during initialization & reconfigure calls when using NVIDIA video codec.
- Fix crash on dedicated Linux Server.
- Fix a performance issue of video streaming with Unity 2022.2
[3.0.0-pre.4] - 2023-01-28
Fixed
- Fix KeyNotFoundException in
RTCPeerConnection
when firing the callback after disposing the its instance. - Fix crash when streaming high resolution video on Android device.
- Fix memory leak on macOS/iOS when streaming high resolution video.
[3.0.0-pre.3] - 2022-12-16
Fixed
- Fix the crash when launching Unity Editor on a command line with
-nographics
option.
[3.0.0-pre.2] - 2022-12-09
Changed
- Upgrade libwebrtc M107.
- Change that invoking initialization process automatically just after launching Unity Editor.
- Obsolete
WebRTC.Initialize
andWebRTC.Initialize
.
Fixed
- Fix not displaying profiling result of encoding thread on Unity Profiler on macOS.
- Fix stopping at first received frame for seconds when using H264 codec.
- Fix the crash when streaming video which resolution is small on macOS Apple Silicon.
- Fix the freeze when using over WQHD (2560×1440) resolution on Ubuntu 20.04.
Removed
- Finish Bitcode support.
- Finish Unity 2019.4 support.
[3.0.0-pre.1] - 2022-10-28
Changed
- Add
AudioStreamTrack
constructor to setAudioListener
. - Change
WebRTC.Initialize
method to not throw exception when using OpenGL Core on Windows or macOS. - Remove dependency libc++.so.1 in Linux native plugin
Fixed
- Fix
SetRemoteDescription
andSetLocalDescription
method ofRTCPeerConnection
class to work correct when calling multiple at the same time.
[2.4.0-exp.11] - 2022-09-28
Changed
- Add ValidationExceptions.json to suppress warnings about the package validation.
- Stop to use flip shader so that removing
Resources
folder. - Change parameter of
VideoStraamTrack.CaptureStreamTrack
method.
Fixed
- Fix a bug when calling
GetStats
method multiple times at the same time.
[2.4.0-exp.10] - 2022-08-09
Fixed
- Fix crash when streaming video between different platforms.
[2.4.0-exp.9] - 2022-08-01
Fixed
- Fix the crash bug on Android devices like pixel4a when using Vulkan.
[2.4.0-exp.8] - 2022-07-08
Added
- Supported video encoding framerate control.
- Added the items in Profiler Window to show the CPU loads of video encoding/decoding thread.
- Add a new sample "ReplaceTrack" to demonstrate
RTCRtpSender.ReplaceTrack
method.
Changed
- Changed arguments of
RTCPeerConnection.AddTransceiver
method to pass initial information ofRTCRtpTransceiver
when instanting it.
Fixed
- Fixed the crash because of the old version of NVIDIA graphics driver.
- Fixed the issue when garbage collected but the finalizer hasn't been called.
- Improved performance of video streaming when using Vulkan graphics API.
[2.4.0-exp.7] - 2022-05-20
Added
- Supported Unity 2021.3 LTS.
- Added clang-format file.
- Added CMakePresets.json file.
- Supported NVIDIA decoder for H264 codec.
- Added the codec selection option and video resolution option in the menu scene.
Changed
- Moved CPU loads of the color conversion from the rendering thread to the worker thread.
- Upgraded NVIDIA Codec SDK 11.0.
Fixed
- Removed unnecessary dependencies of the native plugin on Linux.
Removed
- Removed an argument
EncoderType
forWebRTC.Initialize
method. - Removed
WebRTC.HardwareEncoderSupport
method.
[2.4.0-exp.6] - 2022-02-24
Fixed
- Fixed a crash bug where disposing
AudioStreamTrack
on a receiver side.
[2.4.0-exp.5] - 2022-02-02
Added
- Added the ability to execute pending native tasks manually from the main thread.
- Added support for sending basic native collections (
NativeArray<T>
,NativeSlice<T>
andNativeArray<T>.ReadOnly
) toRTCDataChannel
. - Added a property
RTCRtpTransceiver.Mid
. - Added an argument
enableNativeLog
forWebRTC.Initialize
method. - Added "E2ELatency" scene in the sample.
- Added a constuctor without arguments in
AudioStreamTrack
class.
Changed
- Upgraded libwebrtc M92.
- Changed compiler for native plugin on Windows (MSVC to Clang).
- Changed to use
OnAudioFilterRead
method inMonoBehaviour
for audio rendering. - Changed resizing texture dynamically on receiver side when using a property
scaleResolutionDownBy
inRTCRtpEncodingParameters
class. - Changed the exception type
ObjectDisposedException
when accessing instance after call Dispose method.
Fixed
- Fixed a crash bug where initializing video streaming on Unity Editor on Apple Silicon.
- Fixed a crash bug where configuring OpenGL Core as a graphics API on Unity Editor on windows.
- Fixed a bug that sending stereo audio produces mono clip on some peers.
- Fixed a crach bug where using Full HD resolution with HWA enabled on macOS(Intel).
- Fixed a crash bug where using Full HD resolution with HWA enabled on Windows.
Removed
- Removed iOS Simulator (x86_64) support for make simple building process for iOS.
[2.4.0-exp.4] - 2021-08-19
Added
- mac M1 architecture native support
- Audio stream rendering support
- Add two scenes ("Audio" and "MultiAudioReceive") into the package sample
- Add
RTCAudioSourceStats
andVideoSourceStats
class
Changed
- Add the audio waveform graph to "MultiplePeerConnections" scene in the sample
Fixed
- Fix the crash on Windows with Vulkan API on the "VideoReceive" sample
- Fix the crash when calling
WebRTC.Initialize
twice - Fix the error in the build process on
Unity2021.2
[2.4.0-exp.3] - 2021-06-08
Changed
- Add options of the incoming video in "VideoReceive" sample to test video capture modules on the device
Fixed
- Fix the validation for the color space of the incoming video
- Fix the crash when accessing the property
RTCRtpSender.Track
[2.4.0-exp.2] - 2021-05-21
Fixed
- Fix the color space of the RenderTexture for streaming when using Vulkan API
- Fix sample scenes
- Add a short version string to info.plist of ios framework
Changed
- Add the validation of the streaming texture size on Android
- Add the validation of the streaming when using NvCodec
- Use the software video decoder when disabling hardware acceleration
[2.4.0-exp.1] - 2021-04-23
Added
- Android ARM64 platform support
- Added a sample scene "Menu" which developers can go back and forth between sample scenes
- Added a sample scene "PerfectNegotiation"
- Added the software encoder on Linux support when using OpenGL Core graphics API
- Added the
RestartIce
method to theRTCPeerConnection
class - Added the
Streams
property to theRTCRtpReceiver
class
Changed
- Unity 2020.3 support
- Upgrade libwebrtc m89
- Changed the argument type of the
RTCPeerConnection.CreateOffer
method and theRTCPeerConnection.CreateAnswer
method
Fixed
- Fixed crash for accessing properties of
RTCDataChannel
instance - Fixed crash when using the invalid graphics format to stream video on macOS
[2.3.3-preview] - 2021-02-26
Added
- Added
OnConnectionStateChange
event to theRTCPeerConnection
class
Fixed
- Fixed a crash bug that occurs when accessing
MediaStreamTrack
properties after disposing ofRTCPeerConnection
[2.3.2-preview] - 2021-02-12
Changed
- Changed
Audio.CaptureStream
method to allow setting of audio track label.
Fixed
- Fixed memory leaks in native code.
- Fixed a crash bug when access an instance after disposed of it.
- Fixed
MediaStream.GetVideoStreamTrack
method andMediaStream.GetVideoStreamTrack
method to return a correct value. - Fixed
RTCRtpTransceiver.Receiver
property andRTCRtpTransceiver.Sender
property to return a correct value.
[2.3.1-preview] - 2021-01-07
Fixed
- Fixed
RTCIceCandidate.candidate
property in order to return a correct SDP formatted string.
[2.3.0-preview] - 2020-12-28
Added
- Supported iOS platform
- Supported H.264 HW decoder (VideoToolbox) on macOS
- Added
GetCapabilities
method to theRTCRtpSender
class and theRTCRtpReceiver
class - Added
SetCodecPreferences
method to theRTCRtpTransceiver
class - Added two samples ("ChangeCodecs", "TrickleIce")
- Added properties to the
RTCIceCandidate
class - Added properties tp the
RTCDataChannelInit
class
Changed
- Changed
RTCIceCandidate
type fromstruct
toclass
- Changed
RTCIceCandidateInit
type fromstruct
toclass
- Changed
RTCDataChannelInit
type fromstruct
toclass
- Changed argumments of the
RTCPeerConnection.AddIceCandidate
method
// old
public void AddIceCandidate(ref RTCIceCandidate candidate);
// new
public bool AddIceCandidate(RTCIceCandidate candidate);
- Changed arguments of the
RTCPeerConnection.CreateDataChannel
method
// 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
Added
- Added a "Bandwidth" sample
Fixed
- Fixed the receiver of video streaming with Vulkan API
- Fixed a crash bug when the application ended using Vulkan API
- Fixed a crash bug of the standalone build using Vulkan API
- Fixed bugs that occur on Linux not installed NVIDIA driver
- Fixed a bug of the "VideoReceive" sample
[2.2.0-preview] - 2020-10-26
Added
- Software decoder support
- Hardware encoder (VideoToolbox) support on macOS
- Vulkan API support on Linux and Windows
- Linux IL2CPP support
- Add WebRTC samples ("MultiplePeerConnections", "MultiVideoReceive", "MungeSDP", "VideoReceive")
Changed
- Upgrade libwebrtc m85
- Upgrade NVIDIA Codec SDK 9.1
- Changed
RTCPeerConnection
behaviour to throw exceptions when pass invalid arguments toSetLocalDescription
,SetRemoteDescription
[2.1.3-preview] - 2020-09-28
Changed
- Add "minBitrate" parameter to
RTCRtpEncodingParameters
class.
[2.1.2-preview] - 2020-09-14
Changed
- Erase Japanese documentation due to migrating to internal translation system.
[2.1.1-preview] - 2020-09-11
Fixed
- Fixed an issue where the
RTCRtpSender.SetParameters
API did not work properly - Removed ZWSP(zero-width-space) in C# code
[2.1.0-preview] - 2020-08-24
Added
- Added statistics window in Unity editor to allow checking the operation of WebRTC
- Added
RTCPeerConnection.GetStats
API which collect statistics of WebRTC - Added
RTCRtpSender.SetParameters
andRTCRtpSender.GetParameters
to adjustment streaming video quality - Added
RTCDataChannel.ReadyState
which shows the state of the channel
Fixed
- Fixed a issue which video stream remains with bad quality after a short network degradation
[2.0.5-preview] - 2020-07-30
Fixed
- Upgrade libwebrtc m84 to fix security issue (https://bugs.chromium.org/p/project-zero/issues/detail?id=2034)
[2.0.4-preview] - 2020-07-10
Fixed
- Fix a crash bug when dispose a video track
[2.0.3-preview] - 2020-06-05
Fixed
- Fix the memory leak when using DirectX12
[2.0.2-preview] - 2020-05-14
Fixed
- Fix the crash when using the incorrect parameter to as the argument of
RTCDataChannel
constructor - Fix the crash when initializing the hardware encoder failed
- Fix the editor freeze bug when recompiling scripts
- Fixed documents
[2.0.1-preview] - 2020-05-01
Fixed
- Fixed versioning issue
[2.0.0-preview] - 2020-04-30
Added
- Multi camera support
- DirectX 12 API support
- Published VideoStreamTrack API
- Published AudioStreamTrack API
[1.1.2-preview] - 2020-03-19
Fixed
- Fix OpenGL color order
[1.1.1-preview] - 2020-02-28
Fixed
- Fix DLL import error
[1.1.0-preview] - 2020-02-25
Added
- IL2CPP support
- Linux OpenGL hardware encoder support
- Mac OS Metal software encoder support
- Windows DirectX11 software encoder support
Changed
- Changed
Audio.Update
method to public
[1.0.1-preview] - 2019-09-22
Fixed
- Fixed documents
[1.0.0-preview] - 2019-08-22
Added
- Added tooltips
Changed
- Renamed sample folders
[0.2.0-preview] - 2019-07-30
Changed
- Output logs when NVCodec failed to initialize
[0.1.0-preview] - 2019-07-02
- Initial Release