gists/spddiff.avs
2013-02-26 10:41:48 +00:00

85 lines
2.1 KiB
Text

function open(string path)
{ return AviSource(path, audio=false) }
function DiffClip(clip c, int diff)
{ BlankClip(c, diff).Subtitle(String(-diff), align=5, size=c.Height/8) }
function PadWithDiff(clip c, int len)
{ c.FrameCount < len ? c + DiffClip(c, len - c.FrameCount) : c }
function MergeHoriz(clip left, clip right)
{ Overlay(AddBorders(left, 0, 0, right.Width, 0), right, left.Width, 0) }
function MergeVert(clip top, clip bottom)
{ Overlay(AddBorders(top, 0, 0, 0, bottom.Height), bottom, 0, top.Height) }
function Cmp(clip left, clip right)
{
frames = max(left.FrameCount, right.FrameCount)
left = PadWithDiff(left, frames)
right = PadWithDiff(right, frames)
return MergeHoriz(left, right)
}
# http://tasvideos.org/1072S.html
open("snes9x\Movies\old.avi")+\
open("snes9x\Movies\old_part2.avi")+\
open("snes9x\Movies\old_part3.avi")+\
open("snes9x\Movies\old_part4.avi")
Trim(0, 38409)
AddBorders(0,0,16,0)
global old = last
# http://tasvideos.org/3346S.html
open("snes9x\Movies\new.avi")+\
open("snes9x\Movies\new_part5.avi")+\
open("snes9x\Movies\new_part6.avi")+\
open("snes9x\Movies\new_part7.avi")
Trim(0, 37569)
global new = last
# compare by slice
function x(int oldStart, int oldEnd, int newStart, int newEnd)
{ Cmp(Trim(old, oldStart, oldEnd), Trim(new, newStart, newEnd)) }
# compare by split (start is last split)
global prevOldSplit = 0
global prevNewSplit = 0
function s(int oldSplit, int newSplit)
{
ot = prevOldSplit
nt = prevNewSplit
global prevOldSplit = oldSplit + 1
global prevNewSplit = newSplit + 1
return x(ot, oldSplit, nt, newSplit)
}
s(01498,01497)+\
s(04115,04184)+\
s(06856,06527)+\
s(08027,07668)+\
s(09017,08658)+\
s(09207,08847)+\
s(10000,09615)+\
s(11601,11212)+\
s(14217,13817)+\
s(16319,15911)+\
s(17425,16999)+\
s(17783,17350)+\
s(18906,18470)+\
s(19091,18655)+\
s(19638,19149)+\
s(20338,19834)+\
s(22816,22312)+\
s(23798,23271)+\
s(26013,25461)+\
s(26930,26345)+\
s(29007,28374)+\
s(29192,28559)+\
s(29486,28855)+\
s(29900,29162)+\
s(30072,29369)+\
s(30720,29894)+\
s(31504,30639)+\
s(34100,33232)+\
s(38158,37235)+s(0,0) # end of input, then bowser dead