jonny
28th April 2002, 20:18
i remove divx5 encoding because my work is based on the llemor src and it seems there is a conflict on the source code paternity.and jonny (autor of Divx5enc tool ) ask me to remove the Divx5 encoding process, perhaps if a solution is found , the Divx5 button will come back, but for the moment it remove.
Not only the intarface: http://jonny.leffe.dnsalias.com/zzz.htm
But some code example:
My code:
my %mime = (
"A","000000","B","000001","C","000010","D","000011","E","000100","F","000101","G","000110","H","000111",
"I","001000","J","001001","K","001010","L","001011","M","001100","N","001101","O","001110","P","001111",
"Q","010000","R","010001","S","010010","T","010011","U","010100","V","010101","W","010110","X","010111",
"Y","011000","Z","011001","a","011010","b","011011","c","011100","d","011101","e","011110","f","011111",
"g","100000","h","100001","i","100010","j","100011","k","100100","l","100101","m","100110","n","100111",
"o","101000","p","101001","q","101010","r","101011","s","101100","t","101101","u","101110","v","101111",
"w","110000","x","110001","y","110010","z","110011","0","110100","1","110101","2","110110","3","110111",
"4","111000","5","111001","6","111010","7","111011","8","111100","9","111101","+","111110","/","111111");
llemor code:
Sub InitializeCompData()
CompData(0, 0) = "A"
CompData(1, 0) = "000000"
CompData(0, 1) = "B"
CompData(1, 1) = "000001"
CompData(0, 2) = "C"
CompData(1, 2) = "000010"
CompData(0, 3) = "D"
CompData(1, 3) = "000011"
CompData(0, 4) = "E"
CompData(1, 4) = "000100"
CompData(0, 5) = "F"
CompData(1, 5) = "000101"
CompData(0, 6) = "G"
CompData(1, 6) = "000110"
CompData(0, 7) = "H"
CompData(1, 7) = "000111"
CompData(0, 8) = "I"
CompData(1, 8) = "001000"
CompData(0, 9) = "J"
CompData(1, 9) = "001001"
CompData(0, 10) = "K"
CompData(1, 10) = "001010"
CompData(0, 11) = "L"
CompData(1, 11) = "001011"
CompData(0, 12) = "M"
CompData(1, 12) = "001100"
CompData(0, 13) = "N"
CompData(1, 13) = "001101"
CompData(0, 14) = "O"
CompData(1, 14) = "001110"
CompData(0, 15) = "P"
CompData(1, 15) = "001111"
CompData(0, 16) = "Q"
CompData(1, 16) = "010000"
CompData(0, 17) = "R"
CompData(1, 17) = "010001"
CompData(0, 18) = "S"
CompData(1, 18) = "010010"
CompData(0, 19) = "T"
CompData(1, 19) = "010011"
CompData(0, 20) = "U"
CompData(1, 20) = "010100"
CompData(0, 21) = "V"
CompData(1, 21) = "010101"
CompData(0, 22) = "W"
CompData(1, 22) = "010110"
CompData(0, 23) = "X"
CompData(1, 23) = "010111"
CompData(0, 24) = "Y"
CompData(1, 24) = "011000"
CompData(0, 25) = "Z"
CompData(1, 25) = "011001"
CompData(0, 26) = "a"
CompData(1, 26) = "011010"
CompData(0, 27) = "b"
CompData(1, 27) = "011011"
CompData(0, 28) = "c"
CompData(1, 28) = "011100"
CompData(0, 29) = "d"
CompData(1, 29) = "011101"
CompData(0, 30) = "e"
CompData(1, 30) = "011110"
CompData(0, 31) = "f"
CompData(1, 31) = "011111"
CompData(0, 32) = "g"
CompData(1, 32) = "100000"
CompData(0, 33) = "h"
CompData(1, 33) = "100001"
CompData(0, 34) = "i"
CompData(1, 34) = "100010"
CompData(0, 35) = "j"
CompData(1, 35) = "100011"
CompData(0, 36) = "k"
CompData(1, 36) = "100100"
CompData(0, 37) = "l"
CompData(1, 37) = "100101"
CompData(0, 38) = "m"
CompData(1, 38) = "100110"
CompData(0, 39) = "n"
CompData(1, 39) = "100111"
CompData(0, 40) = "o"
CompData(1, 40) = "101000"
CompData(0, 41) = "p"
CompData(1, 41) = "101001"
CompData(0, 42) = "q"
CompData(1, 42) = "101010"
CompData(0, 43) = "r"
CompData(1, 43) = "101011"
CompData(0, 44) = "s"
CompData(1, 44) = "101100"
CompData(0, 45) = "t"
CompData(1, 45) = "101101"
CompData(0, 46) = "u"
CompData(1, 46) = "101110"
CompData(0, 47) = "v"
CompData(1, 47) = "101111"
CompData(0, 48) = "w"
CompData(1, 48) = "110000"
CompData(0, 49) = "x"
CompData(1, 49) = "110001"
CompData(0, 50) = "y"
CompData(1, 50) = "110010"
CompData(0, 51) = "z"
CompData(1, 51) = "110011"
CompData(0, 52) = "0"
CompData(1, 52) = "110100"
CompData(0, 53) = "1"
CompData(1, 53) = "110101"
CompData(0, 54) = "2"
CompData(1, 54) = "110110"
CompData(0, 55) = "3"
CompData(1, 55) = "110111"
CompData(0, 56) = "4"
CompData(1, 56) = "111000"
CompData(0, 57) = "5"
CompData(1, 57) = "111001"
CompData(0, 58) = "6"
CompData(1, 58) = "111010"
CompData(0, 59) = "7"
CompData(1, 59) = "111011"
CompData(0, 60) = "8"
CompData(1, 60) = "111100"
CompData(0, 61) = "9"
CompData(1, 61) = "111101"
CompData(0, 62) = "+"
CompData(1, 62) = "111110"
CompData(0, 63) = "/"
CompData(1, 63) = "111111"
End Sub
The mime conversion structures are very similar... perhaps is a case... :)
(and what a coincidence! the padding char "=" doesn't exists in all the 2 structures... mmh, strange...)
My code:
sub Bit
{
my ($Bit) = @_;
# Binario
$Bit = sprintf("%032b", $Bit);
# Output
my $out = "";
for (0 .. 3)
{
$out = substr($Bit, 8 * $_, 8) . $out;
}
# Output
return($out);
}
llemor code:
Function Bit(DecNum As Long) As String
Dim k As Integer, i As Single, DecToBin As String
For k = 31 To 0 Step -1
i = DecNum / 2 ^ k
If i < 1 Then
DecToBin = DecToBin & "0"
Else
DecToBin = DecToBin & "1"
DecNum = DecNum - 2 ^ k
End If
Next k
'Reverse binary arrangement by 8-bits
Bit = ReverseChunkBy8(DecToBin)
End Function
Function ReverseChunkBy8(strBin As String) As String
Dim k As Integer, latestStr As String, tempStr As String
For k = 0 To 3
tempStr = Mid(strBin, 8 * k + 1, 8)
latestStr = tempStr & latestStr
Next k
ReverseChunkBy8 = latestStr
End Function
The same name for the "Bit" function... and the 2 functions makes the same things... mmh strange
But this is the strangest part:
My code:
# Decodifica
my $p1 = Dec64("GAEAAAAAAADQBwAACgAAABQAAAD6AAAADAAAAAIAAAAFAAAAAgAAACgAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAyAAAAAAAAAAAAAACamZmZmZnJP5qZmZmZmck/QAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAD/////AQAAAEM6XGRpdnhwYXNzLmxvZwBjOlx0ZXN0LmRpdngAYzpcbXZpbmZvLmJpbgBp");
if (!defined($p1))
{
return("Internal error in Dec64");
}
# Setto i parametri
substr($p1, 32 * 1, 32, Bit(1000 * $Br));
substr($p1, 32 * 5, 32, Bit($Kf));
substr($p1, 32 * 23, 32, Bit($Sc));
substr($p1, 32 * 6, 32, Bit($Rc1));
substr($p1, 32 * 7, 32, Bit($Rc2));
substr($p1, 32 * 2, 32, Bit($Rc3));
substr($p1, 32 * 3, 32, Bit($Rc4));
substr($p1, 32 * 4, 32, Bit($Rc5));
if ($Q) { substr($p1, 32 * 21, 32, Bit(1)); }
if ($G) { substr($p1, 32 * 31, 32, Bit(1)); }
if ($B) { substr($p1, 32 * 17, 32, Bit(1)); }
if ($Pe != 0)
{
substr($p1, 32 * 24, 32, Bit(1));
substr($p1, 32 * 67, 32, Bit($Pe));
}
# Pass 2
my $p2 = $p1;
substr($p2, 32 * 9, 32, Bit(3));
# Codifica
$p1 = Enc64($p1);
if (!defined($p1))
{
return("Internal error in Enc64");
}
# Codifica
$p2 = Enc64($p2);
if (!defined($p2))
{
return("Internal error in Enc64");
}
llemor code:
Mime = "GAEAAAAAAADQBwAACgAAABQAAAD6AAAADAAAAAIAAAAFAAAAAgAAACgAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAyAAAAAAAAAAAAAACamZmZmZnJP5qZmZmZmck/QAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAIACAADgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAD/////AQAAAEM6XGRpdnhwYXNzLmxvZwBjOlx0ZXN0LmRpdngAYzpcbXZpbmZvLmJpbgBp"
strCompData1 = DecodeCompData(Mime)
strCompData1 = InsertBit(strCompData1, 32 * 1, 32, Bit(Br * 1000))
strCompData1 = InsertBit(strCompData1, 32 * 5, 32, Bit(Kf))
strCompData1 = InsertBit(strCompData1, 32 * 23, 32, Bit(Sc))
strCompData1 = InsertBit(strCompData1, 32 * 6, 32, Bit(Qmax))
strCompData1 = InsertBit(strCompData1, 32 * 7, 32, Bit(Qmin))
strCompData1 = InsertBit(strCompData1, 32 * 2, 32, Bit(RCAve))
strCompData1 = InsertBit(strCompData1, 32 * 3, 32, Bit(RCReac))
strCompData1 = InsertBit(strCompData1, 32 * 4, 32, Bit(RCdur))
If QPel = 1 Then strCompData1 = InsertBit(strCompData1, 32 * 21, 32, Bit(1))
If GMC = 1 Then strCompData1 = InsertBit(strCompData1, 32 * 31, 32, Bit(1))
If BFrame = 1 Then strCompData1 = InsertBit(strCompData1, 32 * 17, 32, Bit(1))
If Pe > 0 Then
strCompData1 = InsertBit(strCompData1, 32 * 24, 32, Bit(1))
strCompData1 = InsertBit(strCompData1, 32 * 67, 32, Bit(Pe))
End If
'Set compression data for second pass
strCompData2 = strCompData1
strCompData2 = InsertBit(strCompData2, 32 * 67, 32, Bit(3))
'Encode the compression data for Virtual Dub use
strCompData1 = EncodeCompData(strCompData1)
strCompData2 = EncodeCompData(strCompData2)
As you can see, the mime initial strings are IDENTICAL...
I'm useing c:\divxpass.log as log for 1 pass, THIS IS NOT THE DEFAULT VALUE, you are useing the same log file guy!
The rest of the code, as you can see, is traslated, char by char, from my perl code.
(I'm useing c:\divxpass.log because the resulting mime string doesn't need to be padded by the "=" char, lemor code doesn't handle padding too........)
After doing this rip, llemor have used a shitty VB editor to put some control (copying my interface), writed a routine that create a vdub script (a 5 year old baby can do this)... and called some VBEXEC function... ops i forgive... you have added a shutdown function, thanks for this, now the 2 apps are not identical!
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc.