The TS_UPDATE_PALETTE_DATA encapsulates the palette data that defines a Palette Update (section 2.2.9.1.1.3.1.1).
        /// <summary>
        /// parse TS_UPDATE_PALETTE_DATA
        /// (parser index is updated according to parsed length)
        /// </summary>
        /// <param name="data">data to be parsed</param>
        /// <param name="currentIndex">current parser index</param>
        /// <returns>TS_UPDATE_PALETTE_DATA</returns>
        private TS_UPDATE_PALETTE_DATA ParseTsUpdatePaletteData(byte[] data, ref int currentIndex)
        {
            TS_UPDATE_PALETTE_DATA paletteData = new TS_UPDATE_PALETTE_DATA();

            // TS_UPDATE_PALETTE: updateType
            paletteData.updateType = (updateType_Values)ParseUInt16(data, ref currentIndex, false);

            // TS_UPDATE_PALETTE: pad2Octets
            paletteData.pad2Octets = ParseUInt16(data, ref currentIndex, false);

            // TS_UPDATE_PALETTE: numberColors
            paletteData.numberColors = ParseUInt32(data, ref currentIndex, false);

            // TS_UPDATE_PALETTE: paletteData
            paletteData.paletteEntries = new TS_PALETTE_ENTRY[paletteData.numberColors];
            for (int i = 0; i < paletteData.paletteEntries.Length; i++)
            {
                paletteData.paletteEntries[i] = ParseTsPaletteEntry(data, ref currentIndex);
            }

            return paletteData;
        }