FMBinary Class Reference

Inherits from NSObject
Declared in FM.h

Overview

Bitwise buffer operations.

+ deinterleaveTransformWithInputFrame:inputStart:outputFrame:outputStart:width:height:stride:rotation:reversePlanes:

Deinterleave and transform (rotate) a byte array containing two planes

+ (void)deinterleaveTransformWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation reversePlanes:(bool)reversePlanes

Parameters

name="rotation">Values

0, 90, 180, 270.

name="reversePlanes">Reverse

output plane order.

Discussion

Deinterleave and transform (rotate) a byte array containing two planes

Declared In

FM.h

+ deinterleaveTransformWithInputFrame:outputFrame:width:height:stride:rotation:

Deinterleave and transform (rotate) a byte array containing two planes

+ (void)deinterleaveTransformWithInputFrame:(NSMutableData *)inputFrame outputFrame:(NSMutableData *)outputFrame width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation

Parameters

name="rotation">Values

0, 90, 180, 270.

Discussion

Deinterleave and transform (rotate) a byte array containing two planes

Declared In

FM.h

+ deinterleaveWithInputFrame:inputStart:outputFrame:outputStart:length:reversePlanes:

Deinterleaves a byte array

+ (void)deinterleaveWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart length:(int)length reversePlanes:(bool)reversePlanes

Discussion

Deinterleaves a byte array

Declared In

FM.h

+ deinterleaveWithInputFrame:outputFrame:

Deinterleaves a byte array i.e. XYXYXYXY -> XXXXYYYY

+ (void)deinterleaveWithInputFrame:(NSMutableData *)inputFrame outputFrame:(NSMutableData *)outputFrame

Discussion

Deinterleaves a byte array i.e. XYXYXYXY -> XXXXYYYY

Declared In

FM.h

+ deinterleaveWithInputFrame:outputFrame:inputLength:

Deinterleaves a byte array i.e. XYXYXYXY -> XXXXYYYY

+ (void)deinterleaveWithInputFrame:(NSMutableData *)inputFrame outputFrame:(NSMutableData *)outputFrame inputLength:(int)inputLength

Discussion

Deinterleaves a byte array i.e. XYXYXYXY -> XXXXYYYY

Declared In

FM.h

+ fromBytes16WithInput:inputIndex:littleEndian:

Reads a 16-bit value from a byte array.

+ (int)fromBytes16WithInput:(NSMutableData *)input inputIndex:(int)inputIndex littleEndian:(bool)littleEndian

Parameters

name="input">The

input byte array.

name="littleEndian">Whether

to use little-endian format. The value.

name="inputIndex">The

index to start reading.

Discussion

Reads a 16-bit value from a byte array.

Declared In

FM.h

+ fromBytes24WithInput:inputIndex:littleEndian:

Reads a 24-bit value from a byte array.

+ (int)fromBytes24WithInput:(NSMutableData *)input inputIndex:(int)inputIndex littleEndian:(bool)littleEndian

Parameters

name="input">The

input byte array.

name="littleEndian">Whether

to use little-endian format. The value.

name="inputIndex">The

index to start reading.

Discussion

Reads a 24-bit value from a byte array.

Declared In

FM.h

+ fromBytes32WithInput:inputIndex:littleEndian:

Reads a 32-bit value from a byte array.

+ (long long)fromBytes32WithInput:(NSMutableData *)input inputIndex:(int)inputIndex littleEndian:(bool)littleEndian

Parameters

name="input">The

input byte array.

name="littleEndian">Whether

to use little-endian format. The value.

name="inputIndex">The

index to start reading.

Discussion

Reads a 32-bit value from a byte array.

Declared In

FM.h

+ fromBytes40WithInput:inputIndex:littleEndian:

Reads a 40-bit value from a byte array.

+ (long long)fromBytes40WithInput:(NSMutableData *)input inputIndex:(int)inputIndex littleEndian:(bool)littleEndian

Parameters

name="input">The

input byte array.

name="littleEndian">Whether

