Menu

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Changelog: Twilio Video Android

Deprecation Notice - Versions 1.0.0-beta10 and earlier
Please note that older versions of the Programmable Video Android SDK prior to 1.0.0-beta11 are deprecated and will stop working on September 13, 2018. Please make sure you’re using the latest version of the library in your apps, and make sure your customers update their apps by that date. For more information please review the knowledge base.
Compatibility Notice - All versions
Please note that all 1.x versions are incompatible with Firefox 63+ in a Peer-to-Peer Room. For more information please review the Github Issue.

The Twilio Programmable Video SDKs use Semantic Versioning.

1.3.15 (June 11th, 2018)

Improvements

  • Updated Android Gradle Plugin version to 3.1.0 and Gradle version to 4.4
  • Initial Connect message now includes Client version metadata.

Bug Fixes

  • Fixed a bug where the SDK hangs if DNS resolution fails and the user does not initiate disconnect.
  • The signaling Client no longer logs access tokens.
  • Fixed a rare internal SDK teardown crash.
  • Resolved an issue where the signaling Client could send too many UPDATE messages, or use too many CPU cycles and disconnect from a Room.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72 e VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.14 (March 26th, 2018)

Improvements

  • Improved internal logic for retrieving ice servers and resolving outbound DNS.

Bug Fixes

  • Fixed a bug where onDisconnected was not getting invoked due to a race condition between a network handover and a user initiated disconnect call.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72 e VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.13 (March 5, 2018)

Bug Fixes

  • Fixed crash when calling Room#disconnect() twice. #255

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72 e VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.12 (February 23, 2018)

Bug Fixes

  • ICE URIs using the turns scheme are now supported. The SDK will now use turns by default if turn is enabled for your Room.
  • ICE URIs using the stuns scheme are now supported.
  • Resolved a condition where ICE candidates might not be applied in Peer-to-Peer Rooms.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72 e VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.11 (February 7th, 2018)

Improvements

  • Updated targetSdkVersion to 27
  • Updated buildToolsVersion to 27.0.3
  • Updated Android Gradle plugin to to 3.0.1

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72 e VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.10 (January 24th, 2018)

Improvements

  • Refactor internal reference counting of internal MediaFactory.

Bug Fixes

  • Don't publish Ice Candidate stats unless an active pair is present.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72 e VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.9 (December 1st, 2017)

Improvements

  • Added version to javadoc title, header, and bottom.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.8 (November 28th, 2017)

Improvements

  • Updated javadoc to include note about VideoView#setVideoScaleType. Scale type will only be applied to dimensions defined as WRAP_CONTENT or a custom value. Setting a width or height to MATCH_PARENT results in the video being scaled to fill the maximum value of the dimension.
  • Add warning log when calling setVideoScaleType when width or height is set to MATCH_PARENT

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.7 (November 10th, 2017)

Improvements

  • Twilio CDN no longer hosts the Video Android aar artifacts or Javadocs
Accessing Artifacts

If you are downloading Video Android SDK artifacts from the Twilio CDN then there is one options available moving forward.

Viewing Javadocs

All Javadocs back to 1.0.0-preview1 are now hosted on Github Pages with the following URL scheme. https://twilio.github.io/twilio-video-android/docs/{version}

Bug Fixes

  • Fixed NPE when calling takePicture on CameraCapturer.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.6 (October 31st, 2017)

Improvements

  • Include javadoc and sources jar with artifacts published to Bintray.
  • Updated to Build Tools 26.0.2
  • Support annotations and Relinker no longer exposed at compile time

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.5 (October 24th, 2017)

Improvements

  • Improved threading contract.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.4 (October 18th, 2017)

Bug Fixes

  • Fixed issue that caused room names with certain UTF-8 characters to be improperly encoded. #179

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.3 (October 9th, 2017)

Improvements

  • Internal library update

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • Room names with certain UTF-8 characters are not encoded properly #179
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.2 (September 21, 2017)

Improvements

  • Upgraded to Android Oreo from Nougat
  • Fixed crash disconnecting from Room that has not connected #116

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.1 (September 14, 2017)

Improvements

  • Fixed case on some devices where CameraCapturer incorrectly reported a failure to close the camera.
  • Improved echo cancellation on Nexus 6P and Nexus 6 by enabling hardware echo canceller and disabling OpenSL ES.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.3.0 (August 17th, 2017)

