Appendix B. OCTANE Personal Video Nodes and Their Controls

This appendix describes the nodes available to the OCTANE Personal Video option. It lists the controls associated with each node, as well as special considerations involved in node usage.

In the tables that summarize the control set for a node, the columns are as follows:

Default 

The default value for the control. If the value is Dynamic, the default value depends on the value of other controls. For example, frame size is dependent on device timing. The default value is described in the verbose description of the control.

If the value is Persistent, the default value is initially obtained from the defaults file, but is never reset. Many controls available through the video control panel vcp (for example, the default video input) fall into this category. For this value, changes made by vlSetControl() are persistent across paths, even if the node goes into an unused state.

If the default is a specific value or is Dynamic, the control is reinitialized to the default value when the node is no longer in use, that is, when all application paths have been destroyed and the only applications remaining are supervisory. The vcp is the only supervisory application.

Some controls have a default value of None. This value means that the control must be set before a transfer can be started on a path containing the node.

Type 

The member of the VLControlValue union used to set or get the value of the control.

Access is indicated before the control table for the node; it is one or more of the following:

The nodes are described in the following sections:


Note: In the tables that summarize controls for a node, VL device-independent controls (VL_) are listed first, in alphabetical order, followed by VL device-dependent controls (VL_EVO_). For information on camera controls, see “Camera Controls” in Chapter 3.


VL_DEVICE

The device node (video source node) provides controls that affect the operation of the OCTANE Personal Video device as a whole. These controls include global parameters such as timing, as well as default information such as the default source or drain.

For device nodes:

  • type is VL_DEVICE

  • kind is 0

  • number is 0

Table B-1 lists device node controls. For VL_DEFAULT_DRAIN and VL_DEFAULT_SOURCE, access is GST; for all other controls, access is GS.

Table B-1. Device Node Controls

Control

Default

Type

Use

VL_DEFAULT_DRAIN

Persistent

intVal

The VL_DEFAULT_DRAIN control determines the drain node the Video Library selects when a node is acquired with vlGetNode(VL_DRAIN, VL_VIDEO, VL_ANY). The value of the control is a video drain node number, as reported by vlGetDeviceList().

Once a path is set up, the node number is fixed for the lifetime of the path. Consequently, changing this control does not change paths previously set up using a default drain node. Paths can register for the VLDefaultDrain event to be notified when this control's value is changed.

VL_DEFAULT_SOURCE

Persistent

intVal

The VL_DEFAULT_SOURCE control determines the source node the Video Library selects when a node is acquired with vlGetNode(VL_SRC, VL_VIDEO, VL_ANY). The value of the control is a video source node number, as reported by vlGetDeviceList().

Once a path is set up, the node number is fixed for the lifetime of the path. Consequently, changing this control does not change paths previously set up using a default source node. Paths can register for the VLDefaultSource event to be notified when this control's value is changed using vlSelectEvents().

VL_SYNC

Persistent

intVal

The OCTANE Personal Video device can derive timing from an external source or use an internal free-running clock. If VL_SYNC is set to VL_SYNC_INTERNAL, the internal timing source is used. When VL_SYNC is set to VL_SYNC_GENLOCK, timing is derived from an external clock selected by the VL_SYNC_SOURCE control.

VL_SYNC_SOURCE

Persistent

intVal

When the VL_SYNC control is set to VL_SYNC_GENLOCK this control selects the source of synchronization for the OCTANE Personal Video device. Parameters are

GEN_PORT: genlock input on the board
GEN_DVIN: serial digital input
GEN_AVIN: composite input
GEN_YCIN: Y/C input
GEN_KSYNC: Internal Video Sync signal

VL_TIMING

Persistent

intVal

Selects the device timing for the OCTANE Personal Video device and affects the timing for the screen source node, the memory source nodes, and the video drain node. The device supports the following modes:

VL_TIMING_525_SQ_PIX: NTSC, 525-line square pixel timing
VL_TIMING_525_CCIR601: CCIR 601, 525-line nonsquare pixel timing
VL_TIMING_625_SQ_PIX: PAL, 625-line square pixel timing
VL_TIMING_625_CCIR601: CCIR 601, 625-line nonsquare pixel timing


VL_MEM

This discussion divides the VL_MEM nodes into their manifestations as source and drain.

VL_MEM Source

The OCTANE Personal Video option supports two memory source nodes, which provide real-time paths from main memory to the OCTANE Personal Video option. For the memory source node:

  • type for both memory source nodes is VL_SRC

  • kind for both memory source nodes is VL_MEM

  • number is VL_EVO_NODE_NUMBER_MEM_1 and VL_EVO_NODE_NUMBER_MEM_2

Table B-2 lists memory source node controls. For all these controls, access is GS.

Table B-2. Memory Source Node Controls

Control

Default

Type

Use

VL_ASPECT

1/1

fractVal

Affects the horizontal scale factor. The effective scale factor is VL_ZOOM * VL_ASPECT.

VL_CAP_TYPE

VL_CAPTURE
_INTERLEAVED

intVal

Specifies the type of video units—fields or frames—that the application obtains from the ring buffer. Valid capture types are: VL_CAPTURE_NONINTERLEAVED
VL_CAPTURE_INTERLEAVED
VL_CAPTURE_EVEN_FIELDS
VL_CAPTURE_ODD_FIELDS
VL_CAPTURE_FIELDS

See

