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. |
8th March 2015, 12:44 | #881 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
Even though the many changes, Avisynth+ is still highly compatible to classic Avisynth, with respect to both scripts and plugins - with only very few exceptions. Unless you find a bug in Avisynth+ that isn't there in Ianb's version, you should be able to use Avs+ as a complete replacement for Avs. If you do find a bug in Avs+ that is unique to it, I'd be happy if you reported it so that we can fix it, instead of just silently switching back to the old Avs. A proposed merge was the first thing Avs+ has started out as. Only after it failed did Avs+ become a separate project. Communication with "upstream" went south early in the beginning, and I am to blame too. Nevertheless, upstream has been unresponsive since then even while we were trying to contribute, so I guess a full-blown merge is pretty much out of the question as things are right now.
__________________
AviSynth+ Last edited by ultim; 8th March 2015 at 13:13. |
|
8th March 2015, 12:53 | #882 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
__________________
AviSynth+ |
|
8th March 2015, 13:02 | #883 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
This is an area where non-programmers among you could help out (writing docs), and these contributions too would be more than welcome.
__________________
AviSynth+ |
|
8th March 2015, 13:32 | #886 | Link | |
Registered User
Join Date: Mar 2012
Location: Saint-Petersburg
Posts: 239
|
ultim
The .avs script that is leaking memory and a part of the source video (some frames of it but with same compression and video format) should help a lot to reproduce. With simple scripts I tested, there are no leaks ATM, so I will probably need to use the same filters as you do to see it. You won't see those leaks while running any script. http://forum.doom9.org/showthread.ph...82#post1697682 Quote:
__________________
SVPflow motion interpolation |
|
8th March 2015, 13:36 | #887 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
https://github.com/AviSynth/AviSynthPlus/issues/55 That is normal. GetMTMode() ans SetMTMode() are not part of Avisynth+, as Avisynth+ uses other functions to achieve multithreading.
__________________
AviSynth+ |
|
8th March 2015, 16:23 | #890 | Link | |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,419
|
Quote:
There shouldn't be any cases where 2.6's docs are more up-to-date than avsplus'. If you're comparing r1576 to 2.6 RC1, then there's an obvious reason: r1576 is from December 2013. The docs changes that were part of RC1 (7/22 of the commits that comprise the difference between Alpha 5 and RC1) were merged to avsplus' Git repository with the rest of the RC1 integration about a week ago. |
|
8th March 2015, 17:28 | #891 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
Edit: As a side note, your script doesn't work well perfectly if some functions have the same name but different argument list. In that case it will always list the same variant. That is the same though under classic Avisynth too, not specific for Avs+ .
__________________
AviSynth+ Last edited by ultim; 8th March 2015 at 17:30. |
|
8th March 2015, 17:50 | #893 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,419
|
That works too. Users can always consult the avisynth.ru docs mirror, or the Wiki on avisynth.nl (which would also be a reason to slice the externalfilters/ stuff out of the English docs, or at least spin the RST versions of them off into a separate repository).
|
8th March 2015, 18:26 | #894 | Link | ||
Registered User
Join Date: Mar 2007
Posts: 407
|
Quote:
Quote:
|
||
8th March 2015, 18:57 | #895 | Link |
Registered User
Join Date: Mar 2007
Posts: 407
|
The behavior appears to be non reproducible. List diff here.
I installed Avisynth+ r1576 again (previously had done an uninstall that reactivated 2.6 MT) and ran the script with freeze once in AvsPmod. Then looked into the script to could add another RT_DebugF() output and then noticed that's nonsense because all functions are retrieved at once into a string and the current debug output is just in the right place. After that, I ran the script successfully several times in AvsPmod and once in VDub portable. But freeze after "F2" in VDub. Next time again freeze in AvsPmod, when defreq_DeFreq was called. This was also the freezing plugin in the first run. An explanation why it differs from my ealier post is that I then listed the plugins in reverse order (so the line 'plugin_function' comes first and I can reject the similar line 'function' without 'plugin_' prefix). Meanwhile I changed the rejection method and can also reject 'function' if it comes before 'plugin_function'. EDIT: Reproduced freeze during DeFreq call. %PATH% includes AviSynth plugins directory (which is actually a NTFS symbolic link to another partition so I include it in the backup of that partition) and Defreq-required FFTW3.dll with date 06-21-2010 and 1.46MB is there. But after DeFreq is removed, AvsPmod freezes in DePanEstimate. I get more and more the feeling that it is a string/memory issue, not a plugin issue. Changed the script accordingly to following code, now always freezes. As it seems, all my FFT plugins trigger it. I remove one, the next one triggers the freeze. My suspicion is they allocate much memory, but why is that not either succesful or fails with an error, but instead enters an endless loop? Code:
Try {RT_Version()} catch (msg) {assert(false,"This script requires the RT_Stats plugin.")} Try {GEval("")} catch (msg) {assert(false,"This script requires the GScript plugin.")} #============================================================================ Filename=RT_FSelSaveAs(title="Save Filter list",dir="",filt="Text files|*.txt",fn="_AllFunctions.txt",debug=true) Assert(FileName.IsString(), "Please provide a file name to save the filter list") #============================================================================ RT_WriteFile(Filename, VersionString(), Append=false) #WriteInternalFunctionsSyntax(RT_InternalFunctions(), Filename) WritePluginFunctionsSyntax(RT_PluginFunctions(), Filename) WritePluginFunctionsSyntaxBackward(RT_PluginFunctions(), Filename) WritePluginFunctionsSyntax(RT_PluginFunctions(), Filename) WritePluginFunctionsSyntaxBackward(RT_PluginFunctions(), Filename) BlankClip().subtitle("Function info is complete.",align=5) #============================================================================ function WriteInternalFunctionsSyntax(string fu_list, string Filename) { GScript(""" done="" while(fu_list != "") { i = FindStr(fu_list+" ", " ") fu_name = LeftStr(fu_list, i-1) fu_list = MidStr(fu_list, i+1) params = RT_PluginParam(fu_name) if (FindStr(done, fu_name+params)==0) { done = done + " "+fu_name+params RT_WriteFile(Filename, "internal %s ( %s ) -> %s", fu_name, params, GetReturnType(fu_name, params), Append=true) } } """) } #============================================================================ function WritePluginFunctionsSyntax(string fu_list, string Filename) { GScript(""" done="" while(fu_list != "") { i = FindStr(fu_list+" ", " ") fu_name = LeftStr(fu_list, i-1) fu_list = MidStr(fu_list, i+1) i = FindStr(fu_name, "_") if (i>0) { params = RT_PluginParam(fu_name) if (FindStr(fu_list, "_"+fu_name)==0 && FindStr(done, "_"+fu_name+params)==0) { done = done + " _"+fu_name+params RT_WriteFile(Filename, "plugin %s ( %s ) -> %s", fu_name, params, GetReturnType(fu_name, params), Append=true) } } } """) } #============================================================================ function WritePluginFunctionsSyntaxBackward(string fu_list, string Filename) { GScript(""" done="" fu_list = RevStr(fu_list) while(fu_list != "") { i = FindStr(fu_list+" ", " ") fu_name = RevStr(LeftStr(fu_list, i-1)) fu_list = MidStr(fu_list, i+1) i = FindStr(fu_name, "_") if (i>0) { params = RT_PluginParam(fu_name) if (FindStr(fu_list, "_"+fu_name)==0 && FindStr(done, "_"+fu_name+params)==0) { done = done + " _"+fu_name+params RT_WriteFile(Filename, "plugin %s ( %s ) -> %s", fu_name, params, GetReturnType(fu_name, params), Append=true) } } } """) } #============================================================================ #function GetReturnType(string fu, string params) { return "?" } #============================================================================ function GetReturnType(string fu, string params) { GScript(""" RT_DebugF("Fu=%s %s", fu, params, name="GetReturnType") if (MidStr(fu,3,1)=="+") {fu = LeftStr(fu,2)+MidStr(fu,2)} if (MidStr(fu,2,1)=="+") {fu = LeftStr(fu,1)+fu} else if (fu=="Assert") {return "conditional halt"} else if (FindStr(fu, "avss_26_DSS2")>0) {return "clip"} else if (FindStr(fu, "ImageSeq_")>0) {return "clip"} else if (FindStr(fu, "LoadCPlugin")>0) {return "void"} else if (FindStr(fu, "LoadVirtualdubPlugin")>0) {return "void"} else if (FindStr(fu, "MDepan")>0) {return "clip"} else if (FindStr(fu, "MSCDetection")>0) {return "clip"} else if (FindStr(fu, "ResampleAudio")>0) {return "clip"} else if (FindStr(fu, "Resize")>0) {return "clip"} else if (FindStr(fu, "RT_Debug")>0) {return "clip"} else if (FindStr(fu, "RT_FSel")>0) {return "."} else if (FindStr(fu, "Source")>0) {return "clip"} else { bc = BlankClip(width=8,height=8,length=1,pixel_type="YV12") fp = LeftStr(params,2)=="cc" ? "(bc,bc)" \ : LeftStr(params,2)=="cf" ? "(bc,0.1)" \ : LeftStr(params,3)=="cci" ? "(bc,bc,0)" \ : LeftStr(params,5)=="ciiii" ? "(bc,0,0,0,0)" \ : LeftStr(params,4)=="ciii" ? "(bc,0,0,0)" \ : LeftStr(params,3)=="cii" ? "(bc,0,0)" \ : LeftStr(params,2)=="ci" ? "(bc,0)" \ : LeftStr(params,1)=="c" ? "(bc)" \ : LeftStr(params,2)=="ff" ? "(0.1,0.1)" \ : LeftStr(params,1)=="f" ? "(0.1)" \ : LeftStr(params,2)=="ii" ? "(0,0)" \ : LeftStr(params,1)=="i" ? "(0)" \ : LeftStr(params,2)=="ss" ? "("+chr(34)+"1"+chr(34)+","+chr(34)+"1"+chr(34)+")" \ : LeftStr(params,2)=="si" ? "("+chr(34)+"1"+chr(34)+",1)" \ : LeftStr(params,1)=="s" ? "("+chr(34)+"1"+chr(34)+")" \ : "()" Try { r = Eval("current_frame=0 "+fu+fp) r = r.IsBool ? "bool" : r.IsClip ? "clip" : r.IsInt ? "int" : r.IsFloat ? "float" : r.IsString ? "string" : "?"} catch (msg) { Try {r = r.IsBool ? "bool" : r.IsClip ? "clip" : r.IsInt ? "int" : r.IsFloat ? "float" : r.IsString ? "string" : "?" } catch(msg) {r = "?"} } if (r=="?") { bc = BlankClip(width=8,height=8,length=1,pixel_type="RGB32") fp = LeftStr(params,2)=="cc" ? "(bc,bc)" \ : LeftStr(params,2)=="cf" ? "(bc,0.1)" \ : LeftStr(params,3)=="cci" ? "(bc,bc,0)" \ : LeftStr(params,5)=="ciiii" ? "(bc,0,0,-0,-0)" \ : LeftStr(params,4)=="ciii" ? "(bc,0,0,0)" \ : LeftStr(params,3)=="cii" ? "(bc,0,0)" \ : LeftStr(params,2)=="ci" ? "(bc,0)" \ : "(bc)" Try { r = Eval("current_frame=0 "+fu+fp) r = r.IsBool ? "bool" : r.IsClip ? "clip" : r.IsInt ? "int " : r.IsFloat ? "float" : r.IsString ? "string" : "?" } catch (msg) { r = "?" } } if (r=="?" && LeftStr(params,1)=="c") {r="clip?"} return r } """) } Last edited by martin53; 8th March 2015 at 19:43. |
8th March 2015, 19:24 | #897 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
First, you'll need a GitHub account. Then get GitHub for Windows, which will be your offline GUI to Git. Then you just follow this process while editing the docs with your text editor/html-viewer. If you will be working on the docs and not on the sources, there aren't any more tools you'll need.
__________________
AviSynth+ |
|
9th March 2015, 00:00 | #898 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
Edit: After letting it run loooong enough, it actually finished execution! Is it normal to output everyhting A-Z-A-Z-A a couple of time?
__________________
AviSynth+ Last edited by ultim; 9th March 2015 at 00:13. |
|
9th March 2015, 00:28 | #899 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
I looked at the date when you originally reported this, and it was in oct.2014. Given that the last release is from 2013, I think this bug might have been corrected since then. There has been a LOT of fixes since that release, and it would explain why you see this bug and I don't. Anyway, I'll publish a new test binary of Avs+ in a couple of days, and let me know if the problem still pertains.
__________________
AviSynth+ Last edited by ultim; 9th March 2015 at 00:31. |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|