Menu

Expand
Rate this page:

7.0 Changelog: Twilio Video Android

The Twilio Programmable Video SDKs use Semantic Versioning. Twilio supports version N-1 for 12 months after the first GA release of version N. We recommend you upgrade to the latest version as soon as possible to avoid any breaking changes.

Support for 6.x will cease on September 17th, 2022. This branch will only receive fixes for critical issues until that date. Check this guide when planning your migration to 7.x.

Support for 5.x will cease on December 4th, 2021. This branch will only receive fixes for critical issues until that date. Check this guide when planning your migration to 6.x.

Versions 4.x and below reached End of Life on September 8th, 2021. See the changelog here.

To ensure your account has the most up-to-date features and bug fixes, we recommend updating your Twilio Video SDK at least once a quarter.

7.5.1 (Oct 18, 2022)

New Features

  • Added a custom audio device utilizing the SDK's AudioDevice framework that uses Krisp's audio processing solution called NoiseCancellationAudioDevice . This custom audio device can be applied by calling Video.setAudioDevice(NoiseCancellationAudioDevice(...)) [VIDEO-10449]

Bug Fixes

  • Fixed bug where sinks registered with local audio tracks when a custom audio device was being used, failed to deliver frames. [VIDEO-11637]

Known Issues

  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.
ABI APK Size Impact
x86 5.7MB
x86_64 5.6MB
armeabi-v7a 4.3MB
arm64-v8a 5.3MB
universal 20.2MB

7.4.0 (Sep 29th, 2022)

New Features

  • This release introduces Adaptive Simulcast along with new Video Encoding modes for publishers. Adaptive Simulcast reduces publisher resource usage by only sending those encodings for a video track that are needed by subscribers or by the media server (when recording is enabled). This is an opt-in feature and can be enabled by setting the new Connect Option videoEncodingMode to AUTO, which allows the SDK to select video codecs, use adaptive simulcast, and manage encodings automatically. When videoEncodingMode Connect Option is set to AUTO, the preferVideoCodecs and/or EncodingParameters.maxVideoBitrate Connect Options cannot be set.

API Changes

  • Added a new videoEncodingMode field to ConnectOptions.
  • The videoEncodingMode API is mutually exclusive with existing codec management APIs EncodingParameters.maxVideoBitrate and preferVideoCodecs.

Known Issues

  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

Size Report

ABI APK Size Impact
x86 5.7MB
x86_64 5.6MB
armeabi-v7a 4.3MB
arm64-v8a 5.3MB
universal 20.2MB

7.3.1 (August 25th, 2022)

New Features

  • Added a configuration property to support MediaTek hardware encoding. This feature is in pilot. Contact support for more information. [VIDEO-10792]

Known Issues

  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

7.3.0 (August 24th, 2022)

Bug Fixes

  • Fixed maxAudioBitrate and maxVideoBitrate behavioral issues. [VIDEO-9081]
  • Fixed a grammatical error in the docs regarding the removal of video sinks. [VIDEO-10014]
  • Max video bandwidth limits are now applied to each simulcast layer when simulcast is enabled, and the expected behavior for max video bitrates with simulcast is better documented. [VIDEO-6762]
  • Fixed several bugs that could cause crashes and deadlocks when a Room is disconnected / destroyed. [VIDEO-9313, VIDEO-9425, VIDEO-9597, VIDEO-10596, VIDEO-10552]
  • Fixed a race condition where subscribed callbacks for Remote Participant could be raised for tracks that have been ended. [VIDEO-6322]
  • Fixed a crash bug when reconnecting to or disconnecting from a Room. [VIDEO-9425]
  • Fixed a crash regarding custom audio devices when writing captured audio samples to WebRTC. [VIDEO-11194]
  • Fixed a crash when errant callback from Camera2Capturer for its configuration is invoked after shutdown. [VIDEO-11195]

Known Issues

  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

7.1.2 (July 6th, 2022)

New Features

  • Added MD5 hash of video-release.aar & ktx-release.aar to be included in the release notes of every future release. [VIDEO-4637]

Bug Fixes

  • Fixed a crash when connected to a room and a track with an unsupported codec is added by a Remote Participant.[VIDEO-9698]

Known Issues

  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

Size Report