Features

  • Added static method CameraCapturer.isSourceAvailable that validates if a camera source is available on the device. This method is used when creating a CameraCapturer instance and when calling CameraCapturer#switchCamera to validate that a source can be used for capturing frames.

Improvements

  • Added javadoc to Participant.Listener, ScreenCapturer.Listener, VideoCapturer.Listener, and VideoRenderer.Listener.

Bug Fixes

  • Fixed a bug where multiple participants adding/removing tracks at the same time was not handled properly.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.2.2 (July 27, 2017)

Improvements

  • Calling Participant#setListener with null is no longer allowed.

Bug Fixes

  • Removed reference to LocalMedia in CameraCapturer javadoc.
  • Fixed race condition that could result in track events not being raised.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.2.1 (July 14, 2017)

Improvements

  • Improved safety of asynchronous operations in native core.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.2.0 (July 12, 2017)

Features

  • The SDK now uses TLS 1.2 in favor of TLS 1.0 to connect to Twilio’s servers.

Improvements

  • Deprecated LocalParticipant#release. This method is not meant to be called and is now a no-op until it is removed in 2.0.0-preview1 release. #132
  • Added more checks and logging to CameraCapturer to help identify cases when the camera service cannot be reached. #126
  • Changed getSupportedFormats for CameraCapturer, ScreenCapturer, and Camera2Capturer to be synchronized.

Bug Fixes

  • Fixed timing issue where camera was not always available after a video track was released. #126

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.1.1 (July 10, 2017)

Bug Fixes

  • Fixed bug in VideoConstraints logic where valid VideoCapturer video formats were ignored due to very strict checking of aspect ratios in WebRTC.
  • Fixed bug in Logger.java where setting certain LogLevel's did not print error logs .
  • Fixed bug in LocalVideoTrack where FPS check was incorrectly marking a constraint as incompatible. #127

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • LocalParticipant release method is public #132
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.1.0 (June 27, 2017)

Improvements

  • Moved signaling network traffic to port 443.
  • Added Camera2Capturer. Camera2Capturer uses android.hardware.camera2 to implement a VideoCapturer. Camera2Capturer does not yet implement takePicture and the ability to modify camera parameters once Camera2Capturer is running.

Create LocalVideoTrack with Camera2Capturer

// Check if device supports Camera2Capturer 
if (Camera2Capturer.isSupported(context)) {
    // Use CameraManager.getCameraIdList() for a list of all available camera IDs
    String cameraId = "0";
    Camera2Capturer.Listener camera2Listener = new Camera2Capturer.Listener() {
            @Override
            public void onFirstFrameAvailable() {}

            @Override
            public void onCameraSwitched(String newCameraId) {}

            @Override
            public void onError(Camera2Capturer.Exception exception) {}
    }
    Camera2Capturer camera2Capturer = new Camera2Capturer(context, cameraId, camera2Listener);
    LocalVideoTrack = LocalVideoTrack.create(context, true, camera2Capturer);
}
  • This release adds Insights statistics collection, which reports RTP quality metrics back to Twilio. In the future, these statistics will be included in customer-facing reports visible in the Twilio Console. Insights collection is enabled by default, if you wish to disable it reference the following snippet.
    ConnectOptions connectOptions = new ConnectOptions.Builder(token)
            .enableInsights(false)
            .build();
    

Bug Fixes

  • Improved signaling connection retry logic. In the case of an error, the SDK will continue to retry with a backoff timer when errors are encountered.
  • Fixed a bug in network handoff scenarios where the SDK was not handling the race condition if network lost or network changed event is received when a network changed event is being processed.
  • Fixed bug where audio and video tracks were not available after onParticipantDisconnected was invoked #125

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.2 (June 6, 2017)

Bug Fixes

  • Backported fix for Chromium bug 679306.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.1 (May 16, 2017)

Improvements

  • Improved internal native Room operations.
  • Improved ScreenCapturer performance by enabling capturing to a texture.
  • Added new error code for case when participant gets disconnected because of duplicate participant joined the room.

Bug Fixes

  • Fixed issue adding audio/video tracks quickly while connected to a room #90

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0 (April 26, 2017)

We've promoted 1.0.0-beta17 to 1.0.0 as our first General Availability release.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • Disconnecting from a Room that has not connected sometimes results in a crash #116
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta17 (April 26, 2017)

Improvements

  • Replaced LocalMedia class with Track factories for LocalVideoTrack and LocalAudioTrack

Working with LocalVideoTrack and LocalAudioTrack before 1.0.0-beta17

