100ms Logo

100ms

Docs

Search docs
/

Release Notes

v2.5.3 - 2022-12-7

Added

  • HMSVideoView - Easy to use abstraction over SurfaceViewRenderer

Fixed

  • Simulcast bug where the layers are not added in the HMSRemoteVideoTrack
  • Fix for audio capture not picking the correct sampling rate of mic automatically

v2.5.2 - 2022-11-25

Added

  • Simulcast.
  • Quality limitation reasons on the local video track.
  • Extra Analytics.
  • Current and past sdks from 2.4.0 are also deployed on Maven Central along with jitpack.

Fixed

  • A bug where degraded tracks would not recover in a certain situation.
  • Consistent naming for HLS player stats across platforms.

v2.5.1 - 2022-10-28

Added

  • Updated webrtc to fix hardware simulcast resolution not changing between layers.
  • Screenshare now gets unpublished if the role of the peer is changed to one that can't.

Changed

  • Messages that are sent via REST api now arrive with a null sender peer, where previously they were not sent at all. senderPeer in HMSMessages can be null now.

v2.5.0 - 2022-10-14

Added

  • SFN module that can be used to receive periodic player stats about HLS playback
  • Option in HMSVideoTrackSettings to force device to use software decoder

v2.4.9 - 2022-09-30

Added

  • Session Metadata API(alpha version)
  • Added better Telemetrics for analytics
  • Initial states(Muted/Unmuted) for local video and audio track can be mentioned while joining using the HMSVideoTrackSettings and HMSAudioTrackSettings in the builder of HMSSDK

Changed

  • Deprecated ROOM_NAME_UPDATED and ROOM_ID_UPDATED types of HMSRoomUpdate as they are no longer used
  • Updated WebRTC to m104 from m97

Fixed

  • SDK calling leave() on being removed from the room leading to peer.leave.failure webhook along with peer.leave.success
  • LetterBoxing(Black borders on top and bottom) observed when sharing screen in landscape mode
  • NPE fix in performance measurement while calling join and no websocket connection
  • Send offline analytics events to the right environment

v2.4.8 - 2022-08-12

Fixed

  • removeSink will only stop the download of a videoTrack if all the sinks attached to it are removed
  • Stop camera capturer on calling leave on Preview page
  • Setting the correct audio output device when a Bluetooth headset is in connecting state

v2.4.7 - 2022-07-28

Fixed

  • Calling switchCamera API leads trigerring of onSuccess callback twice
  • onRoomUpdate with type HMSRoomUpdate.ROOM_PEER_COUNT_UPDATED not getting called when peer count changes in the room
  • Peer not able to publish tracks when updated to webrtc from HLS if rejoins after a reconnection in webrtc Mode

Changed

  • HMSHLSConfig is now an optional parameter while calling startHLSStreaming and stopHLSStreaming
  • The meetingUrl parameter while creating HMSHLSMeetingURLVariant instance for HMSHLSConfig is optional now. If nothing is provided HMS system will take the default meetingUrl for starting HLS stream
  • changeRoleForce permission in HMSRole is now removed and no longer used
  • recording permission in HMSRole is now broken into - browserRecording and rtmpStreaming
  • streaming permission in HMSRole is now hlsStreaming

v2.4.6 - 2022-07-15

Fixed

  • Checking for targetApiVersion along with Device SDK version while initializing Bluetooth manager

v2.4.5 - 2022-07-14

Fixed

  • peer_list_time calculation
  • Audio device switch issues
  • Bluetooth issues in HLS mode
  • Removed additional Bluetooth permission in SDK for android 30 and above

Added

  • Join response time to analytics
  • Support to enable or disable webrtc's AutoResize option while publishing video track

v2.4.4 - 2022-07-07

Fixed

  • Web-Socket reconnection not working for non webrtc peers

v2.4.3 - 2022-07-01

