#include <IOKit/video/IOVideoTypes.h>

IOKit/video/IOVideoTypes.h Kernel.framework

System Includes
33 macros · 6 enums · 3 structs · 3 typedefs

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.
size 32, align 8
UInt32mObjectID
UInt32mNotificationID
UInt32mNotificationArgument1
UInt32mNotificationArgument2
UInt64mNotificationArgument3
UInt64mNotificationArgument4

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.
size 72, align 8
mach_msg_header_tmMessageHeader
UInt32mClientData
UInt32mNumberNotifications
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.
underlying type unsigned int
kIOVideoDeviceNotificationID_ControlValueChanged1668702572
kIOVideoDeviceNotificationID_ControlRangeChanged1668443751

structIOVideoStreamDescription

size 24, align 4
UInt32mVideoCodecType
UInt32mVideoCodecFlags
UInt32mWidth
UInt32mHeight
UInt32mReserved1
UInt32mReserved2

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.
underlying type unsigned int
kIOVideoControlScopeGlobal1735159650
kIOVideoControlScopeInput1768845428
kIOVideoControlScopeOutput1869968496
kIOVideoControlScopePlayThrough1886679669
kIOVideoControlElementMaster0

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.
underlying type unsigned int
kIOVideoControlBaseClassIDBoolean1953458028
kIOVideoControlBaseClassIDSelector1936483188
kIOVideoControlBaseClassIDFeature1718903668

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.
underlying type unsigned int
kIOVideoBooleanControlClassIDJack1784767339
kIOVideoBooleanControlClassIDDirection1684632165

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.
underlying type unsigned int
kIOVideoSelectorControlClassIDDataSource1685287523
kIOVideoSelectorControlClassIDDataDestination1684370292

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).
underlying type unsigned int
kIOVideoFeatureControlClassIDBlackLevel1651207286
kIOVideoFeatureControlClassIDWhiteLevel2003332214
kIOVideoFeatureControlClassIDHue1752524064
kIOVideoFeatureControlClassIDSaturation1935766645
kIOVideoFeatureControlClassIDContrast1668576116
kIOVideoFeatureControlClassIDSharpness1936224880
kIOVideoFeatureControlClassIDBrightness1651665268
kIOVideoFeatureControlClassIDGain1734437230
kIOVideoFeatureControlClassIDIris1769105779
kIOVideoFeatureControlClassIDShutter1936225394
kIOVideoFeatureControlClassIDExposure2020635506
kIOVideoFeatureControlClassIDWhiteBalanceU2003329653
kIOVideoFeatureControlClassIDWhiteBalanceV2003329654
kIOVideoFeatureControlClassIDGamma1735224673
kIOVideoFeatureControlClassIDTemperature1952804208
kIOVideoFeatureControlClassIDZoom2054123373
kIOVideoFeatureControlClassIDFocus1717794163
kIOVideoFeatureControlClassIDPan1885433376
kIOVideoFeatureControlClassIDTilt1953066100
kIOVideoFeatureControlClassIDOpticalFilter1869637236
kIOVideoFeatureControlClassIDBacklightCompensation1651207284
kIOVideoFeatureControlClassIDPowerLineFrequency1886873201

macrokIOVideoDevice_ClassName

IOVideo Class Names
#define kIOVideoDevice_ClassName "IOVideoDevice"

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"