// Create LocalMedia
LocalMedia localMedia = LocalMedia.create(context);
LocalVideoTrack localVideoTrack = localMedia.addVideoTrack(true, videoCapturer);
LocalAudioTrack localAudioTrack = localMedia.addAudioTrack(true);

...

// Destroy LocalMedia to free native memory resources
localMedia.release();

Working with LocalVideoTrack and LocalAudioTrack now

// Create Tracks
LocalVideoTrack localVideoTrack = LocalVideoTrack.create(context, true, videoCapturer);
LocalAudioTrack localAudioTrack = LocalAudioTrack.create(context, true);

...

// Destroy Tracks to free native memory resources
localVideoTrack.release();
localAudioTrack.release();
  • The ConnectOptions.Builder now takes a List<LocalAudioTrack> and List<LocalVideoTrack> instead of LocalMedia

Providing LocalVideoTrack and LocalAudioTrack before 1.0.0-beta17

LocalMedia localMedia = LocalMedia.create(context);
LocalVideoTrack localVideoTrack = localMedia.addVideoTrack(true, videoCapturer);
LocalAudioTrack localAudioTrack = localMedia.addAudioTrack(true);

ConnectOptions connectOptions = new ConnectOptions.Builder(accessToken)
    .roomName(roomName)
    .localMedia(localMedia)
    .build();
VideoClient.connect(context, connectOptions, roomListener);

Providing LocalVideoTrack and LocalAudioTrack now

List<LocalVideoTrack> localAudioTracks =
            new ArrayList<LocalVideoTrack>(){{ add(localVideoTrack); }};
List<LocalAudioTrack> localVideoTracks =
            new ArrayList<LocalAudioTrack>(){{ add(localAudioTrack); }};

ConnectOptions connectOptions = new ConnectOptions.Builder(accessToken)
    .roomName(roomName)
    .audioTracks(localAudioTracks)
    .videoTracks(localVideoTracks)
    .build();
VideoClient.connect(context, connectOptions, roomListener);
  • Methods getVideoTracks() and getAudioTracks() moved from LocalMedia and Media to LocalParticipant and Participant
  • Removed Media from Participant and migrated Media.Listener to Participant.Listener. AudioTrack and VideoTrack events are raised with the corresponding Participant instance. This allows you to create tracks while connected to a Room without immediately adding them to the connected Room
  • Improved hardware accelerated decoding through the use of surface textures.
  • Added textureId and samplingMatrix fields to I420Frame so implementations of VideoRenderer can extract YUV data from frame represented as texture.
  • Exposed org.webrtc.YuvConverter to facilitate converting a texture to an in memory YUV buffer.
  • Invoke ScreenCapturer.Listener callbacks on the thread ScreenCapturer is created on.
  • Fixed an issue where the ConnectivityReceiver was causing a reconnect when connecting to a Room for the first time occasionally leading to a 53001 error onConnectFailure response.
  • Room#getParticipants returns List<Participant> instead of Map<String, Participant>.

Bug Fixes

  • On Nexus 9 device, intermittent high decoding times results in delayed video. #95
  • Unsatisfied link errors for org.webrtc.voiceengine.WebRtcAudioManager and org.webrtc.voiceengine.WebRtcAudioTrack construction. #102
  • VideoTrack isEnabled() returning wrong state #104

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta16 (April 10, 2017)

Improvements

  • Added enum VideoFrame.RotationAngle to ensure VideoFrame objects are constructed with valid orientation values.
  • Updated CameraCapturer to be powered by latest WebRTC camera capturer.
  • Updated CameraCapturer to allow scheduling a picture to be taken while the capturer is not running.

Bug Fixes

  • Reverted decoding from surface textures. This revert should fix problems for custom VideoRenderers receiving null YUV data for VideoTracks #93

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • On Nexus 9 device, intermittent high decoding times results in delayed video. #95
  • Unsatisfied link errors for org.webrtc.voiceengine.WebRtcAudioManager and org.webrtc.voiceengine.WebRtcAudioTrack construction. #102
  • VideoTrack isEnabled() returning wrong state #104
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta15 (March 30, 2017)

Improvements

  • Upgraded to WebRTC 57.
  • Renaming VideoClient class to Video.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta14 (March 28, 2017)

Improvements

  • Simplified internal data structures that populate StatsReport.

Bug Fixes

  • Fixed teardown crash that occurred in component that fetches ice servers.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta13 (March 22, 2017)

