private TS_BITMAP_DATA_EX ParseTsBitmapDataEx(byte[] data, ref int currentIndex)
{
TS_BITMAP_DATA_EX bitmapDataEx = new TS_BITMAP_DATA_EX();
// TS_BITMAP_DATA_EX: bpp
bitmapDataEx.bpp = ParseByte(data, ref currentIndex);
// TS_BITMAP_DATA_EX: flags
bitmapDataEx.flags = (TSBitmapDataExFlags_Values)ParseByte(data, ref currentIndex);
// TS_BITMAP_DATA_EX: reserved
bitmapDataEx.reserved = ParseByte(data, ref currentIndex);
// TS_BITMAP_DATA_EX: codecID
bitmapDataEx.codecID = ParseByte(data, ref currentIndex);
// TS_BITMAP_DATA_EX: width
bitmapDataEx.width = ParseUInt16(data, ref currentIndex, false);
// TS_BITMAP_DATA_EX: height
bitmapDataEx.height = ParseUInt16(data, ref currentIndex, false);
// TS_BITMAP_DATA_EX: bitmapDataLength
bitmapDataEx.bitmapDataLength = ParseUInt32(data, ref currentIndex, false);
if (IsFlagExist((byte)bitmapDataEx.flags, (byte)TSBitmapDataExFlags_Values.EX_COMPRESSED_BITMAP_HEADER_PRESENT))
{
bitmapDataEx.exBitmapDataHeader = ParseExBitmapdataHeader(data, ref currentIndex);
}
// TS_BITMAP_DATA_EX: bitmapData
bitmapDataEx.bitmapData = GetBytes(data, ref currentIndex, (int)bitmapDataEx.bitmapDataLength);
return bitmapDataEx;
}