static internal int FindExtraFieldSegment(byte[] extra, int offx, UInt16 targetHeaderId)
{
int j = offx;
while (j + 3 < extra.Length)
{
UInt16 headerId = (UInt16)(extra[j++] + extra[j++] * 256);
if (headerId == targetHeaderId) return j-2;
// else advance to next segment
Int16 dataSize = (short)(extra[j++] + extra[j++] * 256);
j+= dataSize;
}
return -1;
}