FireSync API
 All Classes Files Functions Variables Typedefs Friends Macros Modules Pages
kCompressedPhase Class Reference

Description

Represents compressed phase (and/or intensity) data.

The kCompressedPhase class is a container for compressed phase data. The purpose of this container is to support the efficient movement of compressed phase data from the FireSync camera driver to remote hosts via lightweight object serialization. In conjunction with its helper classes, such as kCompressedPhaseReader, kCompressedPhase supports packing (writing) or unpacking (reading) compressed phase data from the various bit-packed encodings used by FireSync PL. However, the kCompressedPhase class does not perform compression/decompression, support for which is provided in the kVision library.

Support for packing/writing (or attaching) compressed phase data is intended for use within FireSync camera drivers and unit/integration tests; it is not intended for use in other contexts. Support for unpacking/reading compressed data is provided so that decompression logic can rely on a simple API for extracting data from the various bit-packed, packetized, PL stream encodings.

The example below illustrates use of kCompressedPhase and kCompressedPhaseReader to extra a phase delta list from a compressed phase dataset.

kStatus ExtractPhaseDeltaList(kCompressedPhase dataset, kArrayList deltaList)
{
k32s deltaItem;
{
//kCompressedPhaseReader supports forward read-only iteration over a compressed phase stream;
//normally the reader would be reused, but for this example we'll construct/destroy it here
kTest(kCompressedPhaseReader_Construct(&reader, kNULL));
//locate the desired stream
kTest(kCompressedPhase_FindStream(dataset, kCOMPRESSED_PHASE_STREAM_ID_PHASE_DELTA, &stream));
//log the bit depth, for informational purposes
kLogf("Delta bit depth: %u", kCompressedPhaseEncoding_ValueBitDepth(encoding));
//get the number of entries in the stream
kSize itemCount = kCompressedPhase_ItemCount(dataset, stream);
//set read iterator to beginning of desired stream
kTest(kCompressedPhaseReader_Begin(reader, dataset, stream));
//init output container
kTest(kArrayList_Allocate(deltaList, kTypeOf(k32s), itemCount));
//read out entries
for (kSize i = 0; i < itemCount; ++i)
{
kTest(kCompressedPhaseReader_ReadDelta(reader, &deltaItem));
kTest(kArrayList_AddT(deltaList, &deltaItem));
}
}
{
kObject_Destroy(reader);
}
return kOK;
}

kCompressedPhase supports the kObject_Clone and kObject_Size methods.

kCompressedPhase supports the kdat6 serialization protocol.

Inheritance diagram for kCompressedPhase:
Inheritance graph

Public Member Functions

kStatus kCompressedPhase_AttachPacket (kCompressedPhase data, kCompressedPhaseStream stream, const void *packet, kSize packetSize)
 Attaches one external packet to the compressed phase object. More...
 
kStatus kCompressedPhase_BeginAttach (kCompressedPhase data)
 Prepares the compressed phase object to begin external packet attachment. More...
 
kStatus kCompressedPhase_BeginWrite (kCompressedPhase data)
 Prepares the compressed phase object to begin writing. More...
 
kStatus kCompressedPhase_Clear (kCompressedPhase data)
 Returns the object to a default state (e.g., removes all streams). More...
 
kStatus kCompressedPhase_Construct (kCompressedPhase *data, kAlloc allocator)
 Constructs a kCompressedPhase object. More...
 
kStatus kCompressedPhase_DefineStream (kCompressedPhase data, kCompressedPhaseStreamId streamId, kCompressedPhaseEncoding encoding, kCompressedPhaseStream *stream)
 Adds a stream to the compressed phase dataset. More...
 
kCompressedPhaseEncoding kCompressedPhase_Encoding (kCompressedPhase data, kCompressedPhaseStream stream)
 Gets the encoding style associated with the stream. More...
 
kStatus kCompressedPhase_EndWrite (kCompressedPhase data)
 Completes writing and flushes streams. More...
 
kStatus kCompressedPhase_FindStream (kCompressedPhase data, kCompressedPhaseStreamId streamId, kCompressedPhaseStream *stream)
 Find the stream with the specified stream identifier, if it is present in the compressed phase dataset. More...
 
kBool kCompressedPhase_HasStream (kCompressedPhase data, kCompressedPhaseStreamId streamId)
 Reports whether the compressed phase dataset has the specified stream type. More...
 
kCompressedPhaseStreamId kCompressedPhase_Id (kCompressedPhase data, kCompressedPhaseStream stream)
 Gets the stream identifier associated with the stream. More...
 
