Beispiel #1
0
        public static async Task <MediaHeaderBox> CreateAsync(IBinaryStream stream, Box box)
        {
            var mdhdBox = new MediaHeaderBox();

            stream.Position = box.Offset + 8;
            mdhdBox.Version = await stream.ReadByteAsync().ConfigureAwait(false);

            mdhdBox.Flags = await stream.ReadInt32Async(3, ByteOrder.BigEndian).ConfigureAwait(false);

            mdhdBox.CreationTime     = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(await stream.ReadInt32Async(ByteOrder.BigEndian).ConfigureAwait(false)).ToLocalTime();
            mdhdBox.ModificationTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(await stream.ReadInt32Async(ByteOrder.BigEndian).ConfigureAwait(false)).ToLocalTime();
            mdhdBox.TimeScale        = await stream.ReadInt32Async(ByteOrder.BigEndian).ConfigureAwait(false);

            mdhdBox.Duration = await stream.ReadInt32Async(ByteOrder.BigEndian).ConfigureAwait(false);

            mdhdBox.Language = await stream.ReadInt16Async(ByteOrder.BigEndian).ConfigureAwait(false);

            mdhdBox.Quality = await stream.ReadInt16Async(ByteOrder.BigEndian).ConfigureAwait(false);

            return(mdhdBox);
        }