Improvements

  • Decreased Room connection time by establishing the signaling connection earlier in the process.
  • Removed the final case where we resolve localhost. This also improves connection time to your first Room.

Bug Fixes

  • Fixed a regression in 1.0.0-beta12 where a track added event was not raised when the trackId was reused. #83
  • Fixed crash in Room#disconnect when releasing Participant media
  • Resolved memory corruption issues which could occur in multi-party scenarios.
  • Fixed a crash which could occur in signaling stack

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta12 (March 14, 2017)

Improvements

  • Made VideoClient an abstract class.
  • We've begun formalizing our error codes. They are divided up into Signaling (530xx), Room (531xx), Participant (532xx), Track (533xx), Media (534xx), Configuration (535xx), and Access Token (201xx) subranges. Instances of TwilioException will now carry a numeric code belonging to one of these ranges, an error message, and an optional error explanation.
  • Implemented a policy for applying VideoConstraints. Adding a LocalVideoTrack with no constraints, results in LocalMedia applying a set of default constraints based on the closest supported VideoFormat to 640x480 at 30 FPS. Adding a LocalVideoTrack with custom constraints, results in LocalMedia checking if the constraints are compatible with the given VideoCapturer before applying. If the constraints are not compatible LocalMedia applies default constraints. #68

Bug Fixes

  • Fixed echo cancellation bug for Nexus 6P #65.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Participant disconnect event can take up to 120 seconds to occur #80 #73
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta11 (March 6, 2017)

Improvements

  • Moved connect from instance method to static method on VideoClient class. Calling the new static connect method requires a Context in addition to ConnectOptions and a Room.Listener . VideoClient is no longer an object that can be instantiated and an instance is no longer required to connect to a Room.
  • Moved access token parameter from VideoClient constructor to ConnectOptions.Builder constructor.

Connecting to a Room before 1.0.0-beta11

// Create VideoClient
VideoClient videoClient = new VideoClient(context, accessToken);
ConnectOptions connectOptions = new ConnectOptions.Builder()
    .roomName(roomName)
    .localMedia(localMedia)
    .build();
videoClient.connect(connectOptions, roomListener);

Connecting to a Room with static connect

ConnectOptions connectOptions = new ConnectOptions.Builder(accessToken)
    .roomName(roomName)
    .localMedia(localMedia)
    .build();
VideoClient.connect(context, connectOptions, roomListener);

Bug Fixes

  • Fixed crash when disconnecting from a Room on HTC 10.
  • Fixed crash caused by removing a track before calling Room#disconnect .
  • Use a certificate bundle to validate SSL certificates on the signaling connection.
  • Improved compatibility with Group Rooms and track added and removed events.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Missing media when adding audio/video tracks quickly while connected to room #90
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340

1.0.0-beta10 (February 24, 2017)

Improvements

  • Network handoff, and subsequent connection renegotiation is now supported for IPv4 networks.

Bug Fixes

  • Fixed a regression introduced in 1.0.0-beta8 where tokens with purely numeric identities caused a crash #64 #60
  • Participant identities now support UTF-8

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported for IPv6 networks #72
  • VP8 is the only supported codec #71
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta9 (February 15, 2017)

Bug Fixes

  • Fixed immediate disconnect when using custom ICE servers

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec #71
  • Tokens with purely numeric identities results in a crash
  • Participant identities with unicode characters are not supported
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta8 (February 8, 2017)

Features

  • Added an isRecording method to Room, and callbacks to RoomListener. Please note that recording is only available in our Group Rooms developer preview. isRecording will always return false in a P2P Room.

Bug Fixes

  • Fixed camera freeze when using CameraCapturer#updateCameraParameters API #54
  • Fixed crash when caused by calling getStats() immediately after disconnecting from Room
  • Fixed heap corruption on HTC 10
  • Fixed memory leaks parsing signaling messages
  • Attempt ICE restarts when a PeerConnection fails

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec #71
  • Tokens with purely numeric identities results in a crash
  • Participant identities with unicode characters are not supported
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta7 (February 3, 2017)

Improvements

  • Clarified documentation for LocalMedia#addAudioTrack enabled parameter

Bug Fixes

  • Fixed crash loading library on some devices. #53

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec #71
  • Disconnecting from a Room immediately after calling getStats() results in a crash.
  • Participant identities with unicode characters are not supported
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta6 (January 18, 2017)

