AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
NTV2SegmentedDMAInfo Class Reference

This struct is used to augment the default full-frame AutoCirculate DMA transfer to accommodate multiple discontiguous "segments" of a video frame. The NTV2FieldBurn Demo demo app shows how this can be used. Other examples: More...

#include <ntv2publicinterface.h>

Public Member Functions

 NTV2SegmentedDMAInfo ()
 Constructs a disabled NTV2SegmentedDMAInfo struct. More...
 
 NTV2SegmentedDMAInfo (const ULWord inNumSegments, const ULWord inNumActiveBytesPerRow, const ULWord inHostBytesPerRow, const ULWord inDeviceBytesPerRow)
 Constructs an NTV2SegmentedDMAInfo struct from a segment count, a host pitch, and device pitch value. More...
 
void Set (const ULWord inNumSegments, const ULWord inNumActiveBytesPerRow, const ULWord inHostBytesPerRow, const ULWord inDeviceBytesPerRow)
 Sets the NTV2SegmentedDMAInfo struct members. More...
 
void Reset (void)
 Resets the NTV2SegmentedDMAInfo struct members to their default values (normal, non-segmented AutoCirculate DMA transfers). More...
 
ULWord GetSegmentCount (void) const
 
bool IsSegmented (void) const
 
bool RPCEncode (NTV2_RPC_BLOB_TYPE &outBlob)
 
bool RPCDecode (const NTV2_RPC_BLOB_TYPE &inBlob, size_t &inOutIndex)
 

Public Attributes

ULWord acNumSegments
 Number of segments of size ::AUTOCIRCULATE_TRANSFER::acVideoBuffer.fByteCount to transfer. Zero or 1 means normal (unsegmented) transfer. More...
 
ULWord acNumActiveBytesPerRow
 Number of active bytes in a row of video. More...
 
ULWord acSegmentHostPitch
 Offset, in bytes, between the start of one host segment and the start of the next host segment (i.e. host memory bytes-per-row). More...
 
ULWord acSegmentDevicePitch
 Offset, in bytes, between the start of one device segment and the start of the next device segment (i.e. device memory bytes-per-row). More...
 

Detailed Description

This struct is used to augment the default full-frame AutoCirculate DMA transfer to accommodate multiple discontiguous "segments" of a video frame. The NTV2FieldBurn Demo demo app shows how this can be used. Other examples:

Note
Setting NTV2SegmentedDMAInfo::acNumSegments to 0 or 1 defaults to normal non-segmented DMA behavior (i.e. DMA one complete, packed frame).

Definition at line 7079 of file ntv2publicinterface.h.

Constructor & Destructor Documentation

◆ NTV2SegmentedDMAInfo() [1/2]

NTV2SegmentedDMAInfo::NTV2SegmentedDMAInfo ( )
explicit

Constructs a disabled NTV2SegmentedDMAInfo struct.

Definition at line 2590 of file ntv2publicinterface.cpp.

◆ NTV2SegmentedDMAInfo() [2/2]

NTV2SegmentedDMAInfo::NTV2SegmentedDMAInfo ( const ULWord  inNumSegments,
const ULWord  inNumActiveBytesPerRow,
const ULWord  inHostBytesPerRow,
const ULWord  inDeviceBytesPerRow 
)
explicit

Constructs an NTV2SegmentedDMAInfo struct from a segment count, a host pitch, and device pitch value.

Parameters
[in]inNumSegmentsSpecifies the number of segments (lines) to DMA.
[in]inNumActiveBytesPerRowSpecifies the number of active bytes in a row of video.
[in]inHostBytesPerRowSpecifies the offset, in bytes, between two adjacent segments on the host.
[in]inDeviceBytesPerRowSpecifies the offset, in bytes, between two adjacent segments on the device.

Definition at line 2596 of file ntv2publicinterface.cpp.

Member Function Documentation

◆ GetSegmentCount()

ULWord NTV2SegmentedDMAInfo::GetSegmentCount ( void  ) const
inline
Returns
My segment count.

Definition at line 7121 of file ntv2publicinterface.h.

◆ IsSegmented()

bool NTV2SegmentedDMAInfo::IsSegmented ( void  ) const
inline
Returns
True if I'm currently active (i.e., I have more than one segment; otherwise false.

Definition at line 7126 of file ntv2publicinterface.h.

◆ Reset()

void NTV2SegmentedDMAInfo::Reset ( void  )

Resets the NTV2SegmentedDMAInfo struct members to their default values (normal, non-segmented AutoCirculate DMA transfers).

Definition at line 2616 of file ntv2publicinterface.cpp.

◆ RPCDecode()

bool NTV2SegmentedDMAInfo::RPCDecode ( const NTV2_RPC_BLOB_TYPE inBlob,
size_t &  inOutIndex 
)

Definition at line 3908 of file ntv2publicinterface.cpp.

◆ RPCEncode()

bool NTV2SegmentedDMAInfo::RPCEncode ( NTV2_RPC_BLOB_TYPE outBlob)

Definition at line 3899 of file ntv2publicinterface.cpp.

◆ Set()

void NTV2SegmentedDMAInfo::Set ( const ULWord  inNumSegments,
const ULWord  inNumActiveBytesPerRow,
const ULWord  inHostBytesPerRow,
const ULWord  inDeviceBytesPerRow 
)

Sets the NTV2SegmentedDMAInfo struct members.

Parameters
[in]inNumSegmentsSpecifies the number of segments (lines) to DMA. If 1 or zero, performs a Reset, and the remaining parameters are ignored.
[in]inNumActiveBytesPerRowSpecifies the number of active bytes in a row of video.
[in]inHostBytesPerRowSpecifies the offset, in bytes, between two adjacent segments on the host.
[in]inDeviceBytesPerRowSpecifies the offset, in bytes, between two adjacent segments on the device.

Definition at line 2602 of file ntv2publicinterface.cpp.

Member Data Documentation

◆ acNumActiveBytesPerRow

ULWord NTV2SegmentedDMAInfo::acNumActiveBytesPerRow

Number of active bytes in a row of video.

Definition at line 7082 of file ntv2publicinterface.h.

◆ acNumSegments

ULWord NTV2SegmentedDMAInfo::acNumSegments

Number of segments of size ::AUTOCIRCULATE_TRANSFER::acVideoBuffer.fByteCount to transfer. Zero or 1 means normal (unsegmented) transfer.

Definition at line 7080 of file ntv2publicinterface.h.

◆ acSegmentDevicePitch

ULWord NTV2SegmentedDMAInfo::acSegmentDevicePitch

Offset, in bytes, between the start of one device segment and the start of the next device segment (i.e. device memory bytes-per-row).

Definition at line 7085 of file ntv2publicinterface.h.

◆ acSegmentHostPitch

ULWord NTV2SegmentedDMAInfo::acSegmentHostPitch

Offset, in bytes, between the start of one host segment and the start of the next host segment (i.e. host memory bytes-per-row).

Definition at line 7083 of file ntv2publicinterface.h.


The documentation for this class was generated from the following files: