Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page > Hide TOC

New IIDC Digitizer Functions

Many IEEE-1394-based digital cameras and webcams now support Instrumentation and Industrial Control (IIDC) features that can be accessed by software.

QuickTime 6.4 includes six new functions to communicate with video digitizers that have a subtype of vdSubtypeIIDC ('iidc'):

Several data structures that support these functions are new in QuickTime 6.4:

IIDC Atoms

The information about IIDC features that a camera might support is contained in a hierarchy of new big-endian QuickTime atom types:

Details of the new atom types are given in the next sections. To determine the number of features in a particular atom container, you can use this code:

SInt16 featureCount = QTCountChildrenOfType(container,
    kParentAtomIsContainer, vdIIDCAtomTypeFeature);

IIDC Feature Atoms

The top-level atoms in the IIDC atom hierarchy are Feature atoms, of type vdIIDCAtomTypeFeature, the value of which is 'feat'. Zero or more of these atoms are present in the atom container that is passed to the VDIIDCSetFeatures function and returned by the VDIIDCGetFeatures, VDIIDCGetDefaultFeatures, and VDIIDCGetFeaturesForSpecifier functions.

Each Feature atom is a container for atoms that convey information about one IIDC feature of the camera being interrogated or set.

Each Feature atom has two child atoms. The first is a Type and ID atom, of type vdIIDCAtomTypeFeatureAtomTypeAndID, described in the next section. The Type and ID atom identifies a second child atom of the vdIIDCAtomTypeFeature atom, which contains the feature’s current or default setting information. These atoms are described in “IIDC Settings Atoms”below.

Type And ID Atoms

Each feature atom contains one Type and ID atom, of type vdIIDCAtomTypeFeatureAtomTypeAndID ('t&id'). Its ID is 1. The contents of this atom is a VDIIDCFeatureAtomTypeAndID data structure. This structure contains the type of the feature, a type that identifies the general category of the feature (image control, color control, mechanics, or triggering), the feature’s human-readable name, and the type and ID of the Settings atom that contains the feature’s settings.

IIDC Settings Atoms

Most IIDC features can be expressed by VDIIDCFeatureSettings data structures. Three, however, require VDIIDCTriggerSettings, VDIIDCFocusPointSettings, or VDIIDCLightingHintSettings data structures, as shown in the following listing:

vdIIDCFeatureHue                = 'hue ', // Uses VDIIDCFeatureSettings
vdIIDCFeatureSaturation         = 'satu', // Uses VDIIDCFeatureSettings
vdIIDCFeatureSharpness          = 'shrp', // Uses VDIIDCFeatureSettings
vdIIDCFeatureBrightness         = 'brit', // Uses VDIIDCFeatureSettings
vdIIDCFeatureGain               = 'gain', // Uses VDIIDCFeatureSettings
vdIIDCFeatureIris               = 'iris', // Uses VDIIDCFeatureSettings
vdIIDCFeatureShutter            = 'shtr', // Uses VDIIDCFeatureSettings
vdIIDCFeatureExposure           = 'xpsr', // Uses VDIIDCFeatureSettings
vdIIDCFeatureWhiteBalanceU      = 'whbu', // Uses VDIIDCFeatureSettings
vdIIDCFeatureWhiteBalanceV      = 'whbv', // Uses VDIIDCFeatureSettings
vdIIDCFeatureGamma              = 'gmma', // Uses VDIIDCFeatureSettings
vdIIDCFeatureTemperature        = 'temp', // Uses VDIIDCFeatureSettings
vdIIDCFeatureZoom               = 'zoom', // Uses VDIIDCFeatureSettings
vdIIDCFeatureFocus              = 'fcus', // Uses VDIIDCFeatureSettings
vdIIDCFeaturePan                = 'pan ', // Uses VDIIDCFeatureSettings
vdIIDCFeatureTilt               = 'tilt', // Uses VDIIDCFeatureSettings
vdIIDCFeatureOpticalFilter      = 'opft', // Uses VDIIDCFeatureSettings
vdIIDCFeatureTrigger            = 'trgr', // Uses VDIIDCTriggerSettings
vdIIDCFeatureCaptureSize        = 'cpsz', // Undefined settings
vdIIDCFeatureCaptureQuality     = 'cpql', // Undefined settings
vdIIDCFeatureFocusPoint         = 'fpnt', // Uses VDIIDCFocusPointSettings
vdIIDCFeatureEdgeEnhancement    = 'eden'  // Uses VDIIDCFeatureSettings
vdIIDCFeatureLightingHint       = 'lhnt'  // Uses VDIIDCLightingHintSetting