Fixed

  • cameraFacing field in HMSVideoTrackSettings not getting updated on calling switchCamera API
  • Issue of 'peer is not joined' error while joining and SDK reconnection
  • Automatic proguard rules were fixed. No app-side proguard configuration is required for production builds with 100ms.

Added

  • APIs to stream device audio in different modes
  • APIs to view and change the output speaker selected by the SDK to playout
  • Analytics events to measure retry counts of JOIN calls

v2.4.2 - 2022-06-22

Fixed

  • Webrtc not able to find Camera from Android Camera Manager leading to CantAccessCaptureDevice error while calling preview or join API
  • Assertion Crash in Network Monitor while trying to create new instane of HMSSDK while a call is in progress
  • Chances of Multiple socket connection getting created incase there is network disconnection in preview screen and join gets called during that time

Added

  • setAudioMode API to change the Audio out mode manually between in-call volume and media volume
  • Retry on 5xx and 429 errors in all RPC calls
  • Analytics events to measure peer-list time
  • Join optimization by not sending offer for non webrtc peers

Changed

  • Made TrackError while switching camera non-terminal
  • Removed recreation of Lists happening in SDK, leading to slowness while calling certain APIs in big rooms. Affected APIs by this change are :- getPeers() , getRemotePeers(), getPlugins() - now return List instead of Array

v2.4.1 - 2022-06-14

Fixed

  • Made SDK compatible for compileSDKversion 30 by reducing version of Room lib to 2.3.0

Added

  • Analytics events to measure join and preview time
  • Retry on 5xx errors in internal join message

v2.4.0 - 2022-06-09

Fixed

  • Update the width and height of screen-share video track being published based on the rotation of device
  • Crash fix on Android 12 if app does not provide Bluetooth Connect permission. SDK now sends a non-terminal error
  • Crash fix on Android 12 on calling the HMSScreenCaptureService.getStopScreenSharePendingIntent API while starting screenshare
  • Un-necessarily sending HLS_RECORDING_STATE_UPDATED in onRoomUpdate callback when HLS Streaming is enabled

Changed

  • Socket close from cancel, which ensures the leave api does not wait for server response hence initiating internal teardown immediately

Added

  • Offline storage of Analytics event. Events that cannot be send immediately via websockets would be persisted in a db and will be sent later when connection returns
  • Remove height/width check for rtmp and browser recording in SDK
  • RemoveRtcStatsObserver API is added

v2.3.9 - 2022-05-18

Fixed

  • Screen Share not starting in highest resolution
  • Serverside Subscribe degradation fix - marking track not degraded after removeSink is called
  • IO Exception Crash in Android 12, in the alarm manager of Log Util
  • NPE Crash fix in webrtc stats monitor
  • Crash in LogUtils

Changed

  • serverReceiveTime data type in HMSMessage is not of type Long instead of Date

v2.3.7 - 2022-05-09

Fixed

  • A crash in some rare cases where analytics events were being sent while the room was ending.

Added

  • sessionId is a new parameter in HMSRoom. It is updated with the current sessionId when a room is joined.

2.3.6 - 2022-04-28

Fixed

  • Fixed bug: Local peer being null in stats callbacks
  • Fixed bug: onSuccess callback not called from preview/join if network goes off BEFORE ws-connect and comes back after sometime

Added

  • Server Side Subscribe Degradation

2.3.5 - 2022-04-20

Fixed

  • Crash fix: InvalidTokenFormat exeception. This would be thrown in the onError callback instead
  • Fixed bug: Sending TRACK_DEGRADED when not required in some cases

Added

  • Apps can now add resolution(w*h) when starting RTMP Streaming
  • SDK has the capability to write logs in the filesystem of devices. Apps can enable or disable while initializing the SDK

2.3.4 - 2022-03-28

Fixed

  • HLS recording status wasn't always updated when stopped.
  • Rare crash when cameras are unavailable and it seemed to the app like none exist.

Added

  • Network Quality in preview. Network quality reports can now be requested at the preview screen. Use the returned value to determine if you should suggest people's internet is too slow to join with video etc.
  • Network Quality during calls. Peer Network Quality updates are now received during the call. Use this to show how strong any peer's internet is during the call.

