AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
NTV2SegmentedXferInfo Class Reference

Describes a segmented data transfer (copy or move) from a source memory location to a destination location, with independent pitch and direction attributes for source and destination. The simplest transfer, of course, has a single segment. More...

#include <ntv2publicinterface.h>

Public Member Functions

 NTV2SegmentedXferInfo ()
 Constructs me as empty/invalid. More...
 
Inquiry
ULWord getSourceEndOffset (void) const
 
ULWord getDestEndOffset (void) const
 
std::ostream & Print (std::ostream &inStrm, const bool inDumpSegments=false) const
 Writes a human-readable description of me into a given output stream. More...
 
std::string getSourceCode (const bool inInclDecl=true) const
 
bool containsElementAtOffset (const ULWord inElementOffset) const
 
bool operator!= (const NTV2SegmentedXferInfo &inRHS) const
 
bool operator== (const NTV2SegmentedXferInfo &inRHS) const
 
Changing
NTV2SegmentedXferInforeset (void)
 Resets me to an invalid (all zero) state. More...
 
NTV2SegmentedXferInfosetSegmentInfo (const ULWord inNumSegs, const ULWord inSegLength)
 Sets both my segment count and length. More...
 
NTV2SegmentedXferInfosetSegmentCount (const ULWord inNumSegments)
 Sets my segment count. More...
 
NTV2SegmentedXferInfosetSegmentLength (const ULWord inNumElements)
 Sets my segment length. More...
 
NTV2SegmentedXferInfosetSourceInfo (const ULWord inOffset, const ULWord inPitch)
 A convenience function that sets both my source offset and pitch. More...
 
NTV2SegmentedXferInfosetSourceOffset (const ULWord inOffset)
 Sets my source offset. More...
 
NTV2SegmentedXferInfosetSourcePitch (const ULWord inPitch)
 Sets my source pitch. More...
 
NTV2SegmentedXferInfosetSourceDirection (const bool inTopDown)
 Sets my source direction. More...
 
NTV2SegmentedXferInfosetDestInfo (const ULWord inOffset, const ULWord inPitch)
 A convenience function that sets both my destination offset and pitch. More...
 
NTV2SegmentedXferInfosetDestOffset (const ULWord inOffset)
 Sets my destination offset. More...
 
NTV2SegmentedXferInfosetDestPitch (const ULWord inPitch)
 Sets my destination pitch. More...
 
NTV2SegmentedXferInfosetDestDirection (const bool inTopDown)
 Sets my destination scan direction. More...
 
NTV2SegmentedXferInfosetElementLength (const ULWord inBytesPerElement)
 Sets my element length. More...
 
NTV2SegmentedXferInfoswapSourceAndDestination (void)
 Swaps my source and destination offsets and pitches. More...
 

Detailed Description

Describes a segmented data transfer (copy or move) from a source memory location to a destination location, with independent pitch and direction attributes for source and destination. The simplest transfer, of course, has a single segment.

A segmented transfer is described by these attributes:

  • A starting source and destination offset, in elements;
  • A source and destination pitch (span between segments, in elements);
  • A segment length, in elements;
  • A segment count. The element size defaults to 1 byte per element, must be a power-of-2, and cannot be larger than 8 bytes. There are also some optional attributes:
  • Optional "source vertical flip" flag to indicate that the source offset is interpreted as an offset, in elements, from the bottom of the source buffer, and during the transfer, the source pitch is subtracted instead of added. Defaults to normal "from top" source offset reference.
  • Optional "destination vertical flip" flag to indicate that the destination offset is interpreted as an offset, in elements, from the bottom of the destination buffer, and during the transfer, the destination pitch is subtracted instead of added. Defaults to normal "from top" destination offset reference.

Definition at line 5732 of file ntv2publicinterface.h.

Constructor & Destructor Documentation

◆ NTV2SegmentedXferInfo()

NTV2SegmentedXferInfo::NTV2SegmentedXferInfo ( )
inline

Constructs me as empty/invalid.

Definition at line 5738 of file ntv2publicinterface.h.

Member Function Documentation

◆ containsElementAtOffset()

bool NTV2SegmentedXferInfo::containsElementAtOffset ( const ULWord  inElementOffset) const
Parameters
[in]inElementOffsetSpecifies the element offset of interest.
Returns
True if the element is contained within me.

Definition at line 1431 of file ntv2publicinterface.cpp.

◆ getDestEndOffset()

ULWord NTV2SegmentedXferInfo::getDestEndOffset ( void  ) const
inline
Returns
The offset to the first element immediately past the last destination segment.

Definition at line 5781 of file ntv2publicinterface.h.

◆ getSourceCode()

string NTV2SegmentedXferInfo::getSourceCode ( const bool  inInclDecl = true) const
Parameters
[in]inInclDeclIf true, the default, include a declaration statement in the source code.
Returns
A string containing C++ source code that, when compiled, will result in a NTV2SegmentedXferInfo instance that will perfectly match me.

Definition at line 1401 of file ntv2publicinterface.cpp.

◆ getSourceEndOffset()

ULWord NTV2SegmentedXferInfo::getSourceEndOffset ( void  ) const
inline
Returns
The offset to the first element immediately past the last source segment.

Definition at line 5775 of file ntv2publicinterface.h.

◆ operator!=()

