mirror of
https://github.com/aaru-dps/Aaru.VideoNow.git
synced 2025-12-16 19:24:36 +00:00
Find complete frame markers.
This commit is contained in:
@@ -43,10 +43,38 @@ namespace DiscImageChef.VideoNow
|
|||||||
static string AssemblyCopyright;
|
static string AssemblyCopyright;
|
||||||
static string AssemblyTitle;
|
static string AssemblyTitle;
|
||||||
static AssemblyInformationalVersionAttribute AssemblyVersion;
|
static AssemblyInformationalVersionAttribute AssemblyVersion;
|
||||||
|
//
|
||||||
|
/// <summary>
|
||||||
|
/// This is some kind of header. Every 10 bytes there's an audio byte. Here it is without reordering from little
|
||||||
|
/// endian, so the first appearence is at 9th byte.
|
||||||
|
/// </summary>
|
||||||
static readonly byte[] frameMarker =
|
static readonly byte[] frameMarker =
|
||||||
{
|
{
|
||||||
0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81
|
0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3,
|
||||||
};
|
0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3,
|
||||||
|
0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3,
|
||||||
|
0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81,
|
||||||
|
0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81,
|
||||||
|
0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81,
|
||||||
|
0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00,
|
||||||
|
0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7,
|
||||||
|
0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7,
|
||||||
|
0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7,
|
||||||
|
0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3,
|
||||||
|
0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3,
|
||||||
|
0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3,
|
||||||
|
0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0x00, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81,
|
||||||
|
0x00, 0xC7, 0x00, 0x00, 0x01, 0x02, 0x02, 0x04, 0x03, 0x06, 0x00, 0xFF, 0x04, 0x08, 0x05, 0x0A, 0x06,
|
||||||
|
0x0C, 0x07, 0x0E, 0x00, 0xFF, 0x08, 0x11, 0x09, 0x13, 0x0A, 0x15, 0x0B, 0x17, 0x00, 0xFF, 0x0C, 0x19,
|
||||||
|
0x0D, 0x1B, 0x0E, 0x1D, 0x0F, 0x1F, 0x00, 0xFF, 0x28, 0x00, 0x29, 0x02, 0x2A, 0x04, 0x2B, 0x06, 0x00,
|
||||||
|
0xFF, 0x2C, 0x08, 0x2D, 0x0A, 0x2E, 0x0C, 0x2F, 0x0E, 0x00, 0xFF, 0x30, 0x11, 0x31, 0x13, 0x32, 0x15,
|
||||||
|
0x33, 0x17, 0x00, 0xFF, 0x34, 0x19, 0x35, 0x1B, 0x36, 0x1D, 0x37, 0x1F, 0x00, 0xFF, 0x38, 0x00, 0x39,
|
||||||
|
0x02, 0x3A, 0x04, 0x3B, 0x06, 0x00, 0xFF, 0x3C, 0x08, 0x3D, 0x0A, 0x3E, 0x0C, 0x3F, 0x0E, 0x00, 0xFF,
|
||||||
|
0x40, 0x11, 0x41, 0x13, 0x42, 0x15, 0x43, 0x17, 0x00, 0xFF, 0x44, 0x19, 0x45, 0x1B, 0x46, 0x1D, 0x47,
|
||||||
|
0x1F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF
|
||||||
|
};
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
@@ -97,11 +125,15 @@ namespace DiscImageChef.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(buffer, 0, buffer.Length);
|
fs.Read(buffer, 0, buffer.Length);
|
||||||
|
|
||||||
|
for(int ab = 8; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||||
|
|
||||||
if(buffer.SequenceEqual(frameMarker)) break;
|
if(buffer.SequenceEqual(frameMarker)) break;
|
||||||
|
|
||||||
framePosition++;
|
framePosition++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(int ab = 8; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||||
|
|
||||||
if(!buffer.SequenceEqual(frameMarker))
|
if(!buffer.SequenceEqual(frameMarker))
|
||||||
{
|
{
|
||||||
Console.WriteLine("Could not find any frame!");
|
Console.WriteLine("Could not find any frame!");
|
||||||
@@ -135,6 +167,8 @@ namespace DiscImageChef.VideoNow
|
|||||||
|
|
||||||
Console.Write("\rLooking for more frames {0}", progress);
|
Console.Write("\rLooking for more frames {0}", progress);
|
||||||
|
|
||||||
|
for(int ab = 8; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||||
|
|
||||||
if(!buffer.SequenceEqual(frameMarker))
|
if(!buffer.SequenceEqual(frameMarker))
|
||||||
{
|
{
|
||||||
Console.Write("\r \r");
|
Console.Write("\r \r");
|
||||||
@@ -146,6 +180,8 @@ namespace DiscImageChef.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(buffer, 0, buffer.Length);
|
fs.Read(buffer, 0, buffer.Length);
|
||||||
|
|
||||||
|
for(int ab = 8; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||||
|
|
||||||
if(buffer.SequenceEqual(frameMarker))
|
if(buffer.SequenceEqual(frameMarker))
|
||||||
{
|
{
|
||||||
totalFrames++;
|
totalFrames++;
|
||||||
|
|||||||
Reference in New Issue
Block a user