# Migrating From 6.x to 7.x

This guide provides an introduction to the 7.x Programmable Video Android SDK and a set of guidelines to migrate an application from 6.x to 7.x.

## New features

* The minimum supported Android SDK version has been increased from 16 to 21
* 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

## Android SDK version

The minimum supported Android SDK version has been increased from 16 to 21.

### Update an application

In your build.gradle files, ensure all the SDK version values, `minSdkVersion`, `targetSskVersion` and `compileSdkVersion`, are set to 21 or higher, e.g.:

```bash
android {
    compileSdkVersion 30
    ...
    defaultConfig {
       ...
        minSdkVersion 21
        targetSdkVersion 30

```

## RemoteParticipantObserver callbacks

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.

## LocalVideoTrackStats

The value of `LocalVideoTrackStats.frames_encoded` reflects the total number of frames encoded for a simulcast track.

## WebRTC version

The public API WebRTC classes defined in libwebrtc.jar included with the Video Android SDK have been updated from Chromium WebRTC 83 to WebRTC 88.

Since the public WebRTC 88 API for Android is backward compatible with the WebRTC 83 API, it's not expected that your application would require code changes related to WebRTC classes when upgrading from Android Video SDK 6.x to 7.0.