Bug Fixes

  • Fixed black frames being rendered after device is rotated.
  • Fixed crash in EglBaseProvider.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec #71
  • Disconnecting from a Room immediately after calling getStats() results in a crash.
  • Native library fails to load on some devices. #53
  • Participant identities with unicode characters are not supported
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta5 (December 14, 2016)

New features

  • Upgraded to WebRTC 55.
  • Upgraded to NDK r12b.
  • Improved quickstart README.
  • Added a getStats() method to Room that builds a StatsReport with metrics for all the audio and video tracks being shared to a Room.
  • Improved hardware accelerated decoding through the use of surface textures.
  • Standardized error messages and codes for a Room.
  • Changed VideoException to TwilioException.

Bug Fixes

  • Fixed picture orientation bug for takePicture.
  • PictureListener callbacks are invoked on the calling thread of takePicture.
  • Reduced previously high decoding times for Nexus 9.

Known issues

  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec #71
  • Disconnecting from a Room immediately after calling getStats() results in a crash.
  • Participant identities with unicode characters are not supported
  • Missing YUV data when adding a custom VideoRenderer to VideoTrack #93
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta4 (November 23, 2016)

New features

  • Added new API to CameraCapturer for taking a picture.
  • Quickstart has been updated to demonstrate the use of APK splits to reduce APK size.

Known issues

  • IPv6 is not fully supported.
  • Network handoff, and subsequent connection renegotiation is not supported.
  • VP8 is the only supported codec #71
  • On Nexus 9 device, intermittent high decoding times results in delayed video.
  • Participant identities with unicode characters are not supported
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta3 (November 2, 2016)

New features

  • Added new API to CameraCapturer for providing custom Camera.Parameters.
  • Added isScreencast() method to VideoCapturer. This indicates if a capturer is providing screen content and affects any scaling attempts made while media is flowing.

Bug fixes

  • Fixed crashes when RECORD_AUDIO and CAMERA permission are not granted. LocalMedia will now return null when attempting to add a LocalAudioTrack without RECORD_AUDIO permission. CameraCapturer will log an error and provide an error code via a new CameraCapturer.Listener when trying to capture video without CAMERA permission.

Known issues

  • IPv6 is not fully supported
  • Network handoff, and subsequent connection renegotiation is not supported
  • VP8 is the only supported codec #71
  • Participant identities with unicode characters are not supported
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta2 (October 26, 2016)

New features

  • Removed dependency on AccessManager in VideoClient constructor. Only a context and access token are required to create a VideoClient.
  • Added an updateToken method to VideoClient that allows for an access token to be updated in case it has expired

Bug fixes

  • Fixed crashes on x86 and x86_64 devices

Known issues

  • IPv6 is not fully supported
  • Network handoff, and subsequent connection renegotiation is not supported
  • VP8 is the only supported codec #71
  • Participant identities with unicode characters are not supported
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-beta1 (October 11, 2016)

New features

  • Added preliminary support for network handover while connected to a Room

Bug fixes

  • Provide a release() method on the I420Frame object allowing developers to free native memory once they are done using the frame when implementing their own custom renderers

Known issues

  • IPv6 is not fully supported
  • Network handoff, and subsequent connection renegotiation is not supported
  • VP8 is the only supported codec #71
  • Using x86 or x86_64 devices results in a crash
  • Participant identities with unicode characters are not supported
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-preview2 (September 23, 2016)

New features

  • Added support for AudioOptions
  • Upgraded to Android Nougat from Marshmallow

Known issues

  • IPv6 is not fully supported
  • Network handoff, and subsequent connection renegotiation is not supported
  • Resource leak when implementing custom VideoRenderer
  • VP8 is the only supported codec #71
  • Using x86 or x86_64 devices results in a crash
  • Participant identities with unicode characters are not supported
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377

1.0.0-preview1 (September 19, 2016)

New features

  • Adopting Room based communications model. The invite model has been completely removed

Bug fixes

  • First developer preview release

Known issues

  • IPv6 is not fully supported
  • Network handoff, and subsequent connection renegotiation is not supported
  • Resource leak when implementing custom VideoRenderer
  • VP8 is the only supported codec #71
  • Using x86 or x86_64 devices results in a crash
  • Participant identities with unicode characters are not supported
  • The SDK is not side-by-side compatible with other WebRTC based libraries #340
  • In a P2P room, participants will not receive any media or data tracks published by participants using Firefox 63 or later. #377
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 browsing the Twilio tag on Stack Overflow.