A descriptor is a set of camera features.  When multiple descriptors are defined in the camera, each with different camera feature settings, the camera features will change between frames.  This is useful in cases where a known and repetitive sequence of camera setting is required to capture images.

Descriptors are applied to the video stream in a cyclic fashion in the order in which they were created. When the stream is started, the first frame delivered from the camera uses the settings of the first descriptor, the second frame uses the second descriptor and so on 

A descriptor is applicable only to the camera for which it was created.

When a descriptor is in focus, its settings can be changed using SetFeature, or read using GetFeature. The descriptor will remain in focus until one of the following occurs:

All descriptors can be brought in focus simultaneously by calling UpdateDescriptor with the descriptor handle set to 0. Otherwise, only one descriptor may be in focus at a time. Note that if all descriptors are in focus at once (rather than just a single descriptor), calling GetFeature will generate an error.

To determine which descriptor was applied to a frame of image data, the host application should monitor the frames since the stream was started.  In addition, descriptor info is appended to the frame data that is returned from the camera. GetNextFrame and the callback functions provide this descriptor information so that the camera settings that were used to capture the frame data can be recorded.