“VL_CAP_TYPE and VL_RATE” in Chapter 3 for information on capture types.

VL_COLORSPACE

VL_COLORSPACE
_CCIR601

intVal

Specifies color space of video data in memory:
VL_COLORSPACE_RGB
VL_COLORSPACE_CCIR601
VL_COLORSPACE_RP175
VL_COLORSPACE_YUV

VL_FORMAT

VL_FORMAT_DIGITAL
_COMPONENT_SERIAL

intVal

Specifies the type of video format to be produced:
VL_FORMAT_DIGITAL_COMPONENT_SERIAL
VL_FORMAT_DIGITAL_COMPONENT_RGB_SERIAL
VL_FORMAT_SMPTE_YUV
VL_FORMAT_RGB

See

“VL_FORMAT” in Chapter 3.

VL_PACKING

VL_PACKING_YVYU
_422_8

intVal

Specifies the bit order in which the video components are stored in memory. See “VL_PACKING” in Chapter 3 for the specifications of each packing.

VL_OFFSET

(0,0)

xyVal

Specifies the upper left corner of a video region to be output. The coordinates are offsets of the upper left corner of the active video and take precedence over the size. Therefore, in order to accommodate the given offset, the size may be changed. A VLControlChanged event is generated to inform interested parties of any change in size.

VL_RATE

Dynamic; depends on timing and capture type

fractVal

Specifies the rate at which the hardware extracts video units (fields or frames, depending on the capture type) from the ring buffer. The video unit is repeated, or black is output, to achieve the video output rate of 60 fields per second (NTSC) or 50 fields per second (PAL). The memory source nodes can consume video units from system memory at any rate up to the video standard rate.

For VL_CAPTURE_NONINTERLEAVED and VL_CAPTURE FIELDS, valid ranges are as follows:

NTSC: 1 through 60 units per second (must be multiple of fields per frame for noninterleaved)

PAL: 1 through 50 units per second (must be multiple of fields per frame for noninterleaved)

For VL_CAPTURE_INTERLEAVED, VL_CAPTURE_EVEN_FIELDS, or VL_CAPTURE_ODD_FIELDS, valid ranges are 1 through 30 units per second for NTSC and 1 through 25 units per second for PAL.

VL_SIZE

Dynamic; depends on timing and capture type

xyVal

Specifies the width (pixels) and height (lines) of the video data contained within each ring buffer entry. These values, along with VL_PACKING, determine the size in bytes of each ring buffer entry and thus the transfer size. The width must be a multiple of four pixels. The length must be a minimum of one line for field capture types and two lines for frames.

The specified size is constrained by the maximum allowable (as dictated by the device timing) and by the current offset position (VL_OFFSET). If the size is too large, it is reduced. The offset is not changed. This control is applied before VL_ZOOM. It is recommended that VL_OFFSET be set before VL_SIZE.

VL_TIMING

Dynamic; from device node

intVal

Retrieves the current video timing value for the path. See “VL_SCREEN” and “VL_VIDEO” in this appendix for more details. This control is read-only.

VL_ZOOM

1.0

fractVal

Specifies the amount of scaling to be applied to the video before it is transferred to memory. See “VL_ZOOM” in Chapter 3.

VL_FIELD
_DOMINANCE

VL_F1_IS_DOMINANT

intVal

Sets the field dominance mode, which determines the order in which the fields are read from memory. This control applies only to the frame-oriented capture types (VL_CAPTURE_INTERLEAVED and VL_CAPTURE_NONINTERLEAVED).

For VL_CAPTURE_INTERLEAVED, values are as follows:

VL_F1_IS_DOMINANT: For video timings VL_TIMING_525_CCIR601 and VL_TIMING_525_SQ_PIX, F1 (also known as odd) dominance dictates that data for the F1 field resides in memory after that for F2. For VL_TIMING_625_CCIR601 and VL_TIMING_625_SQ_PIX, the data for F1 resides in memory before that of F2.

VL_F2_IS_DOMINANT: For VL_TIMING_525_CCIR601 and VL_TIMING_525_SQ_PIX, F2 (also known as even timings), dominance dictates that data for the F1 field resides in memory before that for F2. For VL_TIMING_625_CCIR601 and VL_TIMING_625_SQ_PIX, the data for F1 resides in memory after that of F2.

The meaning of before and after depends on the capture type. For interleaved frames, before indicates that the data that compose the first line of the designated field begins at the first byte of the buffer. In this format, the lines of F1 and F2 are interleaved within the one ring buffer; thus the second line of the buffer belongs to the other field, and so forth.

For noninterleaved frames, before indicates that the dominant field is in a buffer preceding the buffer(s) containing nondominant fields.

For VL_CAPTURE_NONINTERLEAVED, values are as follows:

VL_F1_IS_DOMINANT: The F1 field is in the first buffer of the pair, and the F2 field in the second.

VL_F2_IS_DOMINANT: The F2 field is in the first buffer of the pair, the F1 field in the second.

VL_EVO_BUFFER
_QUANTUM

1

intVal

The granularity, or quantum, of data transfer required by the application. The video data is padded at the end so that the size of a field/frame is a multiple of VL_EVO_BUFFER_QUANTUM. This control is intended for applications that do I/O directly from the ring buffer, and may consequently require the frame or field size to be a multiple of the device block size. Direct I/O, for example, usually requires that 512 bytes of data be transferred at a time.