ABI APK Size Impact
x86 5.9MB
x86_64 5.9MB
armeabi-v7a 4.4MB
arm64-v8a 5.5MB
universal 20.9MB

7.1.1 (May 11th, 2022)

Bug Fixes

  • Fixed a crash caused by repeatedly switching the camera on/off while toggling the camera flash. [VIDEO-9294]

Size Report

ABI APK Size Impact
x86 5.9MB
x86_64 5.9MB
armeabi-v7a 4.4MB
arm64-v8a 5.5MB
universal 20.9MB

7.1.0 (March 16th, 2022)

New Features

  • Added ability to configure enabling/disabling support for video codec hardware encoders via global configuration and a properties file. The hardware encoder settings are loaded from a properties file located in the assets directory of the application. If the file does not exist, default settings are used. By default the filename is twilio-video-config.properties, the filename can be overridden by setting the system property com.twilio.video.Video.configPath.

The properties file currently supports the following settings:

Key Value Description
tvi.webrtc.DefaultVideoEncoderFactory.enableHWEncoding true/false Globally enables or disables support for hardware encoding for all supported video mime types. If disabled, hardware encoding will be disabled regardless if its subsequently enabled for a particular mimetype.
tvi.webrtc.DefaultVideoEncoderFactory.enableHWVP8Encoding true/false Enables or disables support for hardware encoding of VP8 content.
tvi.webrtc.DefaultVideoEncoderFactory.enableHWVP9Encoding true/false Enables or disables support for hardware encoding of VP9 content.
tvi.webrtc.DefaultVideoEncoderFactory.enableHWH264Encoding true/false Enables or disables support for hardware encoding of H.264 content.
tvi.webrtc.HardwareVideoEncoderFactory.enableH264HighProfile true/false Enables "High Profile" H.264 support for hardware encoding H.264 content. Has no effect for software encoding.
tvi.webrtc.HardwareVideoEncoderFactory.enableIntelVP8Encoder true/false Enables support for Intel's VP8 hardware encoder.
tvi.webrtc.HardwareVideoEncoderFactory.enableH264HuaweiSupport true/false Enables support for Huawei's H.264 encoder.

Bug Fixes

  • Fixed a bug that would cause a crash if a hardware encoder throws an exception when constructed. [VIDEO-8948]
  • Fixed a bug that could cause a crash when tracks are repeatedly publish/unpublished. [VIDEO-8649]

Size Report

ABI APK Size Impact
x86 5.9MB
x86_64 5.9MB
armeabi-v7a 4.4MB
arm64-v8a 5.5MB
universal 20.9MB

7.0.6 (February 11th, 2022)

New Features

  • Now builds with Java 11 instead of java 8
  • Updated build dependencies
  • Now uses gradle 7 and android tools 7.0.3
  • Added VP8 simulcast support using the software encoder. When simulcast is enabled, the software VP8 encoder will be used, even on devices with VP8 hardware encoding support.

Bug Fixes

  • Fixed a bug which could occur when connected to a Peer-to-Peer or Go Room and publishing a second video track before another Participant joins, causing the connection to be terminated or the second video track not to be fully established.
  • Fixed a bug which could cause the Room connection to be terminated by the server.
  • Fixed a bug which could cause the media connection not to be re-established after network changes.

Known Issues

  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

Size Report

ABI APK Size Impact
x86 5.8MB
x86_64 5.8MB
armeabi-v7a 4.4MB
arm64-v8a 5.5MB
universal 20.8MB

7.0.3 (December 6th, 2021)

API Changes

  • Added error code definition PARTICIPANT_SESSION_LENGTH_EXCEEDED_EXCEPTION.

Bug Fixes

  • Fixed a bug where if an exception occurs when connecting to a Room, the Room instance could leak and setting a custom audio device could fail.
  • Fixed a bug where media could incorrectly be detected as not flowing after the network connectivity changes.

Known Issues

  • As of 6.0.0 of the SDK, hardware video encoding doesn't publish all of the three simulcast layers when VP8 simulcast is enabled on Android. This affects Video Content Preferences from working properly for subscribing video participants since the feature requires all three simulcast layers to switch between. Our team is working on a fix for this, but the feature does work when VP8 simulcast is used to publish video from participants using the Javascript or iOS SDKs.
  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

Size Report

