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. |
5th March 2015, 15:10 | #861 | Link |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
All changes from 2.6rc1 have been pulled into AviSynth+. Normally I would publish a new build, but qyot has already done so and there are only very insiginifcant differences to his build. I will now look at the memory leak reported by chainik and the audio issue. At that point Avs+ will be good to go for a new official release that is stable in single-threaded mode. I still wouldn't recommend the MT-modes for production, but everything else should be alright. And of course, anything else you find, report it, so that it can be fixed timely. Sorry for the hiatus.
__________________
AviSynth+ |
5th March 2015, 16:11 | #863 | Link |
47.952fps@71.928Hz
Join Date: Mar 2011
Posts: 940
|
This is intriguing news, indeed!
Great work, guys.
__________________
Win10 (x64) build 19041 NVIDIA GeForce GTX 1060 3GB (GP106) 3071MB/GDDR5 | (r435_95-4) NTSC | DVD: R1 | BD: A AMD Ryzen 5 2600 @3.4GHz (6c/12th, I'm on AVX2 now!)
|
6th March 2015, 00:22 | #864 | Link | |
Registered User
Join Date: Apr 2009
Posts: 478
|
Quote:
|
|
6th March 2015, 01:18 | #865 | Link |
Registered User
Join Date: Aug 2006
Posts: 2,229
|
Do the crashes only affect when using MT? I don't use that. I have been using the 1718 build without issue. This includes a backlog of stuff I wanted to encode, so encoding dozens of shows (with very 'tight' x264 settings etc) over the last couple of days, non-stop. Haven't had any issues .
|
7th March 2015, 18:09 | #868 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
__________________
AviSynth+ |
|
7th March 2015, 21:22 | #869 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
The proposed solution in the issue tracker won't work well. You cannot delete the vfb every time a VideoFrame is destroyed, because due to subframes, vfbs can be shared among multiple VideoFrames. Of course you could check for the zero-refcount-condition and only delete it when no one else is using it, but that is basically what the ScriptEnvironment's destructor is already doing, except your proposed solution would destroy caching the vfbs, negatively affecting performance. EDIT: You might probably be thinking, because the refcount is decremented in VideoFrame's destructor, if I want to check for the last reference, I should be checking for refcount==1 instead of refcount==0. The reason this is not the cases, is because all explicit references to VideoFrames will be released along the destruction of the filter chain. Because releasing a videoframe will also decrement the associated vfb's refcount, vfb refcounts will decrement to zero (except for those used by subframes) even before the videoframes are destructed. So to sum it up, the error that you are making is to assume that vfb::Release is only called in VideoFrame's destructor.
__________________
AviSynth+ Last edited by ultim; 7th March 2015 at 22:13. |
|
7th March 2015, 21:51 | #870 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
This is also true about the other supposed "problem" you have found about not destroying the Prefetcher. The Prefetcher is just a filter, so it also get destroyed during the destruction of the filter chain, as explained above. Sure, ScriptEnv also has a reference to it, but it never incremented its refcount, so this extra reference won't prevent its timely destruction when the host app releases the chain. To sum it, I see no memory leak yet in any of the three cases you have documented so far. Please elaborate more if you think I have missed something.
__________________
AviSynth+ |
|
7th March 2015, 22:21 | #871 | Link |
Registered User
Join Date: Mar 2012
Location: Saint-Petersburg
Posts: 239
|
ultim
I believe theory is great But how many times in real life you actually checked what is going on at script destruction? I know it's not a usual case. Most people will never face any problems related to script destruction. BUT it's important for real-time processing inside ffdshow when AVS script can be reloaded many times while watching the same movie. It isn't very hard to make SVP "compatible" with AVS+. If you're interested I can share a few files (actually it's just one file) to make it work. As an alternative you can just write any simplest script inside ffdshow and check and uncheck "avisynth" checkbox. And the truth is every script reloading with AVS+ makes visible step in the Task manager's memory usage graph. So the memory _is_ leaking. And after my fix it is not. I'm not telling the fix is 100% correct, but at least it can point you to the right direction. But if you insist I can point you to exact lines of code that break your theory In fact there's no point for arguing, just try it yourself
__________________
SVPflow motion interpolation Last edited by chainik_svp; 7th March 2015 at 22:27. |
7th March 2015, 23:58 | #872 | Link | |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
LOL, you think all I do is make up theories? Believe me when I say I checked it in multiple scenarios. I know something is leaking, I was just saying the problem is not what you think it is.
__________________
AviSynth+ Last edited by ultim; 8th March 2015 at 00:05. |
|
8th March 2015, 00:51 | #873 | Link |
Registered User
Join Date: Mar 2012
Location: Saint-Petersburg
Posts: 239
|
ultim
I was just saying the problem is not what you think it is Yeah, ok, whatever Last time I was heard this - I was forced to go deep into Avisynth code and make my own build, with completely replaced 'distributor' and modified cache. And I really don't want to go into this [shit] one more time. If you can make AVS+ useful - that would be great, cause I really like how it works with the memory and with CPU threads in MT version. But now isn't useful at all
__________________
SVPflow motion interpolation Last edited by chainik_svp; 8th March 2015 at 01:07. |
8th March 2015, 01:29 | #874 | Link | |
Registered User
Join Date: Mar 2012
Location: Saint-Petersburg
Posts: 239
|
Quote:
Or may be put that printf into ~Prefetcher() ?
__________________
SVPflow motion interpolation |
|
8th March 2015, 02:52 | #875 | Link |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
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.
__________________
AviSynth+ Last edited by ultim; 8th March 2015 at 02:58. |
8th March 2015, 05:13 | #876 | Link | |
Registered User
Join Date: Jan 2006
Posts: 1,867
|
Quote:
Also, is there any need to use official avisynth now? If not, have the two authors considered a merge? Last edited by jmac698; 8th March 2015 at 05:16. |
|
8th March 2015, 07:12 | #877 | Link | |
Registered User
Join Date: Mar 2009
Posts: 3,650
|
Quote:
My thoughts are as long as the solution provides at least the same performance as AvisynthMT it's a win regardless of how hacky it may seem. |
|
8th March 2015, 09:52 | #878 | Link | |
Registered User
Join Date: Mar 2007
Posts: 407
|
Documentation?
Quote:
That said, my question is: where is the documentation of the cited new features? I may be too stupid to find it. After Avisynth+ install, I compared the doc folder trees with BeyondCompare and can only find same docs, or files where AviSynth 2.6 is more up to date (even if Avisynth+ file date is newer!). The folder 'german' should be renamed 'french', or better removed, if it is neither complete nor updated. Also, I found nothing on the homepage and at most hints in this thread. EDIT: reading my own text, I feel I should maybe offer to contribute. Would that be welcome, even at a low level, and which prerequisites do I need (e.g. I din't have experience with git)? Last edited by martin53; 8th March 2015 at 13:05. Reason: see post |
|
8th March 2015, 10:03 | #879 | Link | |
Registered User
Join Date: Mar 2007
Posts: 407
|
Quote:
EDIT 2015-03-09: link updated in original post, and also here Last edited by martin53; 9th March 2015 at 17:38. Reason: Link updated |
|
8th March 2015, 11:11 | #880 | Link |
Registered User
Join Date: Mar 2007
Posts: 407
|
With both the r1576 and the r1718 build as x86 under a X64 windows 7, this function lister script freezes after debug output 'ImageSeq_ImageWriter', even if call to all ImageSeq_ functions is avoided. Maybe the following function doesn't even like to be checked by RT_PluginFunctions().
With the given set of pre-captured (i.e. not called) functions (line #58 ff), the same script runs fine with Avisynth 2.6 ST and MT. Supplement: Avisynth 2.6 MT shows GetMTMode and SetMTMode as internal functions. With Avisynth+ I don't see them in the list. Last edited by martin53; 8th March 2015 at 12:10. Reason: supplement |
Thread Tools | Search this Thread |
Display Modes | |
|
|