1.3 Overview

This section provides a high-level overview of the operation of the Remote Desktop Protocol: Video Capture Virtual Channel Extension. The purpose of this protocol is to transfer video capture data from a Remote Desktop Protocol (RDP) client to a Remote Desktop Protocol (RDP) server, hereinafter referred to as client and server, respectively. For example, an application running on a server can request to record video capture data. This data will be transferred from the client to the server, allowing a server application to record from a video capture device installed on the client.

The protocol uses multiple dynamic virtual channels. There is one channel for version negotiation and device enumeration and one channel for each redirected video capture device, hereinafter referred to as the device enumeration channel and device channel, respectively.

The protocol is divided into the following logical sequences:

Version Negotiation sequence: The client and the server negotiate the protocol version.

New Device sequence: The client creates a new device channel for every new video capture device available for redirection and notifies the server.

Device Removal sequence: The client notifies the server when a specific video capture device is no longer available for redirection.

Device Initialization sequence: The server uses this sequence to enumerate streams and video formats supported by the video capture device.

Video Capture sequence: The server uses this sequence to receive video data from the video capture device.

Device Control Initialization sequence: The server uses this sequence to enumerate device properties supported by the video capture device.

Device Control sequence: The server uses this sequence to control device properties of the video capture device.