# Preview

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

Before joining a session, you can give users a preview of their video and audio by starting the camera and microphone locally. Access local video and audio through `IZoomVideoSDKVideoHelper` and `IZoomVideoSDKTestAudioDeviceHelper`.

## Preview camera

To preview a camera on Linux, you will need a video UI control (such as QT, GTK, SDL, OpenCV or another) and stream YUV420 raw data frames into the UI control as a video.

Configure the camera with the following code.

```cpp
//Get list of Cameras
IZoomVideoSDK* video_sdk_obj = CreateZoomVideoSDKObj();
IVideoSDKVector<IZoomVideoSDKCameraDevice*> *cameras = video_sdk_obj->getVideoHelper()->getCameraList();

//Get ID of selected camera
const zchar_t* deviceID = cameras->GetItem(0)->getDeviceId();

//Start Preview, and handle the callback in a ZoomVideoSDKRawDataPipeDelegate instance
ZoomVideoSDKRawDataPipeDelegate* dataDelegate = new ZoomVideoSDKRawDataPipeDelegate();
video_sdk_obj->getVideoHelper()->startVideoPreview(dataDelegate, deviceID);

//Stop Preview
IZoomVideoSDKVideoHelper->stopVideoPrevew();
```

Handle the callback with the following code.

```cpp
//Handle callback
void ZoomVideoSDKRawDataPipeDelegate::onRawDataFrameReceived(YUVRawDataI420 *data){

//assign the data (yuv420 frame) here to your video UI control (QT, GTK, SDL, OpenCV) to preview your camera stream.
}
```

## Preview audio unsupported

The Video SDK for Linux does not support microphone and speaker preview.