2.3.3 - 2022-03-17

Fixed

  • Leave not finishing if SDK is in reconnection state. Hence all join calls after that was getting queued up if called on the same HMSSDK instance
  • Improved subscribe degradation so that new add sinks are handled properly when SDK is already in degraded state
  • Crash fix on starting/stopping HLS where HlsStartRecording was null

Added

  • Added Hls Recording to initial PeerList
  • Ignore room-state updates after joining

2.3.2 - 2022-03-14

Fixed

  • ERROR Analytics events not being sent

2.3.1 - 2022-02-25

Fixed

  • NPE in OnPeerUpdateManager when sometimes room-sate message comes before policy-change message. Ignoring the first room-sate message in such cases

2.3.0 - 2022-02-23

Added

  • HlsRecordingConfig to HMSHLSConfig object
  • onPeerUpdate and onRoomUpdate callbacks in 'HMSPreviewListener' to get info about the room at Preview screen
  • Server will send a timeout error if a peer stays on preview page for too along
  • Calling preview API again without a leave call would result in an error

Changed

  • Synced leave function
  • Make leave API call to server sync instead of async

Fixed

  • Socket is now cancelled instead of close, which was causing queued messages to be processed after teardown leading to crashes and Failed to set remote offer sdp: Called in wrong state: closed error
  • NPE in sendMessage API

2.2.9 - 2022-02-08

Added

  • Local track updates like mute/unmute will be send as well via onTrackUpdate
  • Added startedAt and stoppedAt field for Browser and SFU recording

Changed

  • Upgraded kotlin version to 1.6.10
  • Upgraded webrtc version to m97
  • customerUserID can be null

Fixed

  • Crash Fix when joining without mic permission
  • Stop screenshare on calling leave() API if screenshare is going on
  • Potential fix for ClassCastException on accesing localPeer while publishing
  • Fix for HMSException: Network connection lost crash when connection failed while joining
  • Improved time taken for YUV conversion for virtual background
  • Fixed background image overlay

2.2.8 - 2022-01-24

Added

  • Added APIs to support of Virtual Background
  • Use the following dependency along with main 100ms SDK dependency to support VB plugin
    implementation 'com.github.100mslive.android-sdk:virtualBackground:2.2.8'

Changed

  • Gradle Dependency to add core 100ms SDK features has changed to following
    implementation 'com.github.100mslive.android-sdk:lib:x.x.x'

2.2.7 - 2022-01-18

Changed

  • Downgrading androidx.core:core-ktx to 1.6.0 to support apps with compile sdk version < 31.

2.2.6 - 2022-01-14

Added

  • Added analytics to collect whether device is using h/w or s/w AEC
  • Added isTerminal property in HMSException - Use this property to determine whether peer can continue in the room or not
  • Added analytics to collect info about could not find FRONT camera issue
  • Added analytics events for phone call interruptions
  • Queue-ing analytics events which maybe getting missed as websocket not present

Fixed

  • Bug fix - All Remote peers get muted for local peer if the local peer receives a phone call at a moment when there is no one else in the room
  • onReconnection will not be send continuously & will be sent only in the start. It was being sent continously while SDK was retrying.
  • NPE crash fix in OnPeerUpdateManager and SDKStore.getRoom

2.2.5 - 2021-12-29

Fixed

  • OOM Crash due to printing of SDKStore object in HMSSpeaker
  • Clear local track mute status when the sdk is cleared
  • Fix for java.lang.IllegalStateException: No camera device found for FRONT crash - Now the peer will be able to join the room but with no videoTrack

Added

  • An optional HMSActionResultListener is added to switchCamera API - errors will be sent back to app if some errors come up
  • Send the local Screenshare Track to app in onTrackUpdate
  • Added new analytics event videopresence.failed for cases where SDK cannot find a camera to capture

Changed

  • Device permission denied errors are not terminal errors anymore. Clients will get a onJoin or onPreview callback even if audio or video tracks cannot be created by the SDK due to some issues in the capture device. onError callbacks will also be called along with the above callbacks

2.2.4 - 2021-12-20

Fixed

  • RTMP updates are fired once server notifies
  • switchCamera API does not need a Coroutine scope to be called from

Added

  • APIs to start/stop HLS Streaming (beta version)
  • HLS_STREAMING_STATE_UPDATED enum in HMSRoomUpdate to notify changes about HLS streaming status in HMSRoom
  • Beta version of getStats() API
  • startScreenShare API now take an optional Notification from app which can be used to stop the screenshare

2.2.3 - 2021-12-03

Fixed

  • UninitializedPropertyException crash while calling acceptChangeRole due to socket not getting initialized
  • Permission Errors are non terminal now

Added

  • Subscribe Degradation events being sent to analytics

2.2.2 - 2021-11-25

Added

  • changeMetadata API to change the metadata in HMSPeer. This change will be updated to all and will be persistent

Fixed

  • HMSRoomUpdate will be trigerred for the local peer who initiated a start or stop Recording
  • The room's Recording status will be checked upon reconnection of a peer
  • Screenshare cannot be unpublished while in reconnection mode
  • setVolume() API on RemoteAudioTrack can now take in value from 0.0 to 10.0

Fixed

  • Analytic fixes
  • Fix issue in self role change which was calling roleChange twice
  • Remove token from URL Params

2.2.0 - 2021-11-19

Fixed

  • Analytic fixes
  • Fix issue in self role change which was calling roleChange twice
  • Remove token from URL Params

Added

  • Add Audio Recording errors to Analytics
  • Add more instrumentation tests

2.1.9 - 2021-11-11

Added

  • Beta version of screenshare API
  • Leave API now takes in an optional parameter to return success and error callbacks

Fixed

  • Class cast exception crash fix if End Room API was called by server where requested_by peer is null

2.1.8 - 2021-11-03

Added

  • getRoom API to HMSSDK which will return a HMSRoom instance that the user has joined, NULL otherwise

Fixed

  • Crash fix - IllegalArgumentException: Receiver not registered on calling leave immediately after joining
  • Already JOINED HMSException will now be coming in onError of HMSUpdateListener instead of a throwing a fatal Exception
  • RTMP Recording fixes

2.1.7 - 2021-11-01

Changed

The timeouts for all websocket operations on the server have been increased from 5 seconds to 11 seconds.

If a join was failing before for lack of feedback, it has a larger margin within which to succeed now.

2.1.6 - 2021-10-28

Breaking Changes

requestedBy: HMSPeer in HMSChangeTrackStateRequest is now nullable. It could be mute if the person tried to mute or unmute someone and immediately left the room.

Fixed

  • Check for Role change of remote peers after reconnection
  • Return correct value of isPlaybackAllowed
  • HMSTrack is null for local peer in HMSSpeaker
  • onSuccess callback for the acceptChangeRequest method was never being called. This will now be called appropriately. This request can safely be ignored because the SDK already muted the peer but may be helpful in recognizing that the mute came externally. A check like the following is now required in your onChangeTrackStateRequest:
