22nd September 2002 15:33 UTC
Structure Info Request
My suggestion for the next version of AVS is for Nullsoft to release data structure information for the .avs format. I'm currently trying to decypher the format (Using a String/Integer Dumper proggie I made) so I can make a, umm, better preset builder :)
Here's my current progress:
[] Byte Value, () KeyID, "" String, {} Object
Most numbers are of d-word long integer type.
**********************<Generics>**********************
[0] = Null Character, 0
[10] = New Line
[36] = "$", Seperator
**********************<Headers>**********************
Main Header = "Nullsoft AVS Preset 0.2" [26] [ClearEveryFrame]
EL Header = (-1) [254][255][255][255]
Comment Header = (21,28,24) [21][0][0][0]-[28][0][0][0]-[24][0][0][0]
All Objects Closed by Null [0] (Except EL, for some odd reason)
**********************<Input Blend Modes>**********************
Ignore = 0
Replace = 1
50/50 = 2
Maximum = 3
Additive = 4
Subtractive 1 (Dst-Src) = 5
Subtractive 2 (Src-Dst) = 6
Every Other Line = 6
Every Other Pixel = 8
XOR = 9
Adjustable = 10
Multiply = 11
Buffer Blend = 12
**********************<Output Blend Modes>**********************
Replace = 0
Ignore = 1
Maximum = 2
50/50 = 3
Subtractive 1 (Dst-Src) = 4
Additive = 5
Every Other Line = 6
Subtractive 2 (Src-Dst) = 7
XOR = 8
Every Other Pixel = 9
Multiply = 10
Adjustable = 11
Buffer Blend = 13
**********************<Structure>**********************
{ Main Header
{ EL Header
[37+35*NumberOfNonELObjects+8*NumberOfSubELs+TotalOfSubEL,LongInt] - Still not quite sure on the formula for this one, seems very complex.
[(NOT Enabled)*2+ClearEveryFrame+128][(NOT Enabled)*2+ClearEveryFrame][InputBlend][OutputBlend]
[36]
[InputAdjustBlend,LongInt]
[OutputAdjustBlend,LongInt]
[InputBufferNumber-1,LongInt]
[OutputBufferNumber-1,LongInt]
[InputBufferInvert,LongInt]
[OutputBufferInvert,LongInt]
[EnableOnBeat,LongInt]
[OnBeatFrames,LongInt]
} *THERE'S NO CLOSE!*
{ Comment Header
Comment Text - "Line 1" [10] "Line 2" [10] "Line 3"
} Close
} Close