to use little-endian format. The value.

name="inputIndex">The

index to start reading.

Discussion

Reads a 40-bit value from a byte array.

Declared In

FM.h

+ fromBytes48WithInput:inputIndex:littleEndian:

Reads a 48-bit value from a byte array.

+ (long long)fromBytes48WithInput:(NSMutableData *)input inputIndex:(int)inputIndex littleEndian:(bool)littleEndian

Parameters

name="input">The

input byte array.

name="littleEndian">Whether

to use little-endian format. The value.

name="inputIndex">The

index to start reading.

Discussion

Reads a 48-bit value from a byte array.

Declared In

FM.h

+ fromBytes56WithInput:inputIndex:littleEndian:

Reads a 56-bit value from a byte array.

+ (long long)fromBytes56WithInput:(NSMutableData *)input inputIndex:(int)inputIndex littleEndian:(bool)littleEndian

Parameters

name="input">The

input byte array.

name="littleEndian">Whether

to use little-endian format. The value.

name="inputIndex">The

index to start reading.

Discussion

Reads a 56-bit value from a byte array.

Declared In

FM.h

+ fromBytes64WithInput:inputIndex:littleEndian:

Reads a 64-bit value from a byte array.

+ (long long)fromBytes64WithInput:(NSMutableData *)input inputIndex:(int)inputIndex littleEndian:(bool)littleEndian

Parameters

name="input">The

input byte array.

name="littleEndian">Whether

to use little-endian format. The value.

name="inputIndex">The

index to start reading.

Discussion

Reads a 64-bit value from a byte array.

Declared In

FM.h

+ interleaveTransformWithInputFrame:inputStart:outputFrame:outputStart:width:height:stride:rotation:

Interleave and transform (rotate) a byte array containing two planes

+ (void)interleaveTransformWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation

Parameters

name="rotation">Values

0, 90, 180, 270.

Discussion

Interleave and transform (rotate) a byte array containing two planes

Declared In

FM.h

+ interleaveTransformWithInputFrame:inputStart:outputFrame:outputStart:width:height:stride:rotation:reversePlanes:

Interleave and transform (rotate) a byte array containing two planes

+ (void)interleaveTransformWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation reversePlanes:(bool)reversePlanes

Parameters

name="rotation">Values

0, 90, 180, 270.

name="reversePlanes">Reverse

output plane order.

Discussion

Interleave and transform (rotate) a byte array containing two planes

Declared In

FM.h

+ interleaveTransformWithInputFrame:outputFrame:width:height:stride:rotation:

Interleave and transform (rotate) a byte array containing two planes

+ (void)interleaveTransformWithInputFrame:(NSMutableData *)inputFrame outputFrame:(NSMutableData *)outputFrame width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation

Parameters

name="rotation">Values

0, 90, 180, 270.

Discussion

Interleave and transform (rotate) a byte array containing two planes

Declared In

FM.h

+ interleaveWithInputFrame:inputStart:outputFrame:outputStart:inputLength:

Interleaves a byte array i.e. XXXXYYYY -> XYXYXYXY

+ (void)interleaveWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart inputLength:(int)inputLength

Discussion

Interleaves a byte array i.e. XXXXYYYY -> XYXYXYXY

Declared In

FM.h

+ interleaveWithInputFrame:inputStart:outputFrame:outputStart:inputLength:reversePlanes:

Interleaves a byte array i.e. XXXXYYYY -> XYXYXYXY

+ (void)interleaveWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart inputLength:(int)inputLength reversePlanes:(bool)reversePlanes

Parameters

name="reversePlanes">XXXXYYYY

-> YXYXYXYX

Discussion

Interleaves a byte array i.e. XXXXYYYY -> XYXYXYXY

Declared In

FM.h

+ interleaveWithInputFrame:outputFrame:

Interleaves a byte array i.e. XXXXYYYY -> XYXYXYXY

+ (void)interleaveWithInputFrame:(NSMutableData *)inputFrame outputFrame:(NSMutableData *)outputFrame

