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

< Previous PageNext Page > Hide TOC

IIDC Video Unit

The video unit is identified in the Configuration ROM as a Unit Directory with Unit Specification ID 0x00A02D and Unit Software Version 0x000102. This unit is based on the IIDC 1.30 specification, with Apple-specific modifications. Developers can determine that the Apple-specific modifications are supported by finding the following two keys in the Root Directory: The Vendor ID key (value 0x000A27 or 0x080007) and the Model ID key (value 0x000008), when both present, uniquely identify the iSight camera.

iSight supports IIDC Video Format 0 (VGA), and (in Format 0) Mode 1, 2, and 3, as reported by the IIDC V_MODE_INQ_0 register.

Apple has added an additional vendor-specific Format (CIF) and Modes 8 through D (hex) for CIF-sized video used by Internet video chat software. The additional Modes have the parameters shown in “Table 1-1.”

Table 1-1  Apple-added modes with parameters specified

Packet payload bytes, by frame rate

Image size (pixels)

YUV Format

Bits per Pixel

Mode

3.75 FPS

7.5 FPS

15 FPS

30 FPS

Wide

High

8

12

24

48

96

128

96

4:1:1

12

9

16

32

64

128

128

96

4:2:2

16

A

33

66

132

264

176

144

4:1:1

12

B

44

88

176

352

176

144

4:2:2

16

C

132

264

528

1056

352

288

4:1:1

12

D

176

352

704

1408

352

288

4:2:2

16

Modes 8 and 9 send 5760 video packets per second, and Modes A through D send 4320 video packets per second. Image data is packed in the same way as in Format 0 Modes 1, 2, and 3. As explained in the“Introduction,” iSight will never send a video packet in the same isochronous cycle as it sends an audio packet.

Apple has added registers where the CIF formats may be detected, using the same bit conventions as defined by IIDC, as shown in “Table 1-2.”

Table 1-2  Apple-added registers

Offset

Name

Description

0xF00

CIF_V_MODE_INQ_0

CIF modes supported

0xF10

CIF_V_RATE_INQ_0_8

Valid frame rates for CIF mode 8

0xF14

CIF_V_RATE_INQ_0_9

Valid frame rates for CIF mode 9

0xF18

CIF_V_RATE_INQ_0_A

Valid frame rates for CIF mode A

0xF1C

CIF_V_RATE_INQ_0_B

Valid frame rates for CIF mode B

0xF20

CIF_V_RATE_INQ_0_C

Valid frame rates for CIF mode C

0xF24

CIF_V_RATE_INQ_0_D

Valid frame rates for CIF mode D

0xF90

CIF_Cur_V_Mode

Set or detect CIF video modes

The CIF Modes supported, as indicated by CIF_V_MODE_INQ_0, have the following bit assignments within CIF_V_MODE_INQ_0 (“Table 1-3”).

Table 1-3  Bit assignments

InqBitMode_8

0x00000800

128 x 96 4:1:1

12 bits

InqBitMode_9

0x00000400

128 x 96 4:2:2

16 bits

InqBitMode_A

0x00000200

176 x 144 4:1:1

12 bits

InqBitMode_B

0x00000100

176 x 144 4:2:2

16 bits

InqBitMode_C

0x00000080

352 x 288 4:1:1

12 bits

InqBitMode_D

0x00000040

352 x 288 4:2:2

16 bits

If a CIF Mode has been selected, it will be indicated in CIF_Cur_V_Mode as shown in “Table 1-4”:

Table 1-4  CIF Mode selections indicated in CIF_Cur_V_Mode

Mode_8_128__96_411

0x00000010

128 x 96 4:1:1 12 bits

Mode_9_128__96_422

0x00000020

128 x 96 4:2:2 16 bits

Mode_A_176_144_411

0x00000030

176 x 144 4:1:1 12 bits

Mode_B_176_144_422

0x00000040

176 x 144 4:2:2 16 bits

Mode_C_352_288_411

0x00000050

352 x 288 4:1:1 12 bits

Mode_D_352_288_422

0x00000060

352 x 288 4:2:2 16 bits

To select a CIF video mode, store the desired CIF mode in CIF_Cur_V_Mode and do not change Cur_V_Mode. To select a VGA video mode, store the desired VGA mode in Cur_V_Mode, and do not change CIF_Cur_V_Mode. When a CIF mode has been selected, reading Cur_V_Mode will return 0xE0000000.

Apple has added additional registers for vendor-unique features, as shown in “Table 1-5.”

Table 1-5  Added Apple registers

Offset

Name

Description

0xD00-0xDFC

Defaults

Read-only copy of IIDC defaults in register offsets 0x800-0x8FC

0xE00

Default Edge Enhancement

Read-only copy of 0xFBC default

0xFBC

Edge Enhancement Inquiry

Works like IIDC brightness inquiry (0x500)

0xFC0

Edge Enhancement

Works like IIDC brightness register (0x800)

At power up, the iSight sets its exposure settings to known good values. If a driver on the host changes the settings, they may no longer have suitable values. For best results, the driver on the host should not change the settings unless requested by the user. At any time, the driver can revert to known good values by reading the default registers and restoring the settings to the recommended values.



< Previous PageNext Page > Hide TOC


Last updated: 2004-10-05




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