# Core features The Video SDK for Windows lets you programmatically control user video during a session: check video status, start video, stop video, and render a user's video. For switching cameras, mirroring, and rotating, see [Camera controls](/docs/video-sdk/windows/video/camera-controls/). You control video with `IZoomVideoSDKVideoHelper`, obtained from `getVideoHelper`. ## Check whether video is on To check whether a user has their video on, read `isOn` from the user's `ZoomVideoSDKVideoStatus`. ```cpp // Get the video status for the user. ZoomVideoSDKVideoStatus videoStatus = pUserInfo->getVideoStatus(); // Check whether the user's video is on. bool isVideoOn = videoStatus.isOn; ``` ## Start video To start the local user's video, call `startVideo` on the `IZoomVideoSDKVideoHelper`. ```cpp // Get the IZoomVideoSDKVideoHelper to perform video actions. IZoomVideoSDKVideoHelper* pVideoHelper = m_pVideoSDK->getVideoHelper(); if (pVideoHelper) { // Start the local user's video. pVideoHelper->startVideo(); } ``` ## Stop video To stop displaying the local user's video, call `stopVideo`. ```cpp // Get the IZoomVideoSDKVideoHelper to perform video actions. IZoomVideoSDKVideoHelper* pVideoHelper = m_pVideoSDK->getVideoHelper(); if (pVideoHelper) { // Stop the local user's video. pVideoHelper->stopVideo(); } ``` ## Render a user's video On Windows, you render a user's video by subscribing to their raw video data pipe and drawing the YUV frames you receive. For the full subscription and rendering flow, see [Receive raw data](/docs/video-sdk/windows/raw-data/receive-raw-data/).