Discussion

Interleaves a byte array i.e. XXXXYYYY -> XYXYXYXY

Declared In

FM.h

+ test

Tests the binary implementation.

+ (void)test

Discussion

Tests the binary implementation.

Declared In

FM.h

+ toBytes16WithValue:littleEndian:

Converts a 16-bit value to a byte array.

+ (NSMutableData *)toBytes16WithValue:(int)value littleEndian:(bool)littleEndian

Parameters

name="littleEndian">Whether

to use little-endian format. The output byte array.

name="value">The

value to write.

Discussion

Converts a 16-bit value to a byte array.

Declared In

FM.h

+ toBytes16WithValue:littleEndian:output:outputIndex:

Writes a 16-bit value to a byte array.

+ (void)toBytes16WithValue:(int)value littleEndian:(bool)littleEndian output:(NSMutableData *)output outputIndex:(int)outputIndex

Parameters

name="output">The

output byte array.

name="outputIndex">The

index to start writing.

name="value">The

value to write.

name="littleEndian">Whether

to use little-endian format.

Discussion

Writes a 16-bit value to a byte array.

Declared In

FM.h

+ toBytes24WithValue:littleEndian:

Converts a 24-bit value to a byte array.

+ (NSMutableData *)toBytes24WithValue:(int)value littleEndian:(bool)littleEndian

Parameters

name="littleEndian">Whether

to use little-endian format. The output byte array.

name="value">The

value to write.

Discussion

Converts a 24-bit value to a byte array.

Declared In

FM.h

+ toBytes24WithValue:littleEndian:output:outputIndex:

Writes a 24-bit value to a byte array.

+ (void)toBytes24WithValue:(int)value littleEndian:(bool)littleEndian output:(NSMutableData *)output outputIndex:(int)outputIndex

Parameters

name="output">The

output byte array.

name="outputIndex">The

index to start writing.

name="value">The

value to write.

name="littleEndian">Whether

to use little-endian format.

Discussion

Writes a 24-bit value to a byte array.

Declared In

FM.h

+ toBytes32WithValue:littleEndian:

Converts a 32-bit value to a byte array.

+ (NSMutableData *)toBytes32WithValue:(long long)value littleEndian:(bool)littleEndian

Parameters

name="littleEndian">Whether

to use little-endian format. The output byte array.

name="value">The

value to write.

Discussion

Converts a 32-bit value to a byte array.

Declared In

FM.h

+ toBytes32WithValue:littleEndian:output:outputIndex:

Writes a 32-bit value to a byte array.

+ (void)toBytes32WithValue:(long long)value littleEndian:(bool)littleEndian output:(NSMutableData *)output outputIndex:(int)outputIndex

Parameters

name="output">The

output byte array.

name="outputIndex">The

index to start writing.

name="value">The

value to write.

name="littleEndian">Whether

to use little-endian format.

Discussion

Writes a 32-bit value to a byte array.

Declared In

FM.h

+ toBytes40WithValue:littleEndian:

Converts a 40-bit value to a byte array.

+ (NSMutableData *)toBytes40WithValue:(long long)value littleEndian:(bool)littleEndian

Parameters

name="littleEndian">Whether

to use little-endian format. The output byte array.

name="value">The

value to write.

Discussion

Converts a 40-bit value to a byte array.

Declared In

FM.h

+ toBytes40WithValue:littleEndian:output:outputIndex:

Writes a 40-bit value to a byte array.

+ (void)toBytes40WithValue:(long long)value littleEndian:(bool)littleEndian output:(NSMutableData *)output outputIndex:(int)outputIndex

Parameters

name="output">The

output byte array.

name="outputIndex">The

index to start writing.

name="value">The

value to write.

name="littleEndian">Whether

to use little-endian format.

Discussion

Writes a 40-bit value to a byte array.

Declared In

FM.h

+ toBytes48WithValue:littleEndian:

Converts a 48-bit value to a byte array.

