public void Write(Stream outputStream, Encoding encoding)
        {
            BinaryWriter writer = new BinaryWriter(outputStream, encoding, true);

            writer.Write(MagicNumber);
            writer.Write((byte)Lines.Count);
            writer.Write(SubtitlePriority);

            string subtitles = GetJoinedSubtitleLines() + '\0';

            byte[] encodedData = encoding.GetBytes(subtitles);

            writer.Write(Convert.ToInt16(encodedData.Length));
            writer.Write(Convert.ToInt16(encodedData.Length + AdditionalLength));
            writer.Write(CharacterId);
            writer.Write(Flags);

            foreach (var line in Lines)
            {
                SubpTiming timing = line.Timing ?? SubpTiming.Null;
                timing.Write(outputStream);
            }

            writer.Write(encodedData);
        }