Helper class to deal with the many different endianness in binary sofu files.
Autodetects input encoding and converts into and from a stream.

C# |
public class Endianness

All Members | Constructors | Methods | Properties | ||
Icon | Member | Description |
---|---|---|
![]() | Endianness()()() |
Create a new endian encoder using machine order
|
![]() | Endianness(Int32) |
Create a new encian decoder using a sofu byte order mark.
|
![]() | Endianness(array<Byte>[]()[]) |
Create a new encian decoder using a sofu byte order mark.
|
![]() | Endianness(Byte, Byte) |
Create a new encian decoder using a sofu byte order mark.
|
![]() ![]() | BigEndian |
Use big endian as Endianness
|
![]() | ByteOrderMark()()() |
Returns the byte order mark for this Endianness
|
![]() | ConvertLong(UInt32) |
Converts one unsigned integer into a byte array using the current Endianness.
|
![]() | ConvertLong(array<Byte>[]()[]) |
Converts a bytearray into an unsigned integer using the current Endianness
|
![]() | Equals(Object) | (Inherited from Object.) |
![]() | Finalize()()() | (Inherited from Object.) |
![]() | GetHashCode()()() | (Inherited from Object.) |
![]() | GetType()()() | (Inherited from Object.) |
![]() | Is7BIT()()() |
Detects 7 Bit Endianness
|
![]() ![]() | LittleEndian |
Use little endian as Endianness
|
![]() ![]() | MachineOrder |
Use this machines default endianess
|
![]() | MemberwiseClone()()() | (Inherited from Object.) |
![]() ![]() | Only7Bit |
Use integers that don't go over 7 bit.
Useful if your transport stream isn't 8 bit safe.
|
![]() | ToString()()() | (Inherited from Object.) |

Endianness supports only 3 encodings for now, those defined in the binary sofu file format:
0, 1: Big Endian1, 0: Little Endian0, 0: 7-Bit Integers

Convert a some bytes to an integer

byte[] buffer = new byte[2] { 0, 1 }; // Or read it from somewhere Endianness endian = new Endianness(buffer); // Big Endian, This is in fact a binary sofu header part. byte[] input = new byte[4] { 0xdd, 0x65, 0xee, 0x47 }; int i = endian.ConvertLong(input); Console.Out.WriteLine(i); // Writes: 3714444871

Convert an integer back to some bytes

Endianness endian = Endianness.LittleEndian; byte[] output = endian.ConvertLong(3714444871); // output is now { 0x47, 0xee, 0x65, 0xdd }

Object | |
![]() | Endianness |