VL_EVO_CSC
_ALPHA
_CORRECTION

FALSE

boolVal

When VL_MGV_CSC_CONST_HUE is enabled, this control saves the constant hue correction factor (TRUE) or retains alpha input data (FALSE). See “Constant Hue” in Chapter 3.

VL_EVO_CSC
_COEF

Multiplier operates in pass-through mode

extendedVal

Specifies the matrix multiplier coefficients. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC
_CONST_HUE

TRUE

boolVal

Enables or disables constant-hue algorithm. See “Constant Hue” in Chapter 3.

VL_EVO_CSC_LUT _IN_PAGE

VL_EVO_CSC_LUT _ALPHA_PAGE

0

0

intVal

Selects the active page for the input LUT. Valid page numbers are 0 through 3.

Selects the active page for the alpha LUT; valid page numbers are 0 through 3. See

“Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC_LUT _IN_YG

VL_EVO_CSC_LUT _IN_UB

VL_EVO_CSC_LUT _IN_VR

VL_EVO_CSC_LUT _ALPHA

Pass-through (1:1 mapping)

extendedVal

Specifies the contents of the input or alpha lookup tables. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC_LUT _OUT_YG

VL_EVO_CSC_LUT _OUT_UB

VL_EVO_CSC_LUT _OUT_VR

Pass-through (1:1 mapping)

extendedVal

Specifies the contents of the output lookup tables. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_DMA
_ERROR_RESTART

VL_EVO_DMA_RESTART_ ON

intVal

If enabled (VL_EVO_DMA_RESTART_ON), a video transfer continues when an error is encountered (the error is reported). Otherwise (VL_EVO_DMA_RESTART_OFF), the video transfer fails. This control covers three types of errors:

The reference video timing is not clean, resulting in short/long lines, fields, or both. These errors are with respect to the programmed size and offset.

The system GIO bus bandwidth was insufficient to transfer video from system memory at video rates.

The video clock was interrupted.

VL_EVO_DMA
_VOUT_BLANK

VL_EVO_DMA_VO_BLK
_YUVA for YUV transfers;
VL_EVO_DMA_VO_BLK
_RGBA for RGB transfers

intVal

Sets output blanking, overriding the default output blanking set by VL_PACKING:

VL_EVO_DMA_VO_BLK_YUVA: Y = A = 16, U = V = 128
VL_EVO_DMA_VO_BLK_RGBA: R = G = B = A = 16

Set this control after VL_PACKING.

VL_EVO_DMA
_VOUT
_STARVATION

VL_EVO_DMA_VO
_STARV_RPT

intVal

Sets the video output policy to use when the memory node underflows the ring buffer (that is, the application has not filled the ring buffer at the rate that the memory node consumes it). An application can choose between three starvation policies. In each case, video output from system memory resumes when the application places the next field/frame in the ring buffer via vlPutValid().

VL_EVO_DMA_VO_STARV_BLK: Outputs black fields or frames. This choice does not involve further access to memory until a new buffer becomes available.

VL_EVO_DMA_VO_STARV_FLD: Causes the last field output to be repeated.

VL_EVO_DMA_VO_STARV_RPT: Repeats the last unit (field or frame) that was transferred from main memory. The repetition is performed by continuing to transfer the same field/frame from memory to video until a new buffer becomes available or the transfer is ended. This results in system bus bandwidth continuing to be consumed.

Caution: In order to maintain compatibility with the behavior of the Galileo Video products, where a framebuffer is incorporated, the default value for this control is VL_EVO_DMA_VO_STARV_RPT. Therefore the ring buffer used in the transfer must contain a minimum of two buffer entries (four for VL_CAPTURE_NONINTERLEAVED), so that one buffer can be repeated by the system while the application is filling the second. If only one buffer is used, then the first buffer output is repeated indefinitely and vlGetNextFree() never returns a free buffer.


VL_MEM Drain

The OCTANE Personal Video option supports two memory drain nodes, which provide real-time paths from the OCTANE Personal Video device to ring buffers. For the memory drain:

  • type for both memory drain nodes is VL_DRN

  • kind for both memory drain nodes is VL_MEM

  • number is VL_EVO_NODE_NUMBER_MEM_1 and VL_EVO_NODE_NUMBER_MEM_2

Table B-3 lists memory drain node controls. For all these controls, access is GS.

Table B-3. Memory Drain Node Controls

Control

Default

Type

Use

VL_ASPECT

1/1

fractVal

Affects the horizontal scale factor. The effective scale factor is VL_ZOOM * VL_ASPECT.

VL_CAP_TYPE

VL_CAPTURE
_INTERLEAVED

intVal

Specifies the type of video units—fields or frames—that the application obtains from the ring buffer by the application. Valid capture types are VL_CAPTURE_NONINTERLEAVED, VL_CAPTURE_INTERLEAVED, VL_CAPTURE_EVEN_FIELDS, VL_CAPTURE_ODD_FIELDS, and VL_CAPTURE_FIELDS. (See “VL_CAP_TYPE and VL_RATE” in Chapter 3 for information on capture types.)

VL_COLORSPACE

VL_COLORSPACE
_CCIR601

intVal

Specifies color space of video data in memory:
VL_COLORSPACE_RGB
VL_COLORSPACE_CCIR601
VL_COLORSPACE_RP175
VL_COLORSPACE_YUV

VL_FORMAT

Dynamic

intVal