+ (NSMutableData *)toBytes48WithValue:(long long)value littleEndian:(bool)littleEndian

Parameters

name="littleEndian">Whether

to use little-endian format. The output byte array.

name="value">The

value to write.

Discussion

Converts a 48-bit value to a byte array.

Declared In

FM.h

+ toBytes48WithValue:littleEndian:output:outputIndex:

Writes a 48-bit value to a byte array.

+ (void)toBytes48WithValue:(long long)value littleEndian:(bool)littleEndian output:(NSMutableData *)output outputIndex:(int)outputIndex

Parameters

name="output">The

output byte array.

name="outputIndex">The

index to start writing.

name="value">The

value to write.

name="littleEndian">Whether

to use little-endian format.

Discussion

Writes a 48-bit value to a byte array.

Declared In

FM.h

+ toBytes56WithValue:littleEndian:

Converts a 56-bit value to a byte array.

+ (NSMutableData *)toBytes56WithValue:(long long)value littleEndian:(bool)littleEndian

Parameters

name="littleEndian">Whether

to use little-endian format. The output byte array.

name="value">The

value to write.

Discussion

Converts a 56-bit value to a byte array.

Declared In

FM.h

+ toBytes56WithValue:littleEndian:output:outputIndex:

Writes a 56-bit value to a byte array.

+ (void)toBytes56WithValue:(long long)value littleEndian:(bool)littleEndian output:(NSMutableData *)output outputIndex:(int)outputIndex

Parameters

name="output">The

output byte array.

name="outputIndex">The

index to start writing.

name="value">The

value to write.

name="littleEndian">Whether

to use little-endian format.

Discussion

Writes a 56-bit value to a byte array.

Declared In

FM.h

+ toBytes64WithValue:littleEndian:

Converts a 64-bit value to a byte array.

+ (NSMutableData *)toBytes64WithValue:(long long)value littleEndian:(bool)littleEndian

Parameters

name="littleEndian">Whether

to use little-endian format. The output byte array.

name="value">The

value to write.

Discussion

Converts a 64-bit value to a byte array.

Declared In

FM.h

+ toBytes64WithValue:littleEndian:output:outputIndex:

Writes a 64-bit value to a byte array.

+ (void)toBytes64WithValue:(long long)value littleEndian:(bool)littleEndian output:(NSMutableData *)output outputIndex:(int)outputIndex

Parameters

name="output">The

output byte array.

name="outputIndex">The

index to start writing.

name="value">The

value to write.

name="littleEndian">Whether

to use little-endian format.

Discussion

Writes a 64-bit value to a byte array.

Declared In

FM.h

+ transformWithInputFrame:inputStart:outputFrame:outputStart:width:height:stride:rotation:

Transforms a byte containing a 2D plane (rotates 90, 180, 270)

+ (void)transformWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation

Discussion

Transforms a byte containing a 2D plane (rotates 90, 180, 270)

Declared In

FM.h

+ transformWithInputFrame:inputStart:outputFrame:outputStart:width:height:stride:rotation:chunkLength:

Transforms a byte containing a 2D plane (rotates 90, 180, 270). When transforming interleaved planes. Set the chunkLength to the number of planes.

+ (void)transformWithInputFrame:(NSMutableData *)inputFrame inputStart:(int)inputStart outputFrame:(NSMutableData *)outputFrame outputStart:(int)outputStart width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation chunkLength:(int)chunkLength

Discussion

Transforms a byte containing a 2D plane (rotates 90, 180, 270). When transforming interleaved planes. Set the chunkLength to the number of planes.

Declared In

FM.h

+ transformWithInputFrame:outputFrame:width:height:stride:rotation:

Transforms a byte containing a 2D plane (rotates 90, 180, 270)

+ (void)transformWithInputFrame:(NSMutableData *)inputFrame outputFrame:(NSMutableData *)outputFrame width:(int)width height:(int)height stride:(int)stride rotation:(int)rotation

Discussion

Transforms a byte containing a 2D plane (rotates 90, 180, 270)

Declared In

FM.h