kStatus kCompressedPhase_IntensityBitDepths (kCompressedPhase data, k32u *deltaBitDepth, k32u *fail1BitDepth, k32u *fail2BitDepth, k32u *nullBitDepth)
 Gets bit depths associated with intensity streams. More...
 
kBool kCompressedPhase_IsFinalSubframe (kCompressedPhase data)
 Reports whether the final subframe flag is set. More...
 
kSize kCompressedPhase_ItemCount (kCompressedPhase data, kCompressedPhaseStream stream)
 Gets the total number of compressed items in the stream. More...
 
kSize kCompressedPhase_Length (kCompressedPhase data, kSize dimension)
 Reports the length of the specified uncompressed 2D dataset dimension. More...
 
kSize kCompressedPhase_PacketCount (kCompressedPhase data, kCompressedPhaseStream stream)
 Reports the number of packets in the underlying stream. More...
 
kPointer kCompressedPhase_PacketData (kCompressedPhase data, kCompressedPhaseStream stream, kSize index)
 Gets a pointer to the specified stream packet. More...
 
kSize kCompressedPhase_PacketSize (kCompressedPhase data, kCompressedPhaseStream stream, kSize index)
 Gets the size of the specified stream packet, in bytes. More...
 
kStatus kCompressedPhase_PhaseBitDepths (kCompressedPhase data, k32u *deltaBitDepth, k32u *fail1BitDepth, k32u *fail2BitDepth, k32u *nullBitDepth)
 Gets bit depths associated with phase streams. More...
 
k32u kCompressedPhase_PhasePrediction (kCompressedPhase data)
 Reports phase prediction value. More...
 
kStatus kCompressedPhase_ReadIntensityStreams (kCompressedPhase data, kArrayList delta, kArrayList fail1, kArrayList fail2, kArrayList null, kObject *context)
 Reads out all intensity streams into lists. More...
 
kStatus kCompressedPhase_ReadPhaseStreams (kCompressedPhase data, kArrayList delta, kArrayList fail1, kArrayList fail2, kArrayList null, kObject *context)
 Reads out all phase streams into lists. More...
 
kStatus kCompressedPhase_SetFinalSubframe (kCompressedPhase data, kBool isFinal)
 Sets the final subframe flag. More...
 
kStatus kCompressedPhase_SetItemCount (kCompressedPhase data, kCompressedPhaseStream stream, kSize itemCount)
 Sets the total number of compressed items in the stream. More...
 
kStatus kCompressedPhase_SetLength (kCompressedPhase data, kSize dimension, kSize length)
 Sets the length of the specified uncompressed 2D dataset dimension. More...
 
kStatus kCompressedPhase_SetPhasePrediction (kCompressedPhase data, k32u prediction)
 Sets phase prediction value. More...
 
kStatus kCompressedPhase_SetSubframeIndex (kCompressedPhase data, kSize index)
 Sets the subframe index for this object. More...
 
kStatus kCompressedPhase_SetSubframeLength (kCompressedPhase data, kSize length)
 Sets the uncompressed length of this subframe. More...
 
kCompressedPhaseStream kCompressedPhase_StreamAt (kCompressedPhase data, kSize index)
 Gets the stream at the specified index. More...
 
kSize kCompressedPhase_StreamCount (kCompressedPhase data)
 Reports the number of stream present in the compressed phase dataset. More...
 
kSize kCompressedPhase_StreamSize (kCompressedPhase data, kCompressedPhaseStream stream)
 Gets the compressed size of the specified stream, in bytes. More...
 
kSize kCompressedPhase_SubframeIndex (kCompressedPhase data)
 Reports the subframe index for this object. More...
 
kSize kCompressedPhase_SubframeLength (kCompressedPhase data)
 Reports the uncompressed length of this subframe. More...
 
kStatus kCompressedPhase_WriteDelta (kCompressedPhase data, kCompressedPhaseStream stream, k32s delta)
 Writes a delta item to a stream. More...
 
kStatus kCompressedPhase_WriteFail (kCompressedPhase data, kCompressedPhaseStream stream, k32s index, k32s value)
 Writes a "fail" item to a stream. More...
 
kStatus kCompressedPhase_WriteNull (kCompressedPhase data, kCompressedPhaseStream stream, k32s index, k32s count)
 Writes a null item to a stream. More...
 
kBool kCompressedPhaseReader_IsIntensity (kCompressedPhase data)
 Check for intensity data. More...
 

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