ABI APK Size Impact
x86 5.8MB
x86_64 5.8MB
armeabi-v7a 4.3MB
arm64-v8a 5.5MB
universal 20.7MB

7.0.2 (November 3rd, 2021)

New Features

  • The SDK now supports audio only rooms and added two error codes, ROOM_AUDIO_ONLY_FLAG_NOT_SUPPORTED_EXCEPTION (53124) & TRACK_TRACK_KIND_NOT_SUPPORTED_EXCEPTION (53125).

Enhancements

  • Improved reconnection time after network connectivity disruptions.

Known Issues

  • As of 6.0.0 of the SDK, hardware video encoding doesn't publish all of the three simulcast layers when VP8 simulcast is enabled on Android. This affects Video Content Preferences from working properly for subscribing video participants since the feature requires all three simulcast layers to switch between. Our team is working on a fix for this, but the feature does work when VP8 simulcast is used to publish video from participants using the Javascript or iOS SDKs.
  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

Size Report

ABI APK Size Impact
x86 5.8MB
x86_64 5.8MB
armeabi-v7a 4.3MB
arm64-v8a 5.5MB
universal 20.7MB

7.0.1 (October 15th, 2021)

Bug Fixes

  • Fixed an interoperability bug between JavaScript, iOS and Android SDKs which could cause subscription events not to fire in a Peer-to-Peer or Go Room. [VIDEO-7334] #211

Known Issues

  • As of 6.0.0 of the SDK, hardware video encoding doesn't publish all of the three simulcast layers when VP8 simulcast is enabled on Android. This affects Video Content Preferences from working properly for subscribing video participants since the feature requires all three simulcast layers to switch between. Our team is working on a fix for this, but the feature does work when VP8 simulcast is used to publish video from participants using the Javascript or iOS SDKs.
  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

Size Report

ABI APK Size Impact
x86 5.8MB
x86_64 5.7MB
armeabi-v7a 4.3MB
arm64-v8a 5.4MB
universal 20.6MB

7.0.0 (September 16th, 2021)

New Features

  • The SDK has been upgraded to use Chromium WebRTC 88.
  • The SDK uses Unified Plan SDP semantics instead of Plan-B. This brings several important benefits:
  • Improved interoperability with Firefox, Safari and Chrome in Peer-to-Peer and Go Rooms.
  • Track level operations like publishing and unpublishing are more reliable.
  • Improved performance of Room.getStats() by adopting the W3C standardized RTC stats API.
  • Unused codecs for a track are removed from the local SDP offer in order to reduce the SDP size, once codecs for the track have been negotiated.

API Changes

  • The minimum Android SDK version has been increased from 16 to 21. Please visit our migration guide for more details on how to update your application to 7.0!
  • The ordering of RemoteParticipantObserver.onAudioTrackSubscribed() and RemoteParticipantObserver.onVideoTrackSubscribed() is not strictly guaranteed. In this release the ordering of these callbacks may be different when compared to previous releases.
  • The value of LocalVideoTrackStats.frames_encoded now reflects the total number of frames encoded for a simulcast track.

Bug Fixes

  • Fixed a bug causing the Connect Option enableIceGatheringOnAnyAddressPorts not to have any effect.

Known Issues

  • As of 6.0.0 of the SDK, hardware video encoding doesn't publish all of the three simulcast layers when VP8 simulcast is enabled on Android. This affects Video Content Preferences from working properly for subscribing video participants since the feature requires all three simulcast layers to switch between. Our team is working on a fix for this, but the feature does work when VP8 simulcast is used to publish video from participants using the Javascript or iOS SDKs.
  • Video Content Preferences might prefer larger video than needed when device orientations are mismatched. For example, if a participant in landscape mode publishes video, then the subscribing participant must also be in landscape mode in order for the correctly sized simulcast layers to be selected. The same is true for the portrait orientation.
  • When the publisher is publishing video at 720p with VP8 simulcast enabled and the subscriber varies their hints between 180p, 360p, and 720p, sometimes the subscriber receives larger video than expected.

Size Report

ABI APK Size Impact
x86 5.8MB
x86_64 5.7MB
armeabi-v7a 4.3MB
arm64-v8a 5.4MB
universal 20.6MB
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio's Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.

        
        
        

        Thank you for your feedback!

        Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        thanks-feedback-gif