#include <IOKit/video/IOVideoTypes.h>
IOKit/video/IOVideoTypes.h
System Includes
structIOVideoDeviceNotification
@struct IOVideoDeviceNotification
@abstract This structure contains an individual notification from the driver.
@field mObjectID
The ID of the object to which the notification pertains.
@field mNotificationID
A UInt32 that identifies the kind of the notification.
@field mNotificationArgument1
A UInt32 whose usage depends on the the specific kind of notification.
@field mNotificationArgument2
A UInt32 whose usage depends on the the specific kind of notification.
@field mNotificationArgument3
A UInt64 whose usage depends on the the specific kind of notification.
@field mNotificationArgument4
A UInt64 whose usage depends on the the specific kind of notification.
| UInt32 | mObjectID | |
| UInt32 | mNotificationID | |
| UInt32 | mNotificationArgument1 | |
| UInt32 | mNotificationArgument2 | |
| UInt64 | mNotificationArgument3 | |
| UInt64 | mNotificationArgument4 |
typedefIOVideoDeviceNotification
typedef struct IOVideoDeviceNotification IOVideoDeviceNotification
structIOVideoDeviceNotificationMessage
@struct IOVideoDeviceNotificationMessage
@abstract This structure describes a notification from the driver. Note that the message can contain multiple notifications.
@field mMessageHeader
The mach message header.
@field mClientData
The client data that was registered with the mach port.
@field mNumberNotifications
The number of IOVideoDeviceNotifications in the mNotifications array.
@field mNotifications
A variable length array of IOVideoDeviceNotification structures that carry the actual notification data. The number of elements in this array is denoted by
mNumberNotifications, but can also be inferred from the message size in the mach message header.
| mach_msg_header_t | mMessageHeader | |
| UInt32 | mClientData | |
| UInt32 | mNumberNotifications | |
| IOVideoDeviceNotification[1] | mNotifications |
typedefIOVideoDeviceNotificationMessage
typedef struct IOVideoDeviceNotificationMessage IOVideoDeviceNotificationMessage
macroCalculateIOVideoDeviceNotificationMessageSize
#define CalculateIOVideoDeviceNotificationMessageSize(numberNotifications) (sizeof(IOVideoDeviceNotificationMessage) + (((numberNotifications) - 1) * sizeof(IOVideoDeviceNotification)))
enum(anonymous)
@enum Notification IDs
@discussion @abstract The four char codes used to identify the kind of the notification.
@discussion All device-level notifications will have an object ID of 0.
@constant kIOVideoDeviceNotificationID_ControlValueChanged
Indicates that the value of the control with the given ID has changed. The first argument is the new value.
@constant kIOVideoDeviceNotificationID_ControlRangeChanged
Indicates that the range of the control with the given ID has changed.
| kIOVideoDeviceNotificationID_ControlValueChanged | 1668702572 | |
| kIOVideoDeviceNotificationID_ControlRangeChanged | 1668443751 |
structIOVideoStreamDescription
| UInt32 | mVideoCodecType | |
| UInt32 | mVideoCodecFlags | |
| UInt32 | mWidth | |
| UInt32 | mHeight | |
| UInt32 | mReserved1 | |
| UInt32 | mReserved2 |
typedefIOVideoStreamDescription
typedef struct IOVideoStreamDescription IOVideoStreamDescription
enum(anonymous)
@enum Control Constants
@discussion @abstract Various constants related to controls.
@constant kIOVideoControlScopeGlobal
The scope for controls that apply to the device as a whole.
@constant kIOVideoControlScopeInput
The scope for controls that apply to the input section of the device.
@constant kIOVideoControlScopeOutput
The scope for controls that apply to the output section of the device.
@constant kIOVideoControlScopePlayThrough
The scope for controls that apply to the play through section of the device.
@constant kIOVideoControlElementMaster
The element value for controls that apply to the master element or to the entire scope. Note that other elements are numbered consecutively starting from 1.
| kIOVideoControlScopeGlobal | 1735159650 | |
| kIOVideoControlScopeInput | 1768845428 | |
| kIOVideoControlScopeOutput | 1869968496 | |
| kIOVideoControlScopePlayThrough | 1886679669 | |
| kIOVideoControlElementMaster | 0 |
enum(anonymous)
@enum Control Base Class IDs
@discussion @abstract The class IDs that identify the various control base classes.
@constant kIOVideoControlBaseClassIDBoolean
The class ID that identifies the boolean control class which is a subclass of the base control class. Boolean controls manipulate on/off switches in the hardware.
@constant kIOVideoControlBaseClassIDSelector
The class ID that identifies the selector control class which is a subclass of the base control class. Selector controls manipulate controls that have
multiple, but discreet values.
@constant kIOVideoControlBaseClassIDFeature
The class ID that identifies the feature control class which is a subclass of the base control class. Feature controls manipulate various features that might be
present on a device, such as hue, saturation, zoom, etc.
| kIOVideoControlBaseClassIDBoolean | 1953458028 | |
| kIOVideoControlBaseClassIDSelector | 1936483188 | |
| kIOVideoControlBaseClassIDFeature | 1718903668 |
enum(anonymous)
@enum IOVideoBooleanControl Subclass IDs
@discussion @abstract The four char codes that identify the various standard subclasses of IOVideoBooleanControl.
@constant kIOVideoBooleanControlClassIDJack
A IOVideoBooleanControl where a true value means something is plugged into that element.
@constant kIOVideoBooleanControlClassIDDirection
A IOVideoBooleanControl where a true value means the element is operating in input mode, and false means the element is operating in output mode.
This control is only needed for devices which can do input and output, but not at the same time.
| kIOVideoBooleanControlClassIDJack | 1784767339 | |
| kIOVideoBooleanControlClassIDDirection | 1684632165 |
enum(anonymous)
@enum IOVideoSelectorControl Subclass IDs
@discussion @abstract The four char codes that identify the various standard subclasses of IOVideoSelectorControl.
@constant kIOVideoSelectorControlClassIDDataSource
A IOVideoSelectorControl that identifies where the data for the element is coming from.
@constant kIOVideoSelectorControlClassIDDataDestination
A IOVideoSelectorControl that identifies where the data for the element is going.
| kIOVideoSelectorControlClassIDDataSource | 1685287523 | |
| kIOVideoSelectorControlClassIDDataDestination | 1684370292 |
enum(anonymous)
@enum IOVideoFeatureControl Subclass IDs
@discussion @abstract The four char codes that identify the various standard subclasses of IOVideoFeatureControl.
@constant kIOVideoFeatureControlClassIDBlackLevel
A IOVideoFeatureControl that controls the black level offset. The units for the control's absolute value are percetage (%).
@constant kIOVideoFeatureControlClassIDWhiteLevel
A IOVideoFeatureControl that controls the white level offset. The units for the control's absolute value are percentage (%).
@constant kIOVideoFeatureControlClassIDHue
A IOVideoFeatureControl that controls the hue offset. Positive values mean counterclockwise, negative values means clockwise on a vector scope. The units for the
control's absolute value are degrees (°).
@constant kIOVideoFeatureControlClassIDSaturation
A IOVideoFeatureControl that controls color intensity. For example, at high saturation levels, red appears to be red; at low saturation, red appears as pink. The
unit for the control's absolute value is a percentage (%).
@constant kIOVideoFeatureControlClassIDContrast
A IOVideoFeatureControl that controls a the distance bewtween the whitest whites and blackest blacks. The units for the control's absolute value are percentage (%).
@constant kIOVideoFeatureControlClassIDSharpness
A IOVideoFeatureControl that controls the sharpness of the picture. The units for the control's absolute value are undefined.
@constant kIOVideoFeatureControlClassIDBrightness
A IOVideoFeatureControl that controls the intensity of the video level. The units for the control's absolute value are percetage (%).
@constant kIOVideoFeatureControlClassIDGain
A IOVideoFeatureControl that controls the amplification of the signal. The units for the control's absolute value are decibels (dB).
@constant kIOVideoFeatureControlClassIDIris
A IOVideoFeatureControl that controls a mechanical lens iris. The units for the control's absolute value are an F number (F).
@constant kIOVideoFeatureControlClassIDShutter
A IOVideoFeatureControl that controls the integration time of the incoming light. The units for the control's absolute value are seconds (s).
@constant kIOVideoFeatureControlClassIDExposure
A IOVideoFeatureControl that controls a the total amount of light accumulated. The units for the control's absolute value are exposure value (EV).
@constant kIOVideoFeatureControlClassIDWhiteBalanceU
A IOVideoFeatureControl that controls the adjustment of the white color of the picture. The units for the control's absolute value are kelvin (K).
@constant kIOVideoFeatureControlClassIDWhiteBalanceV
A IOVideoFeatureControl that controls a adjustment of the white color of the picture. The units for the control's absolute value are kelvin (K).
@constant kIOVideoFeatureControlClassIDGamma
A IOVideoFeatureControl that defines the function between incoming light level and output picture level. The units for the control's absolute value are undefined.
@constant kIOVideoFeatureControlClassIDTemperature
A IOVideoFeatureControl that controls the temperature inside of the device and/or controlling temperature. The units for the control's absolute value are undefined.
@constant kIOVideoFeatureControlClassIDZoom
A IOVideoFeatureControl that controls the zoom. The units for the control's absolute value are power where 1 is the wide end.
@constant kIOVideoFeatureControlClassIDFocus
A IOVideoFeatureControl that controls a focus mechanism. The units for the control's absolute value are meters (m).
@constant kIOVideoFeatureControlClassIDPan
A IOVideoFeatureControl that controls a panning mechanism. Positive values mean clockwise, negative values means counterclockwise. The units for the control's
absolute value are degrees (°).
@constant kIOVideoFeatureControlClassIDTilt
A IOVideoFeatureControl that controls a tilt mechanism. Positive values mean upwards, negative values means downwards. The units for the control's absolute value are
degrees (°).
@constant kIOVideoFeatureControlClassIDOpticalFilter
A IOVideoFeatureControl that controls changing the optical filter of camera lens function. The units for the control's absolute value are are undefined.
@constant kIOVideoFeatureControlClassIDBacklightCompensation
A IOVideoFeatureControl that controls the amount of backlight compensation to apply. A low number indicates the least amount of backlight compensation. The units for the
control's absolute value are are undefined.
@constant kIOVideoFeatureControlClassIDPowerLineFrequency
A IOVideoFeatureControl to specify the power line frequency to properly implement anti-flicker processing. The units for the contorl's absolute value are hertz (Hz).
| kIOVideoFeatureControlClassIDBlackLevel | 1651207286 | |
| kIOVideoFeatureControlClassIDWhiteLevel | 2003332214 | |
| kIOVideoFeatureControlClassIDHue | 1752524064 | |
| kIOVideoFeatureControlClassIDSaturation | 1935766645 | |
| kIOVideoFeatureControlClassIDContrast | 1668576116 | |
| kIOVideoFeatureControlClassIDSharpness | 1936224880 | |
| kIOVideoFeatureControlClassIDBrightness | 1651665268 | |
| kIOVideoFeatureControlClassIDGain | 1734437230 | |
| kIOVideoFeatureControlClassIDIris | 1769105779 | |
| kIOVideoFeatureControlClassIDShutter | 1936225394 | |
| kIOVideoFeatureControlClassIDExposure | 2020635506 | |
| kIOVideoFeatureControlClassIDWhiteBalanceU | 2003329653 | |
| kIOVideoFeatureControlClassIDWhiteBalanceV | 2003329654 | |
| kIOVideoFeatureControlClassIDGamma | 1735224673 | |
| kIOVideoFeatureControlClassIDTemperature | 1952804208 | |
| kIOVideoFeatureControlClassIDZoom | 2054123373 | |
| kIOVideoFeatureControlClassIDFocus | 1717794163 | |
| kIOVideoFeatureControlClassIDPan | 1885433376 | |
| kIOVideoFeatureControlClassIDTilt | 1953066100 | |
| kIOVideoFeatureControlClassIDOpticalFilter | 1869637236 | |
| kIOVideoFeatureControlClassIDBacklightCompensation | 1651207284 | |
| kIOVideoFeatureControlClassIDPowerLineFrequency | 1886873201 |
macrokIOVideoDeviceKey_DeviceName
IOVideoDevice IORegistry Keys
#define kIOVideoDeviceKey_DeviceName "device name"
macrokIOVideoDeviceKey_DeviceManufacturer
#define kIOVideoDeviceKey_DeviceManufacturer "device manufacturer"
macrokIOVideoDeviceKey_DeviceUID
#define kIOVideoDeviceKey_DeviceUID "device UID"
macrokIOVideoDeviceKey_IOEngineIsRunning
#define kIOVideoDeviceKey_IOEngineIsRunning "is running"
macrokIOVideoDeviceKey_InputLatency
#define kIOVideoDeviceKey_InputLatency "input latency"
macrokIOVideoDeviceKey_OutputLatency
#define kIOVideoDeviceKey_OutputLatency "output latency"
macrokIOVideoDeviceKey_InputStreamList
#define kIOVideoDeviceKey_InputStreamList "input streams"
macrokIOVideoDeviceKey_OutputStreamList
#define kIOVideoDeviceKey_OutputStreamList "output streams"
macrokIOVideoDeviceKey_ControlList
#define kIOVideoDeviceKey_ControlList "controls"
macrokIOVideoStreamKey_StreamID
IOVideoDevice Stream Dictionary Keys
#define kIOVideoStreamKey_StreamID "stream ID"
macrokIOVideoStreamKey_StartingDeviceChannelNumber
#define kIOVideoStreamKey_StartingDeviceChannelNumber "starting channel"
macrokIOVideoStreamKey_BufferMappingOptions
#define kIOVideoStreamKey_BufferMappingOptions "buffer mapping options"
macrokIOVideoStreamKey_CurrentFormat
#define kIOVideoStreamKey_CurrentFormat "current format"
macrokIOVideoStreamKey_AvailableFormats
#define kIOVideoStreamKey_AvailableFormats "available formats"
macrokIOVideoControlKey_ControlID
IOVideoDevice Control Dictionary Keys
#define kIOVideoControlKey_ControlID "control ID"
macrokIOVideoControlKey_BaseClass
#define kIOVideoControlKey_BaseClass "base class"
macrokIOVideoControlKey_Class
#define kIOVideoControlKey_Class "class"
macrokIOVideoControlKey_Scope
#define kIOVideoControlKey_Scope "scope"
macrokIOVideoControlKey_Element
#define kIOVideoControlKey_Element "element"
macrokIOVideoControlKey_IsReadOnly
#define kIOVideoControlKey_IsReadOnly "read only"
macrokIOVideoControlKey_Variant
#define kIOVideoControlKey_Variant "variant"
macrokIOVideoControlKey_Name
#define kIOVideoControlKey_Name "name"
macrokIOVideoControlKey_Value
#define kIOVideoControlKey_Value "value"
macrokIOVideoSelectorControlKey_SelectorMap
IOVideoDevice Selector Control Dictionary Keys
#define kIOVideoSelectorControlKey_SelectorMap "selectors"
macrokIOVideoSelectorControlSelectorMapItemKey_Value
IOVideoDevice Selector Control Selector Map Item Dictionary Keys
#define kIOVideoSelectorControlSelectorMapItemKey_Value "value"
macrokIOVideoSelectorControlSelectorMapItemKey_Name
#define kIOVideoSelectorControlSelectorMapItemKey_Name "name"
macrokIOVideoSelectorControlSelectorMapItemKey_Kind
#define kIOVideoSelectorControlSelectorMapItemKey_Kind "kind"
macrokIOVideoStreamFormatKey_CodecType
Stream Format Dictionary Keys
#define kIOVideoStreamFormatKey_CodecType "codec type"
macrokIOVideoStreamFormatKey_CodecFlags
#define kIOVideoStreamFormatKey_CodecFlags "codec flags"
macrokIOVideoStreamFormatKey_Width
#define kIOVideoStreamFormatKey_Width "width"
macrokIOVideoStreamFormatKey_Height
#define kIOVideoStreamFormatKey_Height "height"