if (details.track.isMute != details.mute) { // Process ChangeTrackMuteRequest }

Added

  • Added customerId and description to HMSPeer's tostring().
  • HMSChangeTrackStateRequest is now sent even when peers are muted. Previously, if a remote peer requested a peer to mute, there would be no ChangeTrackStateRequest
  • The way packet loss is measured for track degradation is changed

2.1.5 - 2021-10-27

Fixed

  • Crash fix for "MediaStream has been disposed" - that could happen when multiple peers leave and join a large room

2.1.4 - 2021-10-18

Fixed

  • Videos send by Pixel 3 device are distorted
  • UninitializedPropertyAccessException crash fix on leave
  • Using subscribe degradation as set on the local peer's role

Added

  • HMSTrack obj in HMSSpeaker

2.1.3 - 2021-10-04

Fixed

  • Reconnection improvements - reconnection time has reduced
  • Analytics fix

Added

  • Ability to start/stop a RTMP Streaming or Recording
  • Ability to change the mute status of one or many remote HMSTrack for all peers of a particular role, or all tracks of a particular source, type or source AND type.
  • Ability to use either software or hardware acoustic echo cancellation from the application layer

Updated

  • Updated to latest m94 release of webrtc

2.1.2 - 2021-09-20

Fixed

  • Donot degrade videos on reconnection
  • SendTrack updates after reconnection if a new peer joins while SDK is reconnection
  • Muting new tracks that are getting added when SDK mutes all remote tracks on interruption

2.1.1 - 2021-09-10

Fixed

  • SDK Reconnection on network disconnection improvement
  • NPE Crash fix on preview screen in case of SDK reconnection
  • Fix: onPreview getting was called twice incase of SDK reconnection

2.1.0 - 2021-09-03

Fixed

  • Subscribe Degradation improvements
  • sendBroadcast API now accepts any type of HMSMessageType
  • Concurrent modification Exception Crash fix

2.0.9 - 2021-08-27

Added

  • Support for self role change

Changed

  • Updated webrtc lib to latest
  • Bug fix(can reuse the same instance of hmsSDK to rejoin a room)
  • Few memory leak
  • IMP --> With this release no need to add any dependancy to webrtc library. Anyone migrating from previous versions, PLEASE REMOVE the webrtc dependancy from your app's build.gradle

2.0.8 - 2021-08-17

Added

  • Sending private and group messages APIs
  • Remove peer from a room API
  • Remote mute peer API
  • End room API

Changed

  • send(message:) API renamed to sendBroadcastMessage

2.0.7 - 2021-08-06

Fixed

  • Bug fixes in subscribe degradation
  • Bug fixes in role change
  • Bug fixes in onReconnection handling
  • Bug fix in incoming phone call handling

2.0.6 - 2021-07-27

Fixed

  • Bugs in change role

Added

  • Support for subscribe degradation

2.0.5 - 2021-07-20

Added

  • HMSSpeaker contains HMSPeer instead of peerId
  • Support for changing of roles

2.0.4 - 2021-07-09

Fixed

  • Crash fixes on leave and network change
  • Audio Routing to earpiece on interruption
  • No audio in BT headset on connecting disconnecting error
  • Check if role allows publishing in preview
  • Release camera on leave

Added

  • SDK will handle all interruptions like incoming voice and VoIP calls
  • Pass HMSRole to client via HMSPeer

2.0.2 - 2021-06-30

Fixed

  • Made hmsSDK.getLocalpeer() nullable
  • Fix logging bug
  • Fix bug where ontrackUpdate came before RTCTrack

2.0.1 - 2021-06-29

Added

  • Retry when join call returns server error in 5xx or 429
  • isTerminal property to analytics

Fixed

  • NPE Crash on SDKStore.getLocalPeer()
  • Unsupported notification message crash
  • Call onError callback in webrtc subscription failure

2.0.0-beta02 - 2021-06-24

Added

  • Preview API
  • Enabled Opus dtx for audio
  • Added retry to INIT api call

2.0.0-beta01 - 2021-06-16

Added

  • Proper error messages from client and server
  • Handling of bad network conditions by retrying inside SDK
  • Audio Manager is part of the SDK
  • Callbacks for onReconnecting and onReconnected
  • Added Analytics to track issues

2.0.0-alpha04 - 2021-06-04

Added

  • Simplified SDK interfaces that can power a fully-featured video conferencing application

    • join
    • leave
    • listeners for tracks/peers/other data
  • Features not covered in this release

    • Handling network disconnections (disconnect from wi-fi to 4g ends the call)
    • Handling subscription network degradations
    • Handling second order publish network degradations
    • Detailed analytics
    • Recording
  • Please contact @akash goswami in your Slack channel if you have any questions