mirror of
https://github.com/NohamR/N_m3u8DL-RE.git
synced 2025-05-24 00:48:58 +00:00
62 lines
1.4 KiB
C#
62 lines
1.4 KiB
C#
namespace Mp4SubtitleParser;
|
|
|
|
// make BinaryReader in Big Endian
|
|
class BinaryReader2 : BinaryReader
|
|
{
|
|
public BinaryReader2(System.IO.Stream stream) : base(stream) { }
|
|
|
|
public bool HasMoreData()
|
|
{
|
|
return BaseStream.Position < BaseStream.Length;
|
|
}
|
|
|
|
public long GetLength()
|
|
{
|
|
return BaseStream.Length;
|
|
}
|
|
|
|
public long GetPosition()
|
|
{
|
|
return BaseStream.Position;
|
|
}
|
|
|
|
public override int ReadInt32()
|
|
{
|
|
var data = base.ReadBytes(4);
|
|
if (BitConverter.IsLittleEndian)
|
|
Array.Reverse(data);
|
|
return BitConverter.ToInt32(data, 0);
|
|
}
|
|
|
|
public override short ReadInt16()
|
|
{
|
|
var data = base.ReadBytes(2);
|
|
if (BitConverter.IsLittleEndian)
|
|
Array.Reverse(data);
|
|
return BitConverter.ToInt16(data, 0);
|
|
}
|
|
|
|
public override long ReadInt64()
|
|
{
|
|
var data = base.ReadBytes(8);
|
|
if (BitConverter.IsLittleEndian)
|
|
Array.Reverse(data);
|
|
return BitConverter.ToInt64(data, 0);
|
|
}
|
|
|
|
public override uint ReadUInt32()
|
|
{
|
|
var data = base.ReadBytes(4);
|
|
if (BitConverter.IsLittleEndian)
|
|
Array.Reverse(data);
|
|
return BitConverter.ToUInt32(data, 0);
|
|
}
|
|
|
|
public override ulong ReadUInt64()
|
|
{
|
|
var data = base.ReadBytes(8);
|
|
if (BitConverter.IsLittleEndian)
|
|
Array.Reverse(data);
|
|
return BitConverter.ToUInt64(data, 0);
|
|
}
|
|
} |