bool NTV2SegmentedXferInfo::operator!= ( const NTV2SegmentedXferInfo inRHS) const
Parameters
[in]inRHSSpecifies the NTV2SegmentedXferInfo to compare with me.
Returns
True if not equal.
Note
The element sizes must match (though this ought to be compensated for in the comparison).

Definition at line 1454 of file ntv2publicinterface.cpp.

◆ operator==()

bool NTV2SegmentedXferInfo::operator== ( const NTV2SegmentedXferInfo inRHS) const
inline
Parameters
[in]inRHSSpecifies the NTV2SegmentedXferInfo to compare with me.
Returns
True if equal.
Note
The element sizes must match (though this ought to be compensated for in the comparison).

Definition at line 5817 of file ntv2publicinterface.h.

◆ Print()

ostream & NTV2SegmentedXferInfo::Print ( std::ostream &  inStrm,
const bool  inDumpSegments = false 
) const

Writes a human-readable description of me into a given output stream.

Parameters
inStrmA non-constant reference to the output stream that will receive the description.
[in]inDumpSegmentsIf true, also dumps a description of each segment. Defaults to false.
Returns
A reference to the output stream.

Definition at line 1376 of file ntv2publicinterface.cpp.

◆ reset()

NTV2SegmentedXferInfo & NTV2SegmentedXferInfo::reset ( void  )

Resets me to an invalid (all zero) state.

Definition at line 1474 of file ntv2publicinterface.cpp.

◆ setDestDirection()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestDirection ( const bool  inTopDown)
inline

Sets my destination scan direction.

Parameters
[in]inTopDownSpecify true to traverse the destination segments top-to-bottom; otherwise specify false for bottom-to-top.
Returns
A reference to me.

Definition at line 5917 of file ntv2publicinterface.h.

◆ setDestInfo()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestInfo ( const ULWord  inOffset,
const ULWord  inPitch 
)
inline

A convenience function that sets both my destination offset and pitch.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first destination segment.
[in]inPitchThe new number of elements between each destination row.
Returns
A reference to me.

Definition at line 5895 of file ntv2publicinterface.h.

◆ setDestOffset()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestOffset ( const ULWord  inOffset)
inline

Sets my destination offset.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first destination segment.
Returns
A reference to me.

Definition at line 5903 of file ntv2publicinterface.h.

◆ setDestPitch()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setDestPitch ( const ULWord  inPitch)
inline

Sets my destination pitch.

Parameters
[in]inPitchThe new number of elements between each destination row.
Returns
A reference to me.

Definition at line 5910 of file ntv2publicinterface.h.

◆ setElementLength()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setElementLength ( const ULWord  inBytesPerElement)
inline

Sets my element length.

Parameters
[in]inBytesPerElementThe new element size, in bytes. Must be a power of two (1, 2, 4, or 8).
Note
This function does not transform any of my offsets, pitches or lengths.
Returns
A reference to me.

Definition at line 5925 of file ntv2publicinterface.h.

◆ setSegmentCount()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSegmentCount ( const ULWord  inNumSegments)
inline

Sets my segment count.

Parameters
[in]inNumSegmentsMy new segment count.
Returns
A reference to me.

Definition at line 5841 of file ntv2publicinterface.h.

◆ setSegmentInfo()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSegmentInfo ( const ULWord  inNumSegs,
const ULWord  inSegLength 
)
inline

Sets both my segment count and length.

Parameters
[in]inNumSegsMy new segment count.
[in]inSegLengthMy new segment length, in elements.
Returns
A reference to me.

Definition at line 5833 of file ntv2publicinterface.h.

◆ setSegmentLength()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSegmentLength ( const ULWord  inNumElements)
inline

Sets my segment length.

Parameters
[in]inNumElementsMy new segment length, in elements.
Returns
A reference to me.

Definition at line 5849 of file ntv2publicinterface.h.

◆ setSourceDirection()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourceDirection ( const bool  inTopDown)
inline

Sets my source direction.

Parameters
[in]inTopDownSpecify true to traverse the source segments top-to-bottom; otherwise specify false for bottom-to-top.
Returns
A reference to me.

Definition at line 5882 of file ntv2publicinterface.h.

◆ setSourceInfo()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourceInfo ( const ULWord  inOffset,
const ULWord  inPitch 
)
inline

A convenience function that sets both my source offset and pitch.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first source segment.
[in]inPitchThe new number of elements between each source row.
Returns
A reference to me.

Definition at line 5858 of file ntv2publicinterface.h.

◆ setSourceOffset()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourceOffset ( const ULWord  inOffset)
inline

Sets my source offset.

Parameters
[in]inOffsetThe new offset, in elements, to the start of the first source segment.
Returns
A reference to me.

Definition at line 5866 of file ntv2publicinterface.h.

◆ setSourcePitch()

NTV2SegmentedXferInfo& NTV2SegmentedXferInfo::setSourcePitch ( const ULWord  inPitch)
inline

Sets my source pitch.

Parameters
[in]inPitchThe new number of elements between each source row.
Returns
A reference to me.

Definition at line 5874 of file ntv2publicinterface.h.

◆ swapSourceAndDestination()

NTV2SegmentedXferInfo & NTV2SegmentedXferInfo::swapSourceAndDestination ( void  )

Swaps my source and destination offsets and pitches.

Returns
A reference to me.

Definition at line 1487 of file ntv2publicinterface.cpp.


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