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.Output;
|
||||
|
||||
namespace Aaru.VideoNow
|
||||
{
|
||||
namespace Aaru.VideoNow;
|
||||
|
||||
public static class Color
|
||||
{
|
||||
/// <summary>
|
||||
@@ -86,8 +86,7 @@ namespace Aaru.VideoNow
|
||||
int audioStart = swapped ? 9 : 8;
|
||||
byte[] frameMarkerToUse = swapped ? SwappedFrameMarker : FrameMarker;
|
||||
|
||||
if(!swapped)
|
||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
if(!swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
|
||||
var outFs = new MemoryStream();
|
||||
|
||||
@@ -127,8 +126,7 @@ namespace Aaru.VideoNow
|
||||
|
||||
Console.Write($"\r{Localization.LookingForMoreFrames}", progress);
|
||||
|
||||
for(int ab = audioStart; ab < buffer.Length; ab += 10)
|
||||
buffer[ab] = 0;
|
||||
for(int ab = audioStart; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||
|
||||
if(!buffer.SequenceEqual(frameMarkerToUse))
|
||||
{
|
||||
@@ -141,8 +139,7 @@ namespace Aaru.VideoNow
|
||||
fs.Position = framePosition;
|
||||
fs.Read(buffer, 0, buffer.Length);
|
||||
|
||||
for(int ab = audioStart; ab < buffer.Length; ab += 10)
|
||||
buffer[ab] = 0;
|
||||
for(int ab = audioStart; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||
|
||||
if(buffer.SequenceEqual(frameMarkerToUse))
|
||||
{
|
||||
@@ -152,8 +149,7 @@ namespace Aaru.VideoNow
|
||||
frameBuffer = new byte[19600];
|
||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||
|
||||
if(!swapped)
|
||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
if(!swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
|
||||
outFs = new MemoryStream();
|
||||
|
||||
@@ -179,11 +175,14 @@ namespace Aaru.VideoNow
|
||||
totalFrames++;
|
||||
Console.Write("\r \r");
|
||||
|
||||
Console.WriteLine(Localization.FrameFoundAtPosition, framePosition, totalFrames,
|
||||
Console.WriteLine(Localization.FrameFoundAtPosition,
|
||||
framePosition,
|
||||
totalFrames,
|
||||
framePosition - expectedFramePosition);
|
||||
|
||||
Console.
|
||||
WriteLine(framePosition % 2352 == 0 ? Localization.FrameIsAtSectorBoundary : Localization.FrameIsNotAtSectorBoundary,
|
||||
Console.WriteLine(framePosition % 2352 == 0
|
||||
? Localization.FrameIsAtSectorBoundary
|
||||
: Localization.FrameIsNotAtSectorBoundary,
|
||||
totalFrames);
|
||||
|
||||
framePosition += 19600;
|
||||
@@ -208,8 +207,7 @@ namespace Aaru.VideoNow
|
||||
frameBuffer = new byte[19600];
|
||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||
|
||||
if(!swapped)
|
||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
if(!swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
|
||||
outFs = new MemoryStream();
|
||||
|
||||
@@ -280,8 +278,7 @@ namespace Aaru.VideoNow
|
||||
videoFs.WriteByte(g);
|
||||
videoFs.WriteByte(b);
|
||||
|
||||
r = (byte)((frameBuffer[indexBlock2 + 1] & 0xF0) +
|
||||
((frameBuffer[indexBlock2 + 1] & 0xF0) >> 4));
|
||||
r = (byte)((frameBuffer[indexBlock2 + 1] & 0xF0) + ((frameBuffer[indexBlock2 + 1] & 0xF0) >> 4));
|
||||
|
||||
b = (byte)((frameBuffer[index] & 0x0F) + ((frameBuffer[index] & 0x0F) << 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));
|
||||
|
||||
b = (byte)((frameBuffer[indexBlock2 + 1] & 0x0F) +
|
||||
((frameBuffer[indexBlock2 + 1] & 0x0F) << 4));
|
||||
b = (byte)((frameBuffer[indexBlock2 + 1] & 0x0F) + ((frameBuffer[indexBlock2 + 1] & 0x0F) << 4));
|
||||
|
||||
g = (byte)((frameBuffer[indexBlock2 + 2] & 0xF0) +
|
||||
((frameBuffer[indexBlock2 + 2] & 0xF0) >> 4));
|
||||
g = (byte)((frameBuffer[indexBlock2 + 2] & 0xF0) + ((frameBuffer[indexBlock2 + 2] & 0xF0) >> 4));
|
||||
|
||||
videoFs.WriteByte(r);
|
||||
videoFs.WriteByte(g);
|
||||
videoFs.WriteByte(b);
|
||||
|
||||
r = (byte)((frameBuffer[index + 120 + 2] & 0x0F) +
|
||||
((frameBuffer[index + 120 + 2] & 0x0F) << 4));
|
||||
r = (byte)((frameBuffer[index + 120 + 2] & 0x0F) + ((frameBuffer[index + 120 + 2] & 0x0F) << 4));
|
||||
|
||||
b = (byte)((frameBuffer[index + 2] & 0xF0) + ((frameBuffer[index + 2] & 0xF0) >> 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 p = 0; p < 432; p++)
|
||||
frameBuffer[row * 432 + p] = frameBuffer2[row * 432 + (431 - p)];
|
||||
for(var p = 0; p < 432; p++) frameBuffer[row * 432 + p] = frameBuffer2[row * 432 + (431 - p)];
|
||||
}
|
||||
|
||||
return frameBuffer;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37,24 +37,18 @@ using System.Reflection;
|
||||
|
||||
// ReSharper disable LocalizableElement
|
||||
|
||||
namespace Aaru.VideoNow
|
||||
{
|
||||
internal static class MainClass
|
||||
namespace Aaru.VideoNow;
|
||||
|
||||
static class MainClass
|
||||
{
|
||||
const int MAX_SIZE = 635040000;
|
||||
static string _assemblyCopyright;
|
||||
static string _assemblyTitle;
|
||||
static AssemblyInformationalVersionAttribute _assemblyVersion;
|
||||
|
||||
static readonly byte[] FrameStart =
|
||||
[
|
||||
0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81
|
||||
];
|
||||
static readonly byte[] FrameStart = [0xE3, 0x81, 0xC7, 0xE3, 0x81, 0xC7, 0xE3, 0x81];
|
||||
|
||||
static readonly byte[] SwappedFrameStart =
|
||||
[
|
||||
0x81, 0xE3, 0xE3, 0xC7, 0xC7, 0x81, 0x81, 0xE3
|
||||
];
|
||||
static readonly byte[] SwappedFrameStart = [0x81, 0xE3, 0xE3, 0xC7, 0xC7, 0x81, 0x81, 0xE3];
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
@@ -63,8 +57,8 @@ namespace Aaru.VideoNow
|
||||
attributes = typeof(MainClass).Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
|
||||
|
||||
_assemblyVersion =
|
||||
Attribute.GetCustomAttribute(typeof(MainClass).Assembly, typeof(AssemblyInformationalVersionAttribute))
|
||||
as AssemblyInformationalVersionAttribute;
|
||||
Attribute.GetCustomAttribute(typeof(MainClass).Assembly, typeof(AssemblyInformationalVersionAttribute)) as
|
||||
AssemblyInformationalVersionAttribute;
|
||||
|
||||
_assemblyCopyright = ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
|
||||
|
||||
@@ -121,8 +115,7 @@ namespace Aaru.VideoNow
|
||||
fs.Position = framePosition;
|
||||
fs.Read(startBuffer, 0, startBuffer.Length);
|
||||
|
||||
if(!startBuffer.SequenceEqual(FrameStart) &&
|
||||
!startBuffer.SequenceEqual(SwappedFrameStart))
|
||||
if(!startBuffer.SequenceEqual(FrameStart) && !startBuffer.SequenceEqual(SwappedFrameStart))
|
||||
{
|
||||
framePosition++;
|
||||
|
||||
@@ -132,17 +125,14 @@ namespace Aaru.VideoNow
|
||||
fs.Position = framePosition;
|
||||
fs.Read(buffer, 0, buffer.Length);
|
||||
|
||||
for(var ab = 8; ab < buffer.Length; ab += 10)
|
||||
buffer[ab] = 0;
|
||||
for(var ab = 8; ab < buffer.Length; ab += 10) buffer[ab] = 0;
|
||||
|
||||
if(buffer.SequenceEqual(Color.FrameMarker))
|
||||
break;
|
||||
if(buffer.SequenceEqual(Color.FrameMarker)) break;
|
||||
|
||||
fs.Position = framePosition;
|
||||
fs.Read(swappedBuffer, 0, swappedBuffer.Length);
|
||||
|
||||
for(var ab = 9; ab < swappedBuffer.Length; ab += 10)
|
||||
swappedBuffer[ab] = 0;
|
||||
for(var ab = 9; ab < swappedBuffer.Length; ab += 10) swappedBuffer[ab] = 0;
|
||||
|
||||
if(swappedBuffer.SequenceEqual(Color.SwappedFrameMarker))
|
||||
{
|
||||
@@ -154,8 +144,7 @@ namespace Aaru.VideoNow
|
||||
fs.Position = framePosition;
|
||||
fs.Read(xpBuffer, 0, xpBuffer.Length);
|
||||
|
||||
for(var i = 0; i < xpBuffer.Length; i++)
|
||||
xpBuffer[i] &= Xp.FrameMask[i];
|
||||
for(var i = 0; i < xpBuffer.Length; i++) xpBuffer[i] &= Xp.FrameMask[i];
|
||||
|
||||
if(xpBuffer.SequenceEqual(Xp.FrameMarker))
|
||||
{
|
||||
@@ -167,8 +156,7 @@ namespace Aaru.VideoNow
|
||||
fs.Position = framePosition;
|
||||
fs.Read(xpSwappedBuffer, 0, xpSwappedBuffer.Length);
|
||||
|
||||
for(var i = 0; i < xpSwappedBuffer.Length; i++)
|
||||
xpSwappedBuffer[i] &= Xp.SwappedFrameMask[i];
|
||||
for(var i = 0; i < xpSwappedBuffer.Length; i++) xpSwappedBuffer[i] &= Xp.SwappedFrameMask[i];
|
||||
|
||||
if(xpSwappedBuffer.SequenceEqual(Xp.SwappedFrameMarker))
|
||||
{
|
||||
@@ -193,7 +181,8 @@ namespace Aaru.VideoNow
|
||||
|
||||
Console.WriteLine(Localization.FirstFrameFoundAt, framePosition);
|
||||
|
||||
Console.WriteLine(framePosition % 2352 == 0 ? Localization.FirstFrameIsAtSectorBoundary
|
||||
Console.WriteLine(framePosition % 2352 == 0
|
||||
? Localization.FirstFrameIsAtSectorBoundary
|
||||
: Localization.FirstFrameIsNotAtSectorBoundary);
|
||||
|
||||
if(xp)
|
||||
@@ -211,4 +200,3 @@ namespace Aaru.VideoNow
|
||||
Console.WriteLine();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Uso: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Usage: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Utilizzo: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Usage: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Utilização: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Utilização: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
-->
|
||||
|
||||
<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:schema>
|
||||
<resheader name="resmimetype">
|
||||
@@ -69,10 +70,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Usage: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Folosire: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Использование: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
: 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:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
@@ -93,10 +94,14 @@
|
||||
<value>1.3</value>
|
||||
</resheader>
|
||||
<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 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>
|
||||
<data name="Usage" xml:space="preserve">
|
||||
<value>Användning: Aaru.VideoNow dump.raw</value>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
namespace Aaru.VideoNow
|
||||
{
|
||||
namespace Aaru.VideoNow;
|
||||
|
||||
public static class Swapping
|
||||
{
|
||||
public static byte[] SwapBuffer(byte[] buffer)
|
||||
@@ -15,4 +15,3 @@ namespace Aaru.VideoNow
|
||||
return tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,8 @@ using System.Linq;
|
||||
using SharpAvi;
|
||||
using SharpAvi.Output;
|
||||
|
||||
namespace Aaru.VideoNow
|
||||
{
|
||||
namespace Aaru.VideoNow;
|
||||
|
||||
public static class Xp
|
||||
{
|
||||
public static readonly byte[] FrameMask =
|
||||
@@ -173,8 +173,7 @@ namespace Aaru.VideoNow
|
||||
byte[] frameMarkerToUse = swapped ? SwappedFrameMarker : FrameMarker;
|
||||
byte[] frameMaskToUse = swapped ? SwappedFrameMask : FrameMask;
|
||||
|
||||
if(swapped)
|
||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
if(swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
|
||||
var outFs = new MemoryStream();
|
||||
|
||||
@@ -214,8 +213,7 @@ namespace Aaru.VideoNow
|
||||
|
||||
Console.Write($"\r{Localization.LookingForMoreFrames}", progress);
|
||||
|
||||
for(var i = 0; i < buffer.Length; i++)
|
||||
buffer[i] &= frameMaskToUse[i];
|
||||
for(var i = 0; i < buffer.Length; i++) buffer[i] &= frameMaskToUse[i];
|
||||
|
||||
if(!buffer.SequenceEqual(frameMarkerToUse))
|
||||
{
|
||||
@@ -228,8 +226,7 @@ namespace Aaru.VideoNow
|
||||
fs.Position = framePosition;
|
||||
fs.Read(buffer, 0, buffer.Length);
|
||||
|
||||
for(var i = 0; i < buffer.Length; i++)
|
||||
buffer[i] &= frameMaskToUse[i];
|
||||
for(var i = 0; i < buffer.Length; i++) buffer[i] &= frameMaskToUse[i];
|
||||
|
||||
if(buffer.SequenceEqual(frameMarkerToUse))
|
||||
{
|
||||
@@ -239,8 +236,7 @@ namespace Aaru.VideoNow
|
||||
frameBuffer = new byte[19760];
|
||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||
|
||||
if(swapped)
|
||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
if(swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
|
||||
outFs = new MemoryStream();
|
||||
|
||||
@@ -266,11 +262,14 @@ namespace Aaru.VideoNow
|
||||
totalFrames++;
|
||||
Console.Write("\r \r");
|
||||
|
||||
Console.WriteLine(Localization.FrameFoundAtPosition, framePosition, totalFrames,
|
||||
Console.WriteLine(Localization.FrameFoundAtPosition,
|
||||
framePosition,
|
||||
totalFrames,
|
||||
framePosition - expectedFramePosition);
|
||||
|
||||
Console.
|
||||
WriteLine(framePosition % 2352 == 0 ? Localization.FrameIsAtSectorBoundary : Localization.FrameIsNotAtSectorBoundary,
|
||||
Console.WriteLine(framePosition % 2352 == 0
|
||||
? Localization.FrameIsAtSectorBoundary
|
||||
: Localization.FrameIsNotAtSectorBoundary,
|
||||
totalFrames);
|
||||
|
||||
framePosition += 19760;
|
||||
@@ -295,8 +294,7 @@ namespace Aaru.VideoNow
|
||||
frameBuffer = new byte[19760];
|
||||
fs.Read(frameBuffer, 0, frameBuffer.Length);
|
||||
|
||||
if(swapped)
|
||||
frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
if(swapped) frameBuffer = Swapping.SwapBuffer(frameBuffer);
|
||||
|
||||
outFs = new MemoryStream();
|
||||
|
||||
@@ -332,4 +330,3 @@ namespace Aaru.VideoNow
|
||||
aviWriter.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user