mirror of
https://github.com/aaru-dps/Aaru.VideoNow.git
synced 2025-12-16 19:24:36 +00:00
General refactor and cleanup.
This commit is contained in:
@@ -4,8 +4,8 @@ using System.Linq;
|
|||||||
using SharpAvi;
|
using SharpAvi;
|
||||||
using SharpAvi.Output;
|
using SharpAvi.Output;
|
||||||
|
|
||||||
namespace Aaru.VideoNow
|
namespace Aaru.VideoNow;
|
||||||
{
|
|
||||||
public static class Color
|
public static class Color
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -86,8 +86,7 @@ namespace Aaru.VideoNow
|
|||||||
int audioStart = swapped ? 9 : 8;
|
int audioStart = swapped ? 9 : 8;
|
||||||
byte[] frameMarkerToUse = swapped ? SwappedFrameMarker : FrameMarker;
|
byte[] frameMarkerToUse = swapped ? SwappedFrameMarker : FrameMarker;
|
||||||
|
|
||||||
if(!swapped)
|
if(!swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
|
||||||
|
|
||||||
var outFs = new MemoryStream();
|
var outFs = new MemoryStream();
|
||||||
|
|
||||||
@@ -127,8 +126,7 @@ namespace Aaru.VideoNow
|
|||||||
|
|
||||||
Console.Write($"\r{Localization.LookingForMoreFrames}", progress);
|
Console.Write($"\r{Localization.LookingForMoreFrames}", progress);
|
||||||
|
|
||||||
for(int ab = audioStart; ab < buffer.Length; ab += 10)
|
for(int ab = audioStart; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||||
buffer[ab] = 0;
|
|
||||||
|
|
||||||
if(!buffer.SequenceEqual(frameMarkerToUse))
|
if(!buffer.SequenceEqual(frameMarkerToUse))
|
||||||
{
|
{
|
||||||
@@ -141,8 +139,7 @@ namespace Aaru.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(buffer, 0, buffer.Length);
|
fs.Read(buffer, 0, buffer.Length);
|
||||||
|
|
||||||
for(int ab = audioStart; ab < buffer.Length; ab += 10)
|
for(int ab = audioStart; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||||
buffer[ab] = 0;
|
|
||||||
|
|
||||||
if(buffer.SequenceEqual(frameMarkerToUse))
|
if(buffer.SequenceEqual(frameMarkerToUse))
|
||||||
{
|
{
|
||||||
@@ -152,8 +149,7 @@ namespace Aaru.VideoNow
|
|||||||
frameBuffer = new byte[19600];
|
frameBuffer = new byte[19600];
|
||||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||||
|
|
||||||
if(!swapped)
|
if(!swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
|
||||||
|
|
||||||
outFs = new MemoryStream();
|
outFs = new MemoryStream();
|
||||||
|
|
||||||
@@ -179,11 +175,14 @@ namespace Aaru.VideoNow
|
|||||||
totalFrames++;
|
totalFrames++;
|
||||||
Console.Write("\r \r");
|
Console.Write("\r \r");
|
||||||
|
|
||||||
Console.WriteLine(Localization.FrameFoundAtPosition, framePosition, totalFrames,
|
Console.WriteLine(Localization.FrameFoundAtPosition,
|
||||||
|
framePosition,
|
||||||
|
totalFrames,
|
||||||
framePosition - expectedFramePosition);
|
framePosition - expectedFramePosition);
|
||||||
|
|
||||||
Console.
|
Console.WriteLine(framePosition % 2352 == 0
|
||||||
WriteLine(framePosition % 2352 == 0 ? Localization.FrameIsAtSectorBoundary : Localization.FrameIsNotAtSectorBoundary,
|
? Localization.FrameIsAtSectorBoundary
|
||||||
|
: Localization.FrameIsNotAtSectorBoundary,
|
||||||
totalFrames);
|
totalFrames);
|
||||||
|
|
||||||
framePosition += 19600;
|
framePosition += 19600;
|
||||||
@@ -208,8 +207,7 @@ namespace Aaru.VideoNow
|
|||||||
frameBuffer = new byte[19600];
|
frameBuffer = new byte[19600];
|
||||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||||
|
|
||||||
if(!swapped)
|
if(!swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
|
||||||
|
|
||||||
outFs = new MemoryStream();
|
outFs = new MemoryStream();
|
||||||
|
|
||||||
@@ -280,8 +278,7 @@ namespace Aaru.VideoNow
|
|||||||
videoFs.WriteByte(g);
|
videoFs.WriteByte(g);
|
||||||
videoFs.WriteByte(b);
|
videoFs.WriteByte(b);
|
||||||
|
|
||||||
r = (byte)((frameBuffer[indexBlock2 + 1] & 0xF0) +
|
r = (byte)((frameBuffer[indexBlock2 + 1] & 0xF0) + ((frameBuffer[indexBlock2 + 1] & 0xF0) >> 4));
|
||||||
((frameBuffer[indexBlock2 + 1] & 0xF0) >> 4));
|
|
||||||
|
|
||||||
b = (byte)((frameBuffer[index] & 0x0F) + ((frameBuffer[index] & 0x0F) << 4));
|
b = (byte)((frameBuffer[index] & 0x0F) + ((frameBuffer[index] & 0x0F) << 4));
|
||||||
g = (byte)((frameBuffer[index + 1] & 0xF0) + ((frameBuffer[index + 1] & 0xF0) >> 4));
|
g = (byte)((frameBuffer[index + 1] & 0xF0) + ((frameBuffer[index + 1] & 0xF0) >> 4));
|
||||||
@@ -291,18 +288,15 @@ namespace Aaru.VideoNow
|
|||||||
|
|
||||||
r = (byte)((frameBuffer[index + 1] & 0x0F) + ((frameBuffer[index + 1] & 0x0F) << 4));
|
r = (byte)((frameBuffer[index + 1] & 0x0F) + ((frameBuffer[index + 1] & 0x0F) << 4));
|
||||||
|
|
||||||
b = (byte)((frameBuffer[indexBlock2 + 1] & 0x0F) +
|
b = (byte)((frameBuffer[indexBlock2 + 1] & 0x0F) + ((frameBuffer[indexBlock2 + 1] & 0x0F) << 4));
|
||||||
((frameBuffer[indexBlock2 + 1] & 0x0F) << 4));
|
|
||||||
|
|
||||||
g = (byte)((frameBuffer[indexBlock2 + 2] & 0xF0) +
|
g = (byte)((frameBuffer[indexBlock2 + 2] & 0xF0) + ((frameBuffer[indexBlock2 + 2] & 0xF0) >> 4));
|
||||||
((frameBuffer[indexBlock2 + 2] & 0xF0) >> 4));
|
|
||||||
|
|
||||||
videoFs.WriteByte(r);
|
videoFs.WriteByte(r);
|
||||||
videoFs.WriteByte(g);
|
videoFs.WriteByte(g);
|
||||||
videoFs.WriteByte(b);
|
videoFs.WriteByte(b);
|
||||||
|
|
||||||
r = (byte)((frameBuffer[index + 120 + 2] & 0x0F) +
|
r = (byte)((frameBuffer[index + 120 + 2] & 0x0F) + ((frameBuffer[index + 120 + 2] & 0x0F) << 4));
|
||||||
((frameBuffer[index + 120 + 2] & 0x0F) << 4));
|
|
||||||
|
|
||||||
b = (byte)((frameBuffer[index + 2] & 0xF0) + ((frameBuffer[index + 2] & 0xF0) >> 4));
|
b = (byte)((frameBuffer[index + 2] & 0xF0) + ((frameBuffer[index + 2] & 0xF0) >> 4));
|
||||||
g = (byte)((frameBuffer[index + 2] & 0x0F) + ((frameBuffer[index + 2] & 0x0F) << 4));
|
g = (byte)((frameBuffer[index + 2] & 0x0F) + ((frameBuffer[index + 2] & 0x0F) << 4));
|
||||||
@@ -324,11 +318,9 @@ namespace Aaru.VideoNow
|
|||||||
|
|
||||||
for(var row = 0; row < 80; row++)
|
for(var row = 0; row < 80; row++)
|
||||||
{
|
{
|
||||||
for(var p = 0; p < 432; p++)
|
for(var p = 0; p < 432; p++) frameBuffer[row * 432 + p] = frameBuffer2[row * 432 + (431 - p)];
|
||||||
frameBuffer[row * 432 + p] = frameBuffer2[row * 432 + (431 - p)];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return frameBuffer;
|
return frameBuffer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -37,24 +37,18 @@ using System.Reflection;
|
|||||||
|
|
||||||
// ReSharper disable LocalizableElement
|
// ReSharper disable LocalizableElement
|
||||||
|
|
||||||
namespace Aaru.VideoNow
|
namespace Aaru.VideoNow;
|
||||||
{
|
|
||||||
internal static class MainClass
|
static class MainClass
|
||||||
{
|
{
|
||||||
const int MAX_SIZE = 635040000;
|
const int MAX_SIZE = 635040000;
|
||||||
static string _assemblyCopyright;
|
static string _assemblyCopyright;
|
||||||
static string _assemblyTitle;
|
static string _assemblyTitle;
|
||||||
static AssemblyInformationalVersionAttribute _assemblyVersion;
|
static AssemblyInformationalVersionAttribute _assemblyVersion;
|
||||||
|
|
||||||
static readonly byte[] FrameStart =
|
static readonly byte[] FrameStart = [0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81];
|
||||||
[
|
|
||||||
0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81
|
|
||||||
];
|
|
||||||
|
|
||||||
static readonly byte[] SwappedFrameStart =
|
static readonly byte[] SwappedFrameStart = [0x81, 0xE3, 0xE3, 0xC7, 0xC7, 0x81, 0x81, 0xE3];
|
||||||
[
|
|
||||||
0x81, 0xE3, 0xE3, 0xC7, 0xC7, 0x81, 0x81, 0xE3
|
|
||||||
];
|
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
@@ -63,8 +57,8 @@ namespace Aaru.VideoNow
|
|||||||
attributes = typeof(MainClass).Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
|
attributes = typeof(MainClass).Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
|
||||||
|
|
||||||
_assemblyVersion =
|
_assemblyVersion =
|
||||||
Attribute.GetCustomAttribute(typeof(MainClass).Assembly, typeof(AssemblyInformationalVersionAttribute))
|
Attribute.GetCustomAttribute(typeof(MainClass).Assembly, typeof(AssemblyInformationalVersionAttribute)) as
|
||||||
as AssemblyInformationalVersionAttribute;
|
AssemblyInformationalVersionAttribute;
|
||||||
|
|
||||||
_assemblyCopyright = ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
|
_assemblyCopyright = ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
|
||||||
|
|
||||||
@@ -121,8 +115,7 @@ namespace Aaru.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(startBuffer, 0, startBuffer.Length);
|
fs.Read(startBuffer, 0, startBuffer.Length);
|
||||||
|
|
||||||
if(!startBuffer.SequenceEqual(FrameStart) &&
|
if(!startBuffer.SequenceEqual(FrameStart) && !startBuffer.SequenceEqual(SwappedFrameStart))
|
||||||
!startBuffer.SequenceEqual(SwappedFrameStart))
|
|
||||||
{
|
{
|
||||||
framePosition++;
|
framePosition++;
|
||||||
|
|
||||||
@@ -132,17 +125,14 @@ namespace Aaru.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(buffer, 0, buffer.Length);
|
fs.Read(buffer, 0, buffer.Length);
|
||||||
|
|
||||||
for(var ab = 8; ab < buffer.Length; ab += 10)
|
for(var ab = 8; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||||
buffer[ab] = 0;
|
|
||||||
|
|
||||||
if(buffer.SequenceEqual(Color.FrameMarker))
|
if(buffer.SequenceEqual(Color.FrameMarker)) break;
|
||||||
break;
|
|
||||||
|
|
||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(swappedBuffer, 0, swappedBuffer.Length);
|
fs.Read(swappedBuffer, 0, swappedBuffer.Length);
|
||||||
|
|
||||||
for(var ab = 9; ab < swappedBuffer.Length; ab += 10)
|
for(var ab = 9; ab < swappedBuffer.Length; ab += 10) swappedBuffer[ab] = 0;
|
||||||
swappedBuffer[ab] = 0;
|
|
||||||
|
|
||||||
if(swappedBuffer.SequenceEqual(Color.SwappedFrameMarker))
|
if(swappedBuffer.SequenceEqual(Color.SwappedFrameMarker))
|
||||||
{
|
{
|
||||||
@@ -154,8 +144,7 @@ namespace Aaru.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(xpBuffer, 0, xpBuffer.Length);
|
fs.Read(xpBuffer, 0, xpBuffer.Length);
|
||||||
|
|
||||||
for(var i = 0; i < xpBuffer.Length; i++)
|
for(var i = 0; i < xpBuffer.Length; i++) xpBuffer[i] &= Xp.FrameMask[i];
|
||||||
xpBuffer[i] &= Xp.FrameMask[i];
|
|
||||||
|
|
||||||
if(xpBuffer.SequenceEqual(Xp.FrameMarker))
|
if(xpBuffer.SequenceEqual(Xp.FrameMarker))
|
||||||
{
|
{
|
||||||
@@ -167,8 +156,7 @@ namespace Aaru.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(xpSwappedBuffer, 0, xpSwappedBuffer.Length);
|
fs.Read(xpSwappedBuffer, 0, xpSwappedBuffer.Length);
|
||||||
|
|
||||||
for(var i = 0; i < xpSwappedBuffer.Length; i++)
|
for(var i = 0; i < xpSwappedBuffer.Length; i++) xpSwappedBuffer[i] &= Xp.SwappedFrameMask[i];
|
||||||
xpSwappedBuffer[i] &= Xp.SwappedFrameMask[i];
|
|
||||||
|
|
||||||
if(xpSwappedBuffer.SequenceEqual(Xp.SwappedFrameMarker))
|
if(xpSwappedBuffer.SequenceEqual(Xp.SwappedFrameMarker))
|
||||||
{
|
{
|
||||||
@@ -193,7 +181,8 @@ namespace Aaru.VideoNow
|
|||||||
|
|
||||||
Console.WriteLine(Localization.FirstFrameFoundAt, framePosition);
|
Console.WriteLine(Localization.FirstFrameFoundAt, framePosition);
|
||||||
|
|
||||||
Console.WriteLine(framePosition % 2352 == 0 ? Localization.FirstFrameIsAtSectorBoundary
|
Console.WriteLine(framePosition % 2352 == 0
|
||||||
|
? Localization.FirstFrameIsAtSectorBoundary
|
||||||
: Localization.FirstFrameIsNotAtSectorBoundary);
|
: Localization.FirstFrameIsNotAtSectorBoundary);
|
||||||
|
|
||||||
if(xp)
|
if(xp)
|
||||||
@@ -211,4 +200,3 @@ namespace Aaru.VideoNow
|
|||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Uso: Aaru.VideoNow dump.raw</value>
|
<value>Uso: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Usage: Aaru.VideoNow dump.raw</value>
|
<value>Usage: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Utilizzo: Aaru.VideoNow dump.raw</value>
|
<value>Utilizzo: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Usage: Aaru.VideoNow dump.raw</value>
|
<value>Usage: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Utilização: Aaru.VideoNow dump.raw</value>
|
<value>Utilização: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Utilização: Aaru.VideoNow dump.raw</value>
|
<value>Utilização: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<root>
|
<root>
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true"></xsd:element>
|
<xsd:element name="root" msdata:IsDataSet="true"></xsd:element>
|
||||||
</xsd:schema>
|
</xsd:schema>
|
||||||
<resheader name="resmimetype">
|
<resheader name="resmimetype">
|
||||||
@@ -69,10 +70,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Usage: Aaru.VideoNow dump.raw</value>
|
<value>Usage: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Folosire: Aaru.VideoNow dump.raw</value>
|
<value>Folosire: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Использование: Aaru.VideoNow dump.raw</value>
|
<value>Использование: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -59,7 +59,8 @@
|
|||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root"
|
||||||
|
xmlns="">
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
@@ -93,10 +94,14 @@
|
|||||||
<value>1.3</value>
|
<value>1.3</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral,
|
||||||
|
PublicKeyToken=b77a5c561934e089
|
||||||
|
</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="Usage" xml:space="preserve">
|
<data name="Usage" xml:space="preserve">
|
||||||
<value>Användning: Aaru.VideoNow dump.raw</value>
|
<value>Användning: Aaru.VideoNow dump.raw</value>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
namespace Aaru.VideoNow
|
namespace Aaru.VideoNow;
|
||||||
{
|
|
||||||
public static class Swapping
|
public static class Swapping
|
||||||
{
|
{
|
||||||
public static byte[] SwapBuffer(byte[] buffer)
|
public static byte[] SwapBuffer(byte[] buffer)
|
||||||
@@ -15,4 +15,3 @@ namespace Aaru.VideoNow
|
|||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
@@ -4,8 +4,8 @@ using System.Linq;
|
|||||||
using SharpAvi;
|
using SharpAvi;
|
||||||
using SharpAvi.Output;
|
using SharpAvi.Output;
|
||||||
|
|
||||||
namespace Aaru.VideoNow
|
namespace Aaru.VideoNow;
|
||||||
{
|
|
||||||
public static class Xp
|
public static class Xp
|
||||||
{
|
{
|
||||||
public static readonly byte[] FrameMask =
|
public static readonly byte[] FrameMask =
|
||||||
@@ -173,8 +173,7 @@ namespace Aaru.VideoNow
|
|||||||
byte[] frameMarkerToUse = swapped ? SwappedFrameMarker : FrameMarker;
|
byte[] frameMarkerToUse = swapped ? SwappedFrameMarker : FrameMarker;
|
||||||
byte[] frameMaskToUse = swapped ? SwappedFrameMask : FrameMask;
|
byte[] frameMaskToUse = swapped ? SwappedFrameMask : FrameMask;
|
||||||
|
|
||||||
if(swapped)
|
if(swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
|
||||||
|
|
||||||
var outFs = new MemoryStream();
|
var outFs = new MemoryStream();
|
||||||
|
|
||||||
@@ -214,8 +213,7 @@ namespace Aaru.VideoNow
|
|||||||
|
|
||||||
Console.Write($"\r{Localization.LookingForMoreFrames}", progress);
|
Console.Write($"\r{Localization.LookingForMoreFrames}", progress);
|
||||||
|
|
||||||
for(var i = 0; i < buffer.Length; i++)
|
for(var i = 0; i < buffer.Length; i++) buffer[i] &= frameMaskToUse[i];
|
||||||
buffer[i] &= frameMaskToUse[i];
|
|
||||||
|
|
||||||
if(!buffer.SequenceEqual(frameMarkerToUse))
|
if(!buffer.SequenceEqual(frameMarkerToUse))
|
||||||
{
|
{
|
||||||
@@ -228,8 +226,7 @@ namespace Aaru.VideoNow
|
|||||||
fs.Position = framePosition;
|
fs.Position = framePosition;
|
||||||
fs.Read(buffer, 0, buffer.Length);
|
fs.Read(buffer, 0, buffer.Length);
|
||||||
|
|
||||||
for(var i = 0; i < buffer.Length; i++)
|
for(var i = 0; i < buffer.Length; i++) buffer[i] &= frameMaskToUse[i];
|
||||||
buffer[i] &= frameMaskToUse[i];
|
|
||||||
|
|
||||||
if(buffer.SequenceEqual(frameMarkerToUse))
|
if(buffer.SequenceEqual(frameMarkerToUse))
|
||||||
{
|
{
|
||||||
@@ -239,8 +236,7 @@ namespace Aaru.VideoNow
|
|||||||
frameBuffer = new byte[19760];
|
frameBuffer = new byte[19760];
|
||||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||||
|
|
||||||
if(swapped)
|
if(swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
|
||||||
|
|
||||||
outFs = new MemoryStream();
|
outFs = new MemoryStream();
|
||||||
|
|
||||||
@@ -266,11 +262,14 @@ namespace Aaru.VideoNow
|
|||||||
totalFrames++;
|
totalFrames++;
|
||||||
Console.Write("\r \r");
|
Console.Write("\r \r");
|
||||||
|
|
||||||
Console.WriteLine(Localization.FrameFoundAtPosition, framePosition, totalFrames,
|
Console.WriteLine(Localization.FrameFoundAtPosition,
|
||||||
|
framePosition,
|
||||||
|
totalFrames,
|
||||||
framePosition - expectedFramePosition);
|
framePosition - expectedFramePosition);
|
||||||
|
|
||||||
Console.
|
Console.WriteLine(framePosition % 2352 == 0
|
||||||
WriteLine(framePosition % 2352 == 0 ? Localization.FrameIsAtSectorBoundary : Localization.FrameIsNotAtSectorBoundary,
|
? Localization.FrameIsAtSectorBoundary
|
||||||
|
: Localization.FrameIsNotAtSectorBoundary,
|
||||||
totalFrames);
|
totalFrames);
|
||||||
|
|
||||||
framePosition += 19760;
|
framePosition += 19760;
|
||||||
@@ -295,8 +294,7 @@ namespace Aaru.VideoNow
|
|||||||
frameBuffer = new byte[19760];
|
frameBuffer = new byte[19760];
|
||||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||||
|
|
||||||
if(swapped)
|
if(swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
|
||||||
|
|
||||||
outFs = new MemoryStream();
|
outFs = new MemoryStream();
|
||||||
|
|
||||||
@@ -332,4 +330,3 @@ namespace Aaru.VideoNow
|
|||||||
aviWriter.Close();
|
aviWriter.Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user