The types and IDs of the Settings atoms that contain these data structures are the following:

// Atom type and ID that contains the VDIIDCFeatureSettings struct
vdIIDCAtomTypeFeatureSettings       = 'fstg',
vdIIDCAtomIDFeatureSettings         = 1
 
// Atom type and ID that contains the VDIIDCTriggerSettings struct
vdIIDCAtomTypeTriggerSettings       = 'tstg',
vdIIDCAtomIDTriggerSettings         = 1
 
// Atom type and ID that contains the VDIIDCFocusPointSettings struct
vdIIDCAtomTypeFocusPointSettings     = 'fpst',
vdIIDCAtomIDFocusPointSettings       = 1
 
// Atom type and ID that contains the VDIIDCLightingHintSetting struct
vdIIDCAtomTypeLightingHintSettings   = 'lhst',
vdIIDCAtomIDLightingHintSettings     = 1

A Typical IIDC Atom Hierarchy

To take a specific example, suppose you called VDIIDCGetFeatures, passing an instance of a video digitizer of subtype vdSubTypeIIDC. You might receive back a QuickTime atom container in which you find the following atoms:

vdIIDCAtomTypeFeature    = 'feat'
 
    vdIIDCAtomTypeFeatureAtomTypeAndID    = 't&id'
    vdIIDCAtomIDFeatureAtomTypeAndID      = 1
        feature     = vdIIDCFeatureShutter            // shutter feature
        atomType    = vdIIDCAtomTypeFeatureSettings
        atomID      = 1
 
    vdIIDCAtomTypeFeatureSettings    = 'fstg'
    vdIIDCAtomIDFeatureSettings      = 1
 
 
vdIIDCAtomTypeFeature    = 'feat'
 
    vdIIDCAtomTypeFeatureAtomTypeAndID    = 't&id'
    vdIIDCAtomIDFeatureAtomTypeAndID      = 1
        feature     = vdIIDCFeatureFocus              // focus feature
        atomType    = vdIIDCAtomTypeFeatureSettings
        atomID      = 1
 
    vdIIDCAtomTypeFeatureSettings    = 'fstg'
    vdIIDCAtomIDFeatureSettings      = 1
 
vdIIDCAtomTypeFeature    = 'feat'
 
    vdIIDCAtomTypeFeatureAtomTypeAndID    = 't&id'
    vdIIDCAtomIDFeatureAtomTypeAndID      = 1
        feature     = vdIIDCFeatureTrigger            // trigger feature
        atomType    = vdIIDCAtomTypeTriggerSettings
        atomID      = 1
 
    vdIIDCAtomTypeTriggerSettings    = 'tstg'
    vdIIDCAtomIDFTriggerSettings     = 1

In this example, the VDIIDCGetFeatures function tells you that the camera served by the video digitizer component passed to it reports on three IIDC functions: shutter, focus, and trigger. Data on the shutter and focus features can be retrieved from VDIIDCFeatureSettings structures in vdIIDCAtomTypeFeatureSettings atoms. Data on the trigger feature can be retrieved from a VDIIDCTriggerSettings structure in a vdIIDCAtomTypeTriggerSettings atom.



< Previous PageNext Page > Hide TOC


Last updated: 2003-09-01




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice