Skip to contentSkip to navigationSkip to topbar
Rate this page:
On this page

7.0 Changelog: Twilio Video Android


(warning)

Warning

This documentation is for reference only. We are no longer onboarding new customers to Programmable Video. Existing customers can continue to use the product until December 5, 2026(link takes you to an external page).

We recommend migrating your application to the API provided by our preferred video partner, Zoom. We've prepared this migration guide(link takes you to an external page) to assist you in minimizing any service disruption.

(warning)

Warning

The Twilio Programmable Video SDKs use Semantic Versioning(link takes you to an external page). 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(link takes you to an external page).

(information)

Info

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.7.0 (Feb 27, 2024)

770-feb-27-2024 page anchor

New Features

new-features page anchor
  • Updated to now use WebRTC-m112.
  • ISAC codec has been removed as a result of its removal from WebRTC-m112

7.6.4 (Sept 21, 2023)

764-sept-21-2023 page anchor
  • Fixed screen share bug where subscriber would see black frames for extended periods of time when publishing end lacked user interaction. [VIDEO-13031]
  • ScreenCapturer capturer now enables developer to specify desired frame rate.

7.6.3 (Jun 9, 2023)

763-jun-9-2023 page anchor
  • When a video sink is removed a black frame is now sent such that the last frame rendered by the sink doesn't linger. [VIDEO-12808]
  • Fixed a bug where tviMirror layout parameter would not be applied to VideoView and VideoTextureView. [VIDEO-12812]
  • Fixed a bug where tviScaleType layout parameter would not be applied to VideoTextureView. [VIDEO-12812]
  • Fixed crash bug in External audio device due to improper JVM stack managment. [VIDEO-12917]

7.6.1 (Mar 27, 2023)

761-mar-27-2023 page anchor
  • Updated to now use WebRTC-m105
  • 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.5.1 (Oct 18, 2022)

751-oct-18-2022 page anchor
  • 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]
  • Fixed bug where sinks registered with local audio tracks when a custom audio device was being used, failed to deliver frames. [VIDEO-11637]
  • 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.
ABIAPK Size Impact
x865.7MB
x86_645.6MB
armeabi-v7a4.3MB
arm64-v8a5.3MB
universal20.2MB

7.4.0 (Sep 29th, 2022)

740-sep-29th-2022 page anchor

  • 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.

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

  • 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

ABIAPK Size Impact
x865.7MB
x86_645.6MB
armeabi-v7a4.3MB
arm64-v8a5.3MB
universal20.2MB

7.3.1 (August 25th, 2022)

731-august-25th-2022 page anchor

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

  • 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)

730-august-24th-2022 page anchor

  • 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]

  • 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)

712-july-6th-2022 page anchor

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

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

  • 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

ABIAPK Size Impact
x865.9MB
x86_645.9MB
armeabi-v7a4.4MB
arm64-v8a5.5MB
universal20.9MB

7.1.1 (May 11th, 2022)

711-may-11th-2022 page anchor
  • Fixed a crash caused by repeatedly switching the camera on/off while toggling the camera flash. [VIDEO-9294]

Size Report

ABIAPK Size Impact
x865.9MB
x86_645.9MB
armeabi-v7a4.4MB
arm64-v8a5.5MB
universal20.9MB

7.1.0 (March 16th, 2022)

710-march-16th-2022 page anchor

  • 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:

KeyValueDescription
tvi.webrtc.DefaultVideoEncoderFactory.enableHWEncodingtrue/falseGlobally 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.enableHWVP8Encodingtrue/falseEnables or disables support for hardware encoding of VP8 content.
tvi.webrtc.DefaultVideoEncoderFactory.enableHWVP9Encodingtrue/falseEnables or disables support for hardware encoding of VP9 content.
tvi.webrtc.DefaultVideoEncoderFactory.enableHWH264Encodingtrue/falseEnables or disables support for hardware encoding of H.264 content.
tvi.webrtc.HardwareVideoEncoderFactory.enableH264HighProfiletrue/falseEnables "High Profile" H.264 support for hardware encoding H.264 content. Has no effect for software encoding.
tvi.webrtc.HardwareVideoEncoderFactory.enableIntelVP8Encodertrue/falseEnables support for Intel's VP8 hardware encoder.
tvi.webrtc.HardwareVideoEncoderFactory.enableH264HuaweiSupporttrue/falseEnables support for Huawei's H.264 encoder.

  • 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

ABIAPK Size Impact
x865.9MB
x86_645.9MB
armeabi-v7a4.4MB
arm64-v8a5.5MB
universal20.9MB

7.0.6 (February 11th, 2022)

706-february-11th-2022 page anchor

  • 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.

  • 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.

  • 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

ABIAPK Size Impact
x865.8MB
x86_645.8MB
armeabi-v7a4.4MB
arm64-v8a5.5MB
universal20.8MB

7.0.3 (December 6th, 2021)

703-december-6th-2021 page anchor

  • Added error code definition PARTICIPANT_SESSION_LENGTH_EXCEEDED_EXCEPTION .

  • 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.

  • 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

ABIAPK Size Impact
x865.8MB
x86_645.8MB
armeabi-v7a4.3MB
arm64-v8a5.5MB
universal20.7MB

7.0.2 (November 3rd, 2021)

702-november-3rd-2021 page anchor

  • 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).

  • Improved reconnection time after network connectivity disruptions.

  • 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

ABIAPK Size Impact
x865.8MB
x86_645.8MB
armeabi-v7a4.3MB
arm64-v8a5.5MB
universal20.7MB

7.0.1 (October 15th, 2021)

701-october-15th-2021 page anchor

  • 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(link takes you to an external page)

  • 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

ABIAPK Size Impact
x865.8MB
x86_645.7MB
armeabi-v7a4.3MB
arm64-v8a5.4MB
universal20.6MB

7.0.0 (September 16th, 2021)

700-september-16th-2021 page anchor

  • 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.

  • 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.

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

  • 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

ABIAPK Size Impact
x865.8MB
x86_645.7MB
armeabi-v7a4.3MB
arm64-v8a5.4MB
universal20.6MB

Rate this page: