# What&#39;s New

## API level 2.1

Released May 2017

### Key changes

- Added [Direct Upload](https://developers.google.com/streetview/open-spherical-camera/guides/direct-upload) to allow cameras to upload directly to servers.
  - Includes new commands [`switchWifi`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/switchwifi) and [`uploadFile`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/uploadfile).
  - Added `photoStitchingSupport`, `photoStitching`, `videoStitchingSupport`, `videoStitching`, `videoGPSSupport`, `videoGPS` options to [OSC options](https://developers.google.com/streetview/open-spherical-camera/reference/options).
  - Added `cameraId` field to [`/osc/info`](https://developers.google.com/streetview/open-spherical-camera/guides/osc/info#output) output.
- Replaced [360 video XMP](https://developers.google.com/streetview/open-spherical-camera/reference/header/video-xmp) specification with [a new open standard](https://github.com/google/spatial-media/blob/master/docs/spherical-video-v2-rfc.md).
- Added recommendation for specifying camera [make/model](https://developers.google.com/streetview/open-spherical-camera/reference/header/video-xmp) in 360 video MP4s.

## API level 2

Released July 2016

### Key changes

- Deprecated `sessionId` and deprecated/modified related commands. API level 2 is designed for one client connection and camera manufacturers should make sure that only one client at any time is connected (for example via limiting only one wifi connection).
  - Deprecated commands [`startSession`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/startsession) / [`updateSession`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/updatesession) / [`closeSession`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/closesession).
  - Deprecated `sessionId` from input of commands [`takePicture`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/takepicture) / [`getOptions`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/getoptions) / [`setOptions`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/setoptions).
- Deprecated commands [`getImage`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/getimage) / [`getMetadata`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/getmetadata).
  - The absolute URL of a file is used to download directly from the HTTP server of the camera.
- Added/modified commands and [options](https://developers.google.com/streetview/open-spherical-camera/reference/options) for video capture, interval image capture and live preview.
  - Added commands [`startCapture`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/startcapture) / [`stopCapture`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/stopcapture) / [`getLivePreview`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/getlivepreview) / [`processPicture`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/processpicture) / [`reset`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/reset).
  - Renamed [`listImages`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/listimages) to [`listFiles`](https://developers.google.com/streetview/open-spherical-camera/reference/camera/listfiles) and modified inputs/outputs to handle video types as well as image types.
  - Added options `previewFormat`, `previewFormatSupport`, `captureInterval`, `captureIntervalSupport`, `captureNumber`, `captureNumberSupport`, `remainingVideoSeconds`, `pollingDelay`, `delayProcessing`, `delayProcessingSupport`, and `clientVersion`.
  - Modified options `captureModeSupport`, `isoSupport`, `shutterSpeedSupport`, `fileFormatSupport`, `hdr`, `hdrSupport`, `exposureBracket`, and `exposureBracketSupport`.
- Added [360 video XMP](https://developers.google.com/streetview/open-spherical-camera/reference/header/video-xmp) specification.
- Added `apiLevel` field to [`/osc/info`](https://developers.google.com/streetview/open-spherical-camera/guides/osc/info#output) output.
  - apiLevel: Field was added in API level 2. It is considered to be API level 1 by default when this field is missing. It is developers' responsibility to retrieve this information and implement differently based on the value.

## Backward compatibility

- Camera manufacturers: If you have been supporting API level 1, it is highly recommended that you support both API level 1 and API level 2 as an intermediate solution for a few months before the final update and provide a firmware update for cameras running API level 1, otherwise, clients supporting only API level 1 won't work with your cameras.
- App developers: Be aware these changes affect your previously-published app and it is your responsibility to make corresponding changes to either handle both versions and reminds camera owners to update their firmware.