Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
29th April 2020, 21:13 | #181 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Use Stainless' script from post #151.
Plugins needed: GScript SysInfo 0.1.1.8 RT_Stats Open the script with VDub2 32 bit.
__________________
Groucho's Avisynth Stuff |
29th April 2020, 21:14 | #182 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
I'm not aware of any other than this one.
__________________
Groucho's Avisynth Stuff |
29th April 2020, 21:20 | #184 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
__________________
Groucho's Avisynth Stuff |
29th April 2020, 21:43 | #185 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
OK, got it crashing here too with GScript In Avs+ directory [only had GScript in v2.5 Universal avs thingy].
I'll see if I can narrow it down.
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? |
29th April 2020, 22:20 | #186 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Here crashing script on v3.5.2 with gscript in plugins.
No crash with v2.58 and gscript, nor v2.60 with gscript. Added Debug stuff output to debugview to see where it conks out. Code:
# SI_CHECK.avs SI_VER = 0.118 # Minimum required version of SysInfo /* Req SysInfo (c) Groucho2004, RT_Stats 1.43+. */ ########### CONFIG ############## ERR_LEVEL=0 # 0 = Everything : 1 == WARNINGS+ : 2 ERRORS ONLY W=1280 H=720 DEBUG=TRUE ################################################################# Function SystemInfoVersion() { try{v=SysInfoVersion}catch(msg){v=-1.0} return v } # v = -1.0, SysInfo not installed Function RT_StatsVersion() { try{v=RT_Version}catch(msg){v=-1.0} return v } # v = -1.0, RT_Stats not installed # Return length of string S that matches any character in Chars set of characters [Default case insignificant]. # StrMatchChrLen("1234.567abcd","0123456789.") = 8 Function StrMatchChrLen(String s,String Chars,Bool "Sig") { Function __StrMatchChrLen_LOW(String s,String Chars,int n) { c=s.MidStr(n+1,1) Return(c==""||Chars.FindStr(c)==0) ? n : s.__StrMatchChrLen_LOW(Chars,n+1) } Sig=Default(Sig,False) # Default Case Insignificant s=(Sig)?s:s.UCASE Chars=(Sig)?Chars:Chars.UCASE Return __StrMatchChrLen_LOW(s,Chars,0) } # Return length of string s that DOES NOT match any character in Chars set of characters [Default case insignificant]. # StrBrkChrLen("1234.567,abcd",",.") = 4 # If 1st character of s matches any in Chars set, then returns 0. # StrBrkChrLen("1234.567,abcd","321") = 0 # If no characters in s match any character in Chars set, then returns length of string s. # StrBrkChrLen("1234.567,abcd","NOP") = 13 Function StrBrkChrLen(String s,String Chars,Bool "Sig") { Function __StrBrkChrLen_LOW(String s,String Chars,int n) {c=s.MidStr(n+1,1) Return(c==""||Chars.FindStr(c)!=0)?n:s.__StrBrkChrLen_LOW(Chars,n+1)} Sig=Default(Sig,False) # Default Case Insignificant s=(Sig)?s:s.UCASE Chars=(Sig)?Chars:Chars.UCASE Return __StrBrkChrLen_LOW(s,Chars,0) } ###### Function IsAvs26() { VersionNumber>=2.6} Function IsAvsPlus() { FindStr(VersionString,"AviSynth+")!=0||FindStr(VersionString," Neo")!=0} Function PlusBuildNumber() { V=VersionString Off=(!IsAvsPlus)?-1:FindStr(V,"(r") return (Off==0)?-1:V.MidStr(Off+2).Value.Int } # -1 not present. Avs+ & Neo, (More than 4 digits, Max 24 bit, ~16M) Function AvsPlusVersionNumber() { Return PlusBuildNumber } # Stub for AvsPlusBuildNumber(), suggest AvsPlusVersionNumber is deprecated. Function AvsVersionNumberString() { s=VersionString ND="0123456789." s=s.MidStr(s.StrBrkChrLen(ND,True)+1) s = s.LeftStr(s.StrMatchChrLen(ND,True)) d=s.FindStr(".") n1=(d==0)?s:s.LeftStr(d-1) s=(d==0)?"":s.MidStr(d+1) d=s.FindStr(".") n2=(d==0)?s:s.LeftStr(d-1) s=(d==0)?"":s.MidStr(d+1) d=s.FindStr(".") n3=(d==0)?s:s.LeftStr(d-1) s=(d==0)?"":s.MidStr(d+1) d=s.FindStr(".") n4=(d==0)?s:s.LeftStr(d-1) return RT_String("%s.%s.%s.%s",n1==""?"0":n1,n2==""?"0":n2,n3==""?"0":n3,n4==""?"0":n4) } ###### Function IsAvs64Bit() { Return RT_GetSystemEnv("PROCESSOR_ARCHITECTURE").Findstr("64")!=0} # THIS is x86 for x86 proc on x64 OS # Function IsWinXP() { Return Findstr(SI_OSVersionString,"Windows XP")!=0} Function IsWinVista() { Return Findstr(SI_OSVersionString,"Vista")!=0} Function IsWin7() { Return Findstr(SI_OSVersionString,"Windows 7")!=0} Function IsWin8() { S=SI_OSVersionString Return Findstr(S,"Windows 8 ")!=0||Findstr(S,"Windows 8.0 ")!=0} Function IsWin81() { Return Findstr(SI_OSVersionString,"Windows 8.1")!=0} Function IsWin10() { Return Findstr(SI_OSVersionString,"Windows 10")!=0} #! Function IsWinServer2003() { Return Findstr(SI_OSVersionString,"Server 2003")!=0} Function IsWinServer2008() { S=SI_OSVersionString i=S.Findstr("Server 2008") Return i!=0&&(S.RT_Ord(i+11)==0||S.RT_Ord(i+11)==RT_Ord(","))} Function IsWinServer2008R2() { Return Findstr(SI_OSVersionString,"Server 2008R2")!=0} Function IsWinServer2012() { S=SI_OSVersionString i=S.Findstr("Server 2012") Return i!=0&&(S.RT_Ord(i+11)==0||S.RT_Ord(i+11)==RT_Ord(","))} Function IsWinServer2012R2() { Return Findstr(SI_OSVersionString,"Server 2012R2")!=0} # Function HasMMX() { S=SI_CPUExtensions i=S.Findstr("MMX") Return i!=0&&(S.RT_Ord(i+3)==0||S.RT_Ord(i+3)==RT_Ord(","))} Function HasSSE() { S=SI_CPUExtensions i=S.Findstr("SSE") Return i!=0&&(S.RT_Ord(i+3)==0||S.RT_Ord(i+3)==RT_Ord(","))} Function HasSSE2() { Return Findstr(SI_CPUExtensions,"SSE2")!=0} Function HasSSE3() { Return Findstr(SI_CPUExtensions,"SSE3")!=0} Function HasSSE41() { Return Findstr(SI_CPUExtensions,"SSE4.1")!=0} Function HasSSE42() { Return Findstr(SI_CPUExtensions,"SSE4.2")!=0} Function HasAVX() { S=SI_CPUExtensions i=S.Findstr("AVX")Return i!=0&&(S.RT_Ord(i+3)==0||S.RT_Ord(i+3)==RT_Ord(","))} Function HasAVX2() { Return Findstr(SI_CPUExtensions,"AVX2")!=0} #! Function HasAVX512() { Return Findstr(SI_CPUExtensions,"AVX512")!=0} Function HasFMA3() { Return Findstr(SI_CPUExtensions,"FMA3")!=0} Function HasFMA4() { Return Findstr(SI_CPUExtensions,"FMA4")!=0} Function HasSSSE3() { Return Findstr(SI_CPUExtensions,"SSSE3")!=0} # Function OsBuildNumber() { S=SI_OSVersionString i=S.Findstr("Build ") Return (i==0)?-1:S.MidStr(i+6).Value.Int } # -1 not present. Function OSServicePack() { S=SI_OSVersionString i=S.Findstr("Service Pack ") Return (i==0)?-1:S.MidStr(i+13).Value } # -1 not present. # Function VariableTypeName(val v) { Return v.IsClip?"clip":v.IsInt?"int":v.Isfloat?"float":v.IsString?"string":v.IsBool?"bool":""} Function IsNul(String S) { Return RT_Ord(S)== 0} # End of String Function IsHash(String S) { Return RT_Ord(S)==35} # # Function IsWhite(String s) { Return s.RT_Ord==32||(s.RT_Ord>=8&&s.RT_Ord<=13) } Function EatWhite(String s) { Return s.IsWhite?s.MidStr(2).EatWhite:s } Function Strenc(string s,n) { Return s.RT_Ord==0?"":Chr(s.RT_Ord+n)+s.MidStr(2).strenc(n) } ################################################################# Assert(RT_StatsVersion>=1.43,"SI_Check: Need RT_Stats v1.43") Assert(SystemInfoVersion>=SI_VER,"SI_Check: Need Groucho2004 SysInfo v"+String(SI_VER)) HasGScript=RT_FunctionExist("GScript") IsPlus=(FindStr(VersionString,"AviSynth+")!=0||FindStr(VersionString," Neo")!=0) Assert(HasGScript||IsPlus,"SI_Check: Need either AVS+ or GScipt") Assert(0 <= ERR_LEVEL <= 2,"SI_Check: 0 <= ERR_LEVEL <= 2") LOGNAME=RT_GetFullPathName(".\SysInfo_Check.Log") (DEBUG) ? RT_DebugF("LOGNAME = %s",LOGNAME) : NOP RT_FileDelete(LOGNAME) TOT_OK=0 TOT_NI=0 TOT_BAD=0 SubsString="" ################################################################# CMPS=""" AI_AvsFileVersion @ AvsVersionNumberString AI_AvsPlusBuildNumber @ PlusBuildNumber AI_AvsProductVersion @ AvsVersionNumberString AI_GScriptExists @ RT_FunctionExist("GScript") AI_IsAvs26 @ IsAvs26 AI_IsAvsPlus @ IsAvsPlus SI_AvailableSystemMemory @ ? SI_CPUExtensions @ ? SI_CPUName @ ? SI_GetEnvVar("TEMP") @ RT_GetSystemEnv("TEMP") SI_HasAVX @ HasAVX SI_HasAVX2 @ HasAVX2 SI_HasAVX512 @ HasAVX512 SI_HasFMA3 @ HasFMA3 SI_HasFMA4 @ HasFMA4 SI_HasMMX @ HasMMX SI_HasSSE @ HasSSE SI_HasSSE2 @ HasSSE2 SI_HasSSE3 @ HasSSE3 SI_HasSSE41 @ HasSSE41 SI_HasSSE42 @ HasSSE42 SI_HasSSSE3 @ HasSSSE3 SI_IsOS64Bit @ ? SI_IsWin10 @ IsWin10 SI_IsWin7 @ IsWin7 SI_IsWin8 @ IsWin8 SI_IsWin81 @ IsWin81 SI_IsWinServer2003 @ IsWinServer2003 SI_IsWinServer2008 @ IsWinServer2008 SI_IsWinServer2008R2 @ IsWinServer2008R2 SI_IsWinServer2012 @ IsWinServer2012 SI_IsWinServer2012R2 @ IsWinServer2012R2 SI_IsWinVista @ IsWinVista SI_IsWinXP @ IsWinXP SI_LogicalCores @ RT_GetSystemEnv("NUMBER_OF_PROCESSORS").Value.Int SI_ModulePath @ ? SI_NumberOfCPUs @ ? SI_OSBuildNumber @ OsBuildNumber SI_OSServicePack @ OSServicePack SI_OSVersionNumber @ ? SI_OSVersionString @ ? SI_PhysicalCores @ ? SI_ProcessBitness @ IsAvs64Bit?64:32 SI_ProcessName @ RT_GetProcessName(False) SI_ScreenBitsPerPixel @ ? SI_ScreenResX @ ? SI_ScreenResY @ ? SI_TotalSystemMemory @ ? SysInfoVersion @ ? """ GSTRING = """ (DEBUG) ? RT_DebugF("GSTRING START PROCESSING") : NOP # <<<<< CRASH AFTER HERE Lines = CMPS.RT_TxtQueryLines (DEBUG) ? RT_DebugF("GSTRING LINES=%d",Lines) : NOP for(i=0,Lines-1) { (DEBUG) ? RT_DebugF("Fetching Line %d",i+1) : NOP testLine=CMPS.RT_TxtGetLine(Line=i).EatWhite.RevStr.EatWhite.RevStr if(!testLine.IsNul && !testLine.IsHash) { testS=testLine (DEBUG) ? RT_DebugF("testS=%s",TestS) : NOP HashLoc=testS.RT_FindStr("#") (DEBUG) ? RT_DebugF("Hashloc=%d",Hashloc) : NOP testS=HashLoc>0?testS.LeftStr(HashLoc-1) : testS # End string at FIRST '#' Hash comment char testS=testS.RevStr.EatWhite.RevStr # trim end White AtLoc=testS.RT_FindStr("@") (DEBUG) ? RT_DebugF("Atloc=%d",Atloc) : NOP Assert(AtLoc>0 ,RT_String("LINE %d, @ Separator Not Found : '%s'",i+1,testS)) LftS=TestS.LeftStr(AtLoc-1).RevStr.EatWhite.RevStr Assert(LftS!="",RT_String("LINE %d, LHS SI string Not Found : '%s'",i+1,testS)) RgtS=TestS.MidStr(AtLoc+1).EatWhite Assert(RgtS!="",RT_String("LINE %d, RHS Synthesized Func Not Found : '%s'",i+1,testS)) (DEBUG) ? RT_DebugF("LftS=%s",LftS) : NOP (DEBUG) ? RT_DebugF("RgtS=%s",RgtS) : NOP Try {LftResult = Eval(LftS) } catch (msg) { Assert(False,"Error on Eval(LftS)"+Chr(10)+msg) } (DEBUG) ? RT_DebugF("Eval(LftS) succeeds") : NOP LogStr="" if(RgtS=="?") { (DEBUG) ? RT_DebugF("Writing Log WARN") : NOP LogStr=RT_String("WARN: Synthesized Func Not Implemented: %s = '%s'",LftS,String(LftResult)) ERR=2 TOT_NI=TOT_NI+1 } Else { Try {RgtResult = Eval(RgtS) } catch (msg) { Assert(False,"Error on Eval(RgtS)"+Chr(10)+msg) } (DEBUG) ? RT_DebugF("Eval(RgtS) succeeds") : NOP mxlen=Max(LftS.StrLen,RgtS.StrLen) (DEBUG) ? RT_DebugF("mxlen=%d",mxlen) : NOP if(LftResult.VariableTypeName==RgtResult.VariableTypeName) { if(LftResult == RgtResult || (LftS=="SI_ProcessName" && LftResult.RT_FileNameSplit(12)==RgtResult)) { (DEBUG) ? RT_DebugF("Add SAME RESULTS") : NOP LogStr=RT_String("OK: SAME RESULT\n %-*s = '%s'\n %-*s = '%s'",mxlen,LftS,String(LftResult),mxlen,RgtS,String(RgtResult)) ERR=1 TOT_OK=TOT_OK+1 } else { (DEBUG) ? RT_DebugF("Add log BAD*: NON Matched") : NOP LogStr=RT_String("*BAD*: NON Matched\n %-*s = '%s'\n %-*s = '%s'",mxlen,LftS,String(LftResult),mxlen,RgtS,String(RgtResult)) ERR=3 TOT_BAD=TOT_BAD+1 } } Else { (DEBUG) ? RT_DebugF("ERR*: Incompatible Result Types") : NOP LogStr=RT_String("*ERR*: Incompatible Result Types\n %-*s = '%s'\n %-*s = '%s'",mxlen,LftS,String(LftResult),mxlen,RgtS,String(RgtResult)) ERR=4 TOT_BAD=TOT_BAD+1 } } RT_DebugF("%s",LogStr,name="SI_CHECK: ") if(ERR>ERR_LEVEL) { (DEBUG) ? RT_DebugF("Adding result SubsString") : NOP SubsString=RT_String("%s\n%s",SubsString,LogStr) } } } HaveSubs=SubsString!="" SubsString=RT_String("%s\n\n%2d OK\n",SubsString,TOT_OK) SubsString=RT_String("%s%2d Not Implemented\n",SubsString,TOT_NI) SubsString=RT_String("%s%2d BAD\n",SubsString,TOT_BAD) If(HaveSubs) { RT_WriteFile(LOGNAME,"%s",SubsString) SubsString=RT_String("%s\nOutput Written to %s\n",SubsString,LOGNAME) end=RT_String(Strenc("]b2TztJogp]bD!&d!312:!]bFHspvdip3115]b.",-1),137) SubsString=RT_String("%s%s%*s\n",SubsString,RT_StrPad("",H/20,Chr(10)),(W/10+end.StrLen)/2,end) } """ (DEBUG) ? RT_DebugF("Calling either GScript or Avs+ Eval") : NOP (HasGScript) ? GSCript(GSTRING) : Eval(GSTRING) ################################################################# LINES=RT_TxtQueryLines(SubsString) L=LINES*20+H Global Glb_S=SubsString # NEO fix BlankClip(Width=W,Height=H,Length=L).ScriptClip("""RT_Subtitle("%s",Glb_S,x=10,y=height-current_frame,expx=true,expy=true)""") return Last Code:
00000015 1.35636556 [948] RT_DebugF: LOGNAME = D:\GG\SysInfo_Check.Log 00000016 1.35646927 [948] RT_DebugF: Calling either GScript or Avs+ Eval 00000017 1.35762501 [948] RT_DebugF: GSTRING START PROCESSING Code:
GSTRING = """ (DEBUG) ? RT_DebugF("GSTRING START PROCESSING") : NOP # <<<<< CRASH AFTER HERE Lines = CMPS.RT_TxtQueryLines (DEBUG) ? RT_DebugF("GSTRING LINES=%d",Lines) : NOP # Does not Get HERE for(i=0,Lines-1) { (DEBUG) ? RT_DebugF("Fetching Line %d",i+1) : NOP testLine=CMPS.RT_TxtGetLine(Line=i).EatWhite.RevStr.EatWhite.RevStr if(!testLine.IsNul && !testLine.IsHash) { EDIT: change to this [also no crash on v3.5.0] Code:
GSTRING = """ (DEBUG) ? RT_DebugF("GSTRING START PROCESSING") : NOP # <<<<< CRASH AFTER HERE RTVER=RT_Version (DEBUG) ? RT_DebugF("RT_version=%f",RTVER) : NOP # <<<<<<< Does not get here Lines = CMPS.RT_TxtQueryLines (DEBUG) ? RT_DebugF("GSTRING LINES=%d",Lines) : NOP
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 29th April 2020 at 22:39. |
29th April 2020, 22:50 | #187 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
This is end of RT_DebugF()
Code:
delete [] pbuf; return 0; // Implicit conversion to int AVSValue } Code:
AVSValue __cdecl RT_Version(AVSValue args, void* user_data, IScriptEnvironment* env) { double v = VERSION_NUMBER; if(VERSION_BETA > 0) { v = v - 0.001 + (VERSION_BETA / 100000.0); } return v; // Implicit conversion of double to float AVSValue } I do that a lot. EDIT: Although changing to this Code:
GSTRING = """ RTVER=RT_Version # returns float, ok (DEBUG) ? RT_DebugF("RT_version=%f",RTVER) : NOP # <<<<< CRASH AFTER HERE, returns int (DEBUG) ? RT_DebugF("GSTRING START PROCESSING") : NOP Lines = CMPS.RT_TxtQueryLines (DEBUG) ? RT_DebugF("GSTRING LINES=%d",Lines) : NOP Code:
00003833 893.11627197 [4528] RT_DebugF: LOGNAME = D:\GG\SysInfo_Check.Log 00003834 893.11633301 [4528] RT_DebugF: Calling either GScript or Avs+ Eval 00003835 893.11755371 [4528] RT_DebugF: RT_version=1.430000 # returns int after outputing float to debugview window
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 29th April 2020 at 23:20. |
30th April 2020, 00:30 | #188 | Link | |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,419
|
Quote:
|
|
30th April 2020, 07:39 | #190 | Link | |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Quote:
__________________
Groucho's Avisynth Stuff |
|
30th April 2020, 07:55 | #191 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,309
|
Could you try with updated GRunT version (Avs 2.6 if)
https://github.com/pinterf/GRunT/releases/tag/v1.0.2 |
30th April 2020, 09:03 | #192 | Link | |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Quote:
__________________
Groucho's Avisynth Stuff |
|
30th April 2020, 09:22 | #194 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
I just made a GScript dll with AVS+ headers - Works!
__________________
Groucho's Avisynth Stuff |
30th April 2020, 10:19 | #196 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
OK. Do you want to make an updated GScript or shall I?
__________________
Groucho's Avisynth Stuff |
30th April 2020, 11:14 | #198 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Here's Gscript with AVS+ headers, 32 and 64 bit. Stainless, please test.
__________________
Groucho's Avisynth Stuff |
30th April 2020, 11:22 | #199 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
BTW, how do I figure out which filter mode to register? I see you used NICE_FILTER for GrunT. Any advice?
__________________
Groucho's Avisynth Stuff |
30th April 2020, 13:47 | #200 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
P, I note that in runtime filters you added 'local' arg, so is now similar (I presume same) to Grunt, however you did not add 'Args' arg,
that is very handy addition and would still make it necessary for many scripts to use Grunt in Preference. If Args arg added, would probably make Grunt an un-necessary and superfluous plugin. [Sorry Gavino ] For a long time a few of us have wanted both GScript & Grunt capability added into Avs source, in avs std the idea was always resisted. EDIT: Thanks G & P, got both and shall test [when I get back from my beer run].
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 30th April 2020 at 14:09. |
Thread Tools | Search this Thread |
Display Modes | |
|
|