Specifies the type of video format to be produced:
VL_FORMAT_DIGITAL_COMPONENT_SERIAL
VL_FORMAT_DIGITAL_COMPONENT_RGB_SERIAL
VL_FORMAT_SMPTE_YUV
VL_FORMAT_RGB

See

“VL_FORMAT” in Chapter 3.

VL_PACKING

VL_PACKING_YVYU
_422_8

intVal

Specifies the bit order in which the video components are stored in memory. See “VL_PACKING” in Chapter 3 for the specifications of each packing.

VL_OFFSET

(0,0)

xyVal

Specifies the upper left corner of a video region to be output. The coordinates are offsets of the upper left corner of the active video and take precedence over the size. Therefore, in order to accommodate the given offset, the size may be changed. A VLControlChanged event is generated to inform interested parties of any change in size.

VL_RATE

Dynamic; depends on timing and capture type

fractVal

Specifies the rate at which video units (fields or frames depending on capture type) are extracted from the ring buffer. The video unit is repeated, or black is output, to achieve the video output rate of 60 fields per second (NTSC) or 50 fields per second (PAL). The memory source nodes can consume video units from system memory at any rate up to the video standard rate.

For VL_CAPTURE_NONINTERLEAVED and VL_CAPTURE FIELDS, valid rates are as follows:

NTSC: 1 through 60 units per second (must be multiple of fields per frame for noninterleaved)

PAL: 1 through 50 units per second (must be multiple of fields per frame for noninterleaved)

For VL_CAPTURE_INTERLEAVED, VL_CAPTURE_EVEN_FIELDS, or VL_CAPTURE_ODD_FIELDS, valid ranges are 1 through 30 units per second for NTSC and 1 through 25 units per second for PAL.

VL_SIZE

Dynamic; depends on timing and capture type

xyVal

Specifies the width (pixels) and height (lines) of the video data contained within each ring buffer entry which—along with VL_PACKING—determines the size in bytes of each ring buffer entry and thus the transfer size. The width must be a multiple of four pixels. The length must be a minimum of one line for field capture types, and two lines for frames.

The specified size is constrained by both the maximum allowable (as dictated by the device timing and capture type) as well as the current offset position (VL_OFFSET). If the size is too large, it is reduced. The offset is not changed. It is recommended that VL_OFFSET be set before VL_SIZE.

VL_TIMING

Dynamic; read only

intVal

Retrieves the current video timing value. See “VL_SCREEN” and “VL_VIDEO” in this appendix for more details. This control is read-only.

VL_ZOOM

1.0

fractVal

Specifies the amount of scaling to be applied to the video before it is transferred to memory. See “VL_ZOOM” in Chapter 3.

VL_EVO_BUFFER
_QUANTUM

1

intVal

The granularity, or quantum, of data transfer required by the application. The video data is padded at the end so that the size of a field/frame is a multiple of VL_EVO_BUFFER_QUANTUM. This control is intended for applications that do I/O directly from the ring buffer, and may consequently require the frame or field size to be a multiple of the device block size. Direct I/O, for example, usually requires that 512 bytes of data be transferred at a time.

VL_EVO_CSC
_ALPHA
_CORRECTION

FALSE

boolVal

When VL_MGV_CSC_CONST_HUE is enabled, this control saves the constant hue correction factor (TRUE) or retains alpha input data (FALSE). See “Constant Hue” in Chapter 3.

VL_EVO_CSC
_COEF

Multiplier operates in pass-through mode

extended Val

Specifies the matrix multiplier coefficients. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC
_CONST_HUE

TRUE

boolVal

Enables or disables constant-hue algorithm. See “Constant Hue” in Chapter 3.

VL_EVO_CSC_LUT _IN_PAGE

VL_EVO_CSC_LUT _ALPHA_PAGE

0

0

intVal

Selects the active page for the input LUT. Valid page numbers are 0 through 3.

Selects the active page for the alpha LUT; valid page numbers are 0 through 3. See

“Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC_LUT _IN_YG

VL_EVO_CSC_LUT _IN_UB

VL_EVO_CSC_LUT _IN_VR

VL_EVO_CSC_LUT _ALPHA

Pass-through (1:1 mapping)

extended Val

Specifies the contents of the input or alpha lookup tables. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC_LUT _OUT_YG

VL_EVO_CSC_LUT _OUT_UB

VL_EVO_CSC_LUT _OUT_VR

Pass-through (1:1 mapping)

extended Val

Specifies the contents of the output lookup tables. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_DMA
_ERROR_RESTART

VL_EVO_DMA
_ERROR_RESTART_OFF

intVal

If enabled (VL_EVO_DMA_RESTART_ON), a video transfer continues when an error is encountered (the error is reported). Otherwise (VL_EVO_DMA_RESTART_OFF), the video transfer fails. This control covers three types of errors:

The reference video timing is not clean, resulting in short/long lines, fields, or both. These errors are with respect to the programmed size and offset.

The system GIO bus bandwidth was insufficient to transfer video from system memory at video rates.

The video clock was interrupted.

VL_FIELD
_DOMINANCE

VL_F1_IS_DOMINANT

intVal

Sets the field dominance mode, determining the order in which the fields are read from memory. This control applies only to the frame-oriented capture types (VL_CAPTURE_INTERLEAVED and VL_CAPTURE_NONINTERLEAVED). See the

discussion of VL_FIELD_DOMINANCE in

Table B-2 earlier in this appendix for more details.

VL_EVO_FILTER
_QUALITY

Persistent

intVal

Determines the quality of the filter employed, ranked by filter quality:

VL_EVO_FILTER_QUALITY_LO: pixel replication

VL_EVO_FILTER_QUALITY_MED: linear interpolation

VL_EVO_FILTER_QUALITY_HI: four-tap filter

The CPU cost of the filters directly relates to their quality: the low-quality filter consumes about 25% of an R10000 195 MHz CPU; the high-quality filter consumes almost the entire CPU.

VL_EVO_FILTER
_TYPE

Persistent

intVal

OCTANE Personal Video supports square and nonsquare video conversion to memory. This control selects how the conversion between the two formats is performed. The values are

VL_EVO_FILTER_TYPE_FREQ (selects the frequency-preserving filter)

VL_EVO_FILTER_TYPE_SPAT (selects the spatially preserving filter)

See

“VL_EVO_FILTER_TYPE” in Chapter 3.


VL_SCREEN

The OCTANE Personal Video option screen source node provides a means of using the graphics screen as a source of video data. This node allows for extracting an area larger than video size, which can be scaled to video size. The screen source node extracts pregamma 8-bit RGB pixel values and inserts the data into a video signal. The RGB pixel values can be

  • captured to memory directly as RGB

  • color-space converted and captured to memory

  • sent to video out as YCbCr

For the screen node:

  • type is VL_SRC

  • kind is VL_SCREEN

Table B-4 lists screen source node controls. For all these controls, access is GST.

Table B-4. Screen Source Node Controls

Control

Default

Type

Use

VL_ASPECT

1/1

fractVal

Affects the horizontal scale factor. The effective scale factor is VL_ZOOM * VL_ASPECT.

VL_FLICKER
_FILTER

TRUE

boolVal

Enables (TRUE) or disables flicker reduction. As the graphics display is progressive scanned, each field of the generated signal corresponds to one frame of the graphics display. Even and odd fields select different scan lines from the graphics frame, which can result in an undesirable flicker in the generated video if proper filtering is not applied.

VL_FREEZE

FALSE

boolVal

Freezes (TRUE) the image sent by the screen source node. If this control is set, graphics updates are not reflected in the generated video signal.

VL_OFFSET

(0, 0)

xyVal

Sets where the scaled images produced by the screen source node are inserted into a video frame, for centering or other placement of the images. For this node, only a value of (0,0) is valid.

VL_ORIGIN

(0, 0)

xyVal

Specifies the upper left corner (0,0) of a graphics display in unscaled screen coordinates. With VL_SIZE, this control selects a region of the graphics display to convert to video. If moving the origin causes the region to be clipped, VL_SIZE is updated and a VLValueChanged event is generated.

VL_SIZE

Dynamic

xyVal

Selects, with VL_ORIGIN, the height and width of the region of the graphics display that is converted to video. The value of VL_SIZE is specified in unscaled coordinates. Specify timing with VL_TIMING on the screen node.

This control is applied before VL_ZOOM.

VL_TIMING

Persistent

intVal

This control selects the device timing for the OCTANE Personal Video device and affects the timing for the screen source node, the memory source nodes, and the video drain node. The device supports the following modes:

VL_TIMING_525_SQ_PIX: NTSC, 525-line square pixel timing

VL_TIMING_525_CCIR601: CCIR 601, 525-line nonsquare pixel timing

VL_TIMING_625_SQ_PIX: PAL, 625-line square pixel timing

VL_TIMING_625_CCIR601: CCIR 601, 625-line nonsquare pixel timing

VL_ZOOM

1.0

fractVal

Sets the amount of scaling applied to the graphics area before it is converted to video. VL_ZOOM sets both the horizontal and vertical scale factors; use VL_ASPECT to modify the horizontal scale factor. See “VL_ZOOM” in Chapter 3.

If the VL_ZOOM value makes the resulting size invalid (that is, larger than a frame size), the size is constrained and a VLControlChanged event is generated. If the scaled size of the selected graphics region is smaller than the video frame size, use VL_OFFSET on the drain node to position the generated video.


VL_VIDEO

This section discusses the VL_VIDEO source and drain nodes separately.

VL_VIDEO Source

The video source nodes correspond to the O2Cam connector converted to a digital input with appropriate third-party hardware, the O2Cam connector with the digital camera attached, and the analog connector.

For the video source:

  • type for all three video source nodes is VL_SRC

  • kind for all three video source nodes is VL_VIDEO

  • number is

    • VL_EVO_NODE_NUMBER_VIDEO_1: digital video node, that is, the O2Cam connector used with a third-party serial converter

    • VL_EVO_NODE_NUMBER_VIDEO_2: O2Cam connector with O2Cam digital camera attached


      Note: Controls for the O2Cam digital camera are summarized in “Camera Controls” in Chapter 3.


    • VL_EVO_NODE_NUMBER_VIDEO_3: analog video node; the VL_FORMAT control selects between composite, Y/C, or loopback

Table B-5 lists video source node controls. For all these controls, access is GST, except VL_FORMAT and VL_TIMING, which are GS.

Table B-5. Video Source Node Controls

Control

Default

Type

Use

VL_FORMAT

Persistent

intVal

Specifies the type of video format to be produced:
VL_FORMAT_SVIDEO
VL_FORMAT_COMPOSITE
VL_FORMAT_CAMERA
VL_EVO_FORMAT_LOOPBACK
VL_FORMAT_DIGITAL_COMPONENT_SERIAL

See

“VL_FORMAT” in Chapter 3.

VL_FREEZE

FALSE

boolVal

Since the OCTANE Personal Video device does not support frozen inputs, this control can be set only to FALSE.

VL_OFFSET

(0, 0)

xyVal

Pans within the video. The OCTANE Personal Video source nodes support an offset of (0, 0) only.

VL_SIZE

Dynamic

xyVal

Reports the width and height of the active video region. The values are fixed for each timing mode:

CCIR 525: 720 x 486
CCIR 625: 720 x 576
NTSC square pixel: 640 x 486
PAL square pixel: 768 x 576

Specify timing with VL_TIMING on the video source node.

VL_TIMING

Persistent

intVal

Specifies timing standard of incoming video signal:

VL_TIMING_525_SQ_PIX: NTSC square pixel timing

VL_TIMING_625_SQ_PIX: PAL square pixel timing;
not applicable if video source is O2Cam digital camera (VL_EVO_NODE_NUMBER_VIDEO_2)

VL_TIMING_525_CCIR601: CCIR 525-line nonsquare pixel timing

VL_TIMING_625_CCIR601: CCIR 625-line nonsquare pixel timing; not applicable if video source is O2Cam digital camera (VL_EVO_NODE_NUMBER_VIDEO_2)

VL_ZOOM

1/1

fractVal

Sets scaling performed at video source. Since the OCTANE Personal Video device does not support scaling on a video node, this value can be set only to unity (1/1). Use memory nodes for scaling.

VL_EVO_VIN_AGC_UPDATE _INTERVAL

Persistent

intVal

Determines how often the automatic gain control circuit can change the gain. The update rate can be every line (VL_EVO_UPDT_INTVL_LINE) or every field (VL_EVO_UPDT_INTVL_FIELD).

VL_EVO_VIN_ANALOG
_PROCESS

Persistent

intVal

Before analog-to-digital conversion, the analog signal can be amplified and anti-alias filtered. This control selects one of these actions:

VL_EVO_INPUT_PROCESS_BYPASS: no action
VL_EVO_INPUT_PROCESS_AMPLIFY: amplify only
VL_EVO_INPUT_PROCESS_AMPLIFY_ALIAS
_FILTER: amplify and anti-alias filter

VL_EVO_VIN_APERTURE
_BAND_PASS

Persistent

intVal

You can peak the higher frequencies of the luminance signal by running the signal through a bandpass filter. The filtered signal is weighted by an aperture factor (see VL_EVO_VIN_APTERTURE_FACTOR) and added to the original unfiltered signal, boosting the frequencies passed by the filter. This control selects the center frequency of the bandpass filter. A value of 0 selects 4.1 MHz, 1 selects 3.8 MHz,
2 selects 2.6 MHz, and 3 selects 2.9 MHz.

VL_EVO_VIN_APERTURE
_FACTOR

Persistent

intVal

Sets the aperture factor, which determines the contribution of a bandpass-filtered signal to the output luminance signal (see VL_EVO_VIN_APTERTURE_BANDPASS). A value of 0 selects 0.0 (no contribution), 1 selects 0.25,
2 selects 0.5, and 3 selects 1.0 (full contribution).

VL_EVO_VIN_CHROMA
_BANDWIDTH

Persistent

intVal

Selects the bandwidth of the chrominance difference signals. Legal values are 0 (620 KHz), 1 (800 KHz), 2 (920 KHz) and 3 (1000 KHz). The color difference signals are low-pass filtered to achieve the selected bandwidth.

VL_EVO_VIN_CHROMA
_HUE

Persistent

intVal

Affects the hue of the chrominance signal within a range of -180 degrees to 178.6 degrees.

VL_EVO_VIN_CHROMA
_SATURATION

Persistent

fractVal

Determines the saturation of the chrominance signal with a gain of -2 (inverse chrominance) to 1.999. A value of 1.0 selects the CCIR level.

VL_EVO_VIN_COLOR
_STANDARD

Persistent

intVal

Selects the color standard of the video input. The PAL and NTSC color standards vary by region:
0 selects PAL BGHI or NTSC M
1 selects NTSC 4.43 or PAL 4.43
2 selects PAL N or NTSC 4.43
3 selects NTSC N or PAL M

VL_EVO_VIN_FAST_COLOR
_TIME_CNSTNT

Persistent

boolVal

Sets time constant: 0 selects nominal time constant, 1 selects fast time constant.

VL_EVO_VIN_GAIN_CH1

VL_EVO_VIN_GAIN_CH2

Persistent

fractVal

When AGC is not in use, these controls affect the gain of a composite signal (CH1), or the luminance (CH1) and chrominance (CH2) components of a Y/C signal. The gain can be adjusted between -5.98 dB to 5.98 dB.

VL_EVO_VIN_GAIN
_CONTROL_FIX

Persistent

boolVal

Enables (TRUE) or disables the gain control circuit, which limits the gain at signal overshoots. TRUE enables the gain control circuit; FALSE disables it.

VL_EVO_VIN_GAIN_HOLD

Persistent

boolVal

Determines whether the automatic gain control (AGC) circuit is active or frozen (gain is held at a fixed value). TRUE freezes the gain; FALSE indicates active AGC.

VL_EVO_VIN_GAIN
_HYSTERESIS

Persistent

intVal

When automatic gain control (AGC) is active, this control determines hysteresis of the gain circuit, or the amount that the computed gain must change before is actually used. Thus the AGC circuit need not constantly adjust to small variations in brightness. Set this control from 0 to 7, corresponding to 0 to 7 LSBs of a 9-bit gain value.

VL_EVO_VIN_HSYNC
_STOP

VL_EVO_VIN_HSYNC
_START

Persistent

intVal

Determine the range in which a horizontal sync pulse is expected to be detected. Each control ranges from -107 to +108.

VL_EVO_VIN_LUMA
_BRIGHTNESS

Persistent

 

intVal

Affects the brightness of the luminance signal. A value of 128 selects the CCIR luminance level, with 255 the brightest and 0 the darkest.

VL_EVO_VIN_LUMA
_CONTRAST

Persistent

fractVal

Determines the contrast of the luminance signal. Contrast gain can be adjusted up to 1.999 and down to -2 (inverse luminance); 1.109 selects the CCIR level.

VL_EVO_VIN_LUMA
_DELAY_COMPENSATE

Persistent

intVal

Delays the luminance components with respect to chrominance. The legal range is from -4 to 3 pixels.

VL_EVO_VIN_PREFILTER
_ACTIVE

Persistent

boolVal

Enables (TRUE) or bypasses the prefilter, which emphasizes the high-frequency components of the luminance signal, compensating for loss.

VL_EVO_VIN_VERT
_BLANK_SEL

Persistent

boolVal

Determines whether vertical blanking is long (0) or short (1).

VL_EVO_VIN_VERT_NOISE
_REDUCT

Persistent

intVal

Determines how the video input responds to vertical noise in the signal: 0 selects normal mode, 1 selects searching mode, 2 selects free-running mode. A value of 4 bypasses the noise reduction circuit.

VL_EVO_VIN_TV_VTR_SEL

Persistent

boolVal

Affects how the video input locks (synchronizes) to a video signal: 0 selects TV mode (recommended only for poor-quality signals), 1 selects VTR mode.

VL_EVO_VIN_WHITE_PEAK

Persistent

boolVal

The white peak, or signal peak, control is part of the automatic gain control function; it limits the gain at signal overshoots. To limit the gain, set this control to TRUE; otherwise, set it to FALSE.


VL_VIDEO Drain

The OCTANE Personal Video option supports one video drain node that corresponds to the two analog video output connectors on the OCTANE Personal Video device, composite and S-Video (Y/C), and to the O2Cam connector, when an optional third-party converter provides SDI I/O at that port. This drain node drives all video outputs simultaneously.

For the video drain:

  • type is VL_DRN

  • kind is VL_VIDEO

Table B-6 lists video drain node controls. For all these controls, access is GST, except VL_FORMAT and VL_TIMING, which are GS.

Table B-6. Video Drain Node Controls

Control

Default

Type

Use

VL_DITHER_FILTER

Persistent

boolVal

Determines whether the square-to-nonsquare converter performs dithering (TRUE) at the video output.

VL_FORMAT

Persistent

intVal

Specifies the type of video format to be produced:
VL_FORMAT_SVIDEO
VL_FORMAT_COMPOSITE
VL_FORMAT_DIGITAL_COMPONENT_SERIAL

See

“VL_FORMAT” in Chapter 3.

VL_FREEZE

TRUE

boolVal

Freezes (TRUE) the video sent to the video output connector.

VL_H_PHASE

Persistent

fractVal

Specifies the horizontal phase of the video output with respect to the video input. It is a 12-bit unsigned integer that increments in steps of the pixel clock (typically 74 nsec). The output occurs later in time as the value of this control increases.

This control has a range of -3071 to 1023, which can advance the output by slightly more than three lines or delay the output by slightly more than one line. The default value 0 makes the output match the timing of the video input.

VL_OFFSET

(0, 0)

xyVal

Pans within the video. The OCTANE Personal Video drain node supports an offset of (0, 0) only.

VL_SIZE

Dynamic

xyVal

Reports the width and height of the active video region. The values are fixed for each timing mode:

CCIR 525: 720 x 486
CCIR 625: 720 x 576
NTSC square pixel: 640 x 486
PAL square pixel: 768 x 576

Specify timing with VL_TIMING on the video drain node.

VL_TIMING

Persistent

intVal

Specifies timing standard of incoming video signal and affects the timing for the screen source node, the memory source nodes, and the video drain node. Because the analog video encoder operates in nonsquare mode only, square-to-nonsquare conversion is performed when VL_TIMING is set to one of the square pixel timings (that is, square pixel video is sent to the video out node). Values are as follows:

VL_TIMING_525_SQ_PIX: NTSC square pixel timing

VL_TIMING_625_SQ_PIX: PAL square pixel timing

VL_TIMING_525_CCIR601: CCIR 525-line nonsquare pixel timing

VL_TIMING_625_CCIR601: CCIR 625-line nonsquare pixel timing

VL_ZOOM

1/1

fractVal

Sets scaling performed at video drain. Since the OCTANE Personal Video device does not support scaling on a video node, this value can be set only to unity (1/1). Use memory nodes for scaling.

VL_EVO_ALPHA_NOT
_PIXEL

FALSE

boolVal

If the node supplying the video drain node has both pixel and alpha outputs (for example, RGBA or YUVA 4:2:2:4/4:4:4:4 sent from memory), this control selects whether alpha (1: A) or pixel (0: YUV/RGB) is sent to the video output.

VL_EVO_COLOR_BAR
_ENABLE

FALSE

boolVal

Enables (1) or disables (0) automatic color bar generation on the video output, such as for test purposes. When enabled, color bars supersede any other video sent to the video output.

VL_EVO_COLOR_FRAME
_LOCK

Persistent

boolVal

Enables (TRUE) or disables (FALSE) color-frame locking. The video output of Personal Video can be color-frame locked to either the reference input or to composite analog input. For frame locking to be enabled, genlock (VL_SYNC) must be enabled and either the reference input or the composite analog input must be selected as the genlock source (VL_SYNC_SOURCE).

VL_EVO_COLOR_HPHASE

Persistent

intVal

Adjusts the color subcarrier phase with respect to horizontal sync from 0 to 360 degrees in 360/256 degree steps. Normally, the color subcarrier is in phase with the horizontal sync (0 degree separation).

VL_EVO_CSC_COEF

Multiplier operates in pass-through mode

extended Val

Specifies the matrix multiplier coefficients. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC_LUT_IN
_PAGE

VL_EVO_CSC_LUT_ALPHA _PAGE

0

0

intVal

Selects the active page for the input LUT. Valid page numbers are 0 through 3.

Selects the active page for the alpha LUT; valid page numbers are 0 through 3. See

“Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC_LUT_IN_YG

VL_EVO_CSC_LUT_IN_UB

VL_EVO_CSC_LUT_IN_VR

VL_EVO_CSC_LUT_ALPHA

Pass-through (1:1 mapping)

extended Val

Specifies the contents of the input or alpha lookup tables. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_CSC_LUT_OUT
_YG

VL_EVO_CSC_LUT_OUT
_UB

VL_EVO_CSC_LUT_OUT
_VR

Pass-through (1:1 mapping)

extended Val

Specifies the contents of the output lookup tables. See “Color-Space Converter for Image Processing” in Chapter 3.

VL_EVO_FILTER
_TYPE

Persistent

intVal

OCTANE Personal Video supports square and nonsquare conversions at the video drain. This control selects how the conversion between the two formats is performed. The values are

VL_EVO_FILTER_TYPE_FREQ (selects the frequency-preserving filter)

VL_EVO_FILTER_TYPE_SPAT (selects the spatially preserving filter)

See

“VL_EVO_FILTER_TYPE” in Chapter 3.

VL_EVO_VOUT_BLACK
_LEVEL

Persistent

fractVal

Sets black level of video signal with respect to the sync level. For a white-to-sync range of 140 IRE (NTSC), the recommended black level is 47.5 IRE with respect to the sync level. The black level can be set between 24 IRE and 49 IRE in steps of 25/63 IRE.

For a white-to-sync range of 143 IRE (PAL), the recommended black level is 43 IRE with respect to sync. The actual black level can range between 24 IRE and 50 IRE in steps of 26/63 IRE.

Some video standards define a pedestal, or offset, of the black level to separate active video from the blanking level. NTSC does so; PAL and SECAM do not.

VL_EVO_VOUT_CAP_1ST
_BYTE_ODD

VL_EVO_VOUT_CAP_2ND
_BYTE_ODD

None

intVal

If closed caption encoding is enabled, these controls determine the text of the closed captioning for the odd and even fields. Each field can encode two bytes of closed caption data.

VL_EVO_VOUT_COLOR
_BURST_AMP

Dynamic

fractVal

Sets colorburst amplitude with respect to its nominal value: for NTSC, the nominal burst amplitude is 40 IRE (adjustable from 0 to 1.25x nominal); for PAL, 43 IRE (adjustable from 0 to 1.67x nominal).

VL_EVO_VOUT_CC
_ENCODING

VL_EVO
_ENCODING_OFF

intVal

Enables or disables (0) closed caption encoding. A value of 1 enables encoding in field 1 (odd fields); 2 enables encoding of field 2 (even fields); 3 enables encoding in both fields.
Use VL_EVO_VOUT_CAP* and VL_EVO_VOUT_XTN* to specify the content of the captioning in each field.

VL_EVO_VOUT_ FIRST
_ACTIVE_LN

0

fractVal

Specifies the first line of active video in each field. Lines outside of the active video are blanked. A value of 0 represents line 17 in NTSC and line 22 in PAL.

VL_EVO_VOUT_LUMA_WT _GN_92_5

Persistent

boolVal

Determines whether the white-to-black range for luminance is 92.5 IRE (TRUE) or 100 IRE (FALSE). The 92.5 IRE setting typically includes a 7.5 IRE setup (pedestal) of black. See also VL_EVO_VOUT_BLACK_LEVEL.

VL_EVO_VOUT_U_GAIN

VL_EVO_VOUT_V_GAIN

Persistent

fractVal

Set the amount of gain applied to the U and V color difference signals. The U gain ranges from -2.17x to 2.16x for NTSC and -2.05x to 2.04x for PAL. The V gain ranges from -1.55x to 1.55x for NTSC and -1.46 to 1.46x for PAL.

VL_EVO_VOUT_XTN_1ST
_BYTE_EVN

VL_EVO_VOUT_XTN_2ND _BYTE_EVN

None

intVal

If closed caption encoding is enabled, these controls determine the text of the closed captioning for the odd and even fields. Each field can encode two bytes of closed-caption data.