Log in

View Full Version : Avisynth+


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112

SEt
29th May 2014, 01:51
I seem to get crashing when i run this script, at least after a long time (Like 7 hours or something).
...
The Crash is a simple: Microsoft Visual C++ Runtime Error
Well, it doesn't tell much... At least process memory consumption at the crash time would help – it could be memory leak.

zerowalker
29th May 2014, 07:39
The memory consumption when i checked Task Manager and the Error was up for avs2avi was about 160mb if i remember correctly, far beyond a memory leak as far as i know.

EDIT:

Will run the script with Avisynth 2.6 to see if the results differ.
I can say that it's eating memory compared to Avisynth+, i think it will eventually crash, Avisynth+ stayed under 200mb as far as i remember, this is eating away and it's only been some minutes.

(Seems to have stayed at 589mb for now*)

SEt
29th May 2014, 21:00
With 2.6 you really need to play with SetMemoryMax if you are using it in MT mode, also huge memory consumption is normal if it's stable. I doubt testing in 2.6 would reveal anything interesting for Avisynth+ crash though.

zerowalker
29th May 2014, 22:58
With 2.6 you really need to play with SetMemoryMax if you are using it in MT mode, also huge memory consumption is normal if it's stable. I doubt testing in 2.6 would reveal anything interesting for Avisynth+ crash though.

I am not using MT, as it's unstable even on ST.
And well, better try to remove unneeded variables in the equation right?

However It didn't crash cause of a memory leak, however it did crash nevertheless.

Both crashes occur as pretty much the same place and time.

It's when there is 7:30 hours left (7:35 for Avisynth+, but it probably differ a bit per run).
The frame was 170481 and 170483 , this also probably differ.

The frames aren't corrupt and i can play them in Avspmod (or rather go step through them) without any problems.
So my guess is that it crashes around that time, and the frames doesn't matter.


This should however conclude that there isn't a Memory Leak (On crash 2.6 used about 421mb Ram on avs2avi).

So this must mean that something is wrong with smdegrain, SyncAudio and the other commands aren't used as far as i know.

EDIT:

I choose Debug when it crashed, so got it open in Visual Studio, however i have no idea about what to look for here, but will have it open if you have any clue what could be useful.

EDIT 2: Guess it doesn't yield anything so closed it.

sl1pkn07
24th June 2014, 17:54
hi,

i try to install r1689 by line0 (posted above) in my linux with wine

the instalation is ok, but when launch avs2pipe with any avs the avisynth/avs2pipe crash with this log

http://sl1pkn07.no-ip.com/paste/view/6d4ef6d6

with official r1576 works ok without any problem

any help?

greetings

innocenat
24th June 2014, 17:59
r1689 and possibly all future MT version of Avs+ (if there will ever be one) will not run on Wine due to, IIRC, VS2012 threading library. This is a wine's bug, not Avs+'s.

sl1pkn07
24th June 2014, 18:15
It is a known bug by the wine developers?

greetings

qyot27
24th June 2014, 20:04
Yes, and they've known for quite a long while:
https://appdb.winehq.org/objectManager.php?sClass=application&iId=5766
http://bugs.winehq.org/show_bug.cgi?id=17273

Also:
http://forum.doom9.org/showthread.php?p=1663971#post1663971

sl1pkn07
24th June 2014, 20:27
oh, thanks a lot

greetings

EDIT:
nope, don't work qyot27 workground with vcredist 2012 update4 extracted with WiX 3.6 (all other version fails/not run)

tsk

SEt
27th June 2014, 23:01
In case it might help with runtime installation problems for someone: AviSynthPlus-r1697.7z (https://www.dropbox.com/s/6q42kcsbrg5ss0p/AviSynthPlus-r1697.7z)

My semi-static build of current git with VS2013u2, no runtime requirement. Not tested, no idea if it even works.

Overdrive80
28th June 2014, 20:57
Hey, I am installing avs+ with installer and all fine. I want use multithread but function SetThreads() is not detected. How can I get this?? Thanks

Groucho2004
28th June 2014, 22:19
function SetThreads() is not detected
Never heard of it. If you want to try the multi-threaded test build, have a look at this post (https://forum.doom9.org/showthread.php?p=1666364#post1666364).

Overdrive80
28th June 2014, 23:34
Never heard of it. If you want to try the multi-threaded test build, have a look at this post (https://forum.doom9.org/showthread.php?p=1666364#post1666364).

Thanks Groucho2004, I didnt understand properly this post http://forum.doom9.org/showthread.php?p=1651085#post1651085, I thought that it was function and not a feature request.

kaefert
14th July 2014, 11:13
Hi there guys! I've seen that on page 27 of this thread the users dvdan23 and TurboPascal7 where discussing the compatibility of Avisynth+ with Wine under linux half a year ago. I wanted to ask if anybody knows anything about the current status of this. I've just tried to install AviSynthPlus-r1576.exe under a fresh wine context and it does not seem to work out of the box at least.

Running a version "script" gives this error and no picture:

$ WINEDEBUG="-all" wine avs2yuv "version.avs" - | mplayer -cache 2048 -noidx -
MPlayer2 2.0-701-gd4c5b7f-2ubuntu2 (C) 2000-2012 MPlayer Team

Playing -.
Reading from stdin...
Cache size set to 2048 KiB
Cache fill: 0.00% (0 bytes) wine: Call from 0x7b83aace to unimplemented function msvcr110.dll._libm_sse2_sqrt_precise, aborting

Avisynth error:
Evaluate: Unhandled C++ exception!
(version.avs, line 1)
Cache fill: 0.00% (0 bytes)

Failed to recognize file format.


Exiting... (End of file)

qyot27
14th July 2014, 11:46
http://forum.doom9.org/showthread.php?p=1684658#post1684658

And the reason is that the official builds of AviSynth+ are built with VS2012, and the 2012 runtime doesn't work under Wine. It's Wine's issue, which is up to them to resolve (they do try to implement this stuff on their own anyway to avoid requiring the Microsoft-provided runtimes; it's just a waiting game). Further, revisions of AviSynth+ after r1576 (not sure where the actual cut-off was, maybe in the 1630s?) can only be compiled by VS2012 or higher due to the use of C++11.

As far as r1576 is concerned, it has no such absolute restriction and can be built with VS2010. Said build would work under Wine. For those that need to do so, here is one such build:
http://www.mediafire.com/download/tthbb25kbn74bvk/avisynth+_r1576.zip



Also, for the love of all that's right in this world, switch to mpv (https://launchpad.net/~mc3man/+archive/ubuntu/mpv-tests) (PPA linked for feature completeness).

sl1pkn07
14th July 2014, 12:45
Hi

Official r1576 (https://github.com/AviSynth/AviSynthPlus/releases/download/Rel-r1576/AviSynthPlus-r1576.exe) runs for me out of the box

http://wstaw.org/m/2014/07/14/plasma-desktopu26031.png

(avs2yuv is launched by script in /usr/bin)

greetings

kaefert
14th July 2014, 12:52
thanks for the quick and very useful reply qyot27!

kaefert
19th July 2014, 18:36
Another question, is there maybe a 64bit build of Avisynth+ that has been built with VS2010 to work with wine?
I need 64bit to workaround this issue: http://forum.doom9.org/showthread.php?p=1687306
update: it doesn't need to be MT, but I need 64bit to workaround the only 28 source-files per script issue. (see link above)

VideoFanatic
23rd July 2014, 13:25
Can someone please tell me how to get MT working with Avisynth+. I'm using DGDecodeNV to index my video. I'm using the Avisynth+ version of AvsPmod. Here's my script:


SetFilterMTMode("", 2)
SetFilterMTMode("DGSource", 3)
DGSource("E:\1 = Working Videos\WWE 2014\Raw from July\Raw Mar 24 2014.dgi")
AssumeTFF()
DeGrainMedian(limitY=2, limitUV=3, mode=1, interlaced=true)
Yadif(mode=1, order=1)
Vinverse()
Lanczos4Resize(1280,720)
Prefetch(4)


AvsPmod tells me there's no function named SetFilterMTMode

In normal Avisynth MT I just did this:
setmtmode(5,9)
DGSource("E:\1 = Working Videos\WWE 2014\Raw April - Dec\Raw Mar 24 2014.dgi")
setmtmode(2)

What's the equivalent with Avisynth+?

Groucho2004
23rd July 2014, 13:57
AvsPmod tells me there's no function named SetFilterMTMode
You're using the wrong avisynth.dll. There is a post in this thread where ultim posted the MT DLL.

VideoFanatic
23rd July 2014, 14:02
Can you give me a link to it please. I can't find it. It's not mentioned on the project's homepage or in the 1st post of this thread.

Groucho2004
23rd July 2014, 14:35
Can you give me a link to it please. I can't find it. It's not mentioned on the project's homepage or in the 1st post of this thread.
http://forum.doom9.org/showthread.php?p=1666364#post1666364

VideoFanatic
23rd July 2014, 15:18
OK I downloaded the MT version from that link and copied the dlls into the SysWow64 folder. When I start AvsPmod it says [Error126] The specified module could not be found. Loading avisynth.dll failed! Make sure that AviSynth is installed. Alternatively, specify now it's directory.

Groucho2004
23rd July 2014, 15:26
OK I downloaded the MT version from that link and copied the dlls into the SysWow64 folder. When I start AvsPmod it says [Error126] The specified module could not be found. Loading avisynth.dll failed! Make sure that AviSynth is installed. Alternatively, specify now it's directory.
Did you install the "official" r1576 AVS+ version before? Also, you can check your Avisynth install with this tool (http://forum.doom9.org/showthread.php?t=170647).

VideoFanatic
23rd July 2014, 15:33
Yes. Then I copied the MT dlls into the SysWow64 folder. Used the Avisynth Info Tool and it says I have Avisynth+ 0.1 (r1689, x86) installed.

Groucho2004
23rd July 2014, 15:53
Yes. Then I copied the MT dlls into the SysWow64 folder. Used the Avisynth Info Tool and it says I have Avisynth+ 0.1 (r1689, x86) installed.
Did you try to open the script with a different program? VDub?

VideoFanatic
23rd July 2014, 18:09
It seems to be working now. I forgot to restart my PC after installing Avisynth+ and copying the DLLs.

This was my non+ Avisynth MT script:

setmtmode(5,9)
DGSource("E:\Video.dgi")
setmtmode(2)
AssumeTFF()
DeGrainMedian(limitY=2, limitUV=3, mode=1, interlaced=true)
Yadif(mode=1, order=1)
Vinverse()
Lanczos4Resize(1280,720)


What is the equivalent of that speed in Avisynth+ MT? I tried the following which works but I've no idea if these are the correct settings or not?:

SetFilterMTMode("", 2)
SetFilterMTMode("DGSource", 3)

DGSource("E:\1 = Working Videos\WWE 2014\Raw from July\Raw Mar 24 2014.dgi")
AssumeTFF()
DeGrainMedian(limitY=2, limitUV=3, mode=1, interlaced=true)
Yadif(mode=1, order=1)
Vinverse()
Lanczos4Resize(1280,720)
Prefetch(9)

Can someone please tell me how MT works in Avisynth+ as I don't quite understand it. I presume the prefetch line is the number of threads you want but what do the underlined things mean?

Groucho2004
23rd July 2014, 18:18
Can someone please tell me how MT works in Avisynth+ as I don't quite understand it.
All you have to do is read ultim's instructions in the post right below the one with the download link.
There is also a search function on this forum. One could for example search for the term "prefetch" in this thread. It's not that difficult.

VideoFanatic
23rd July 2014, 19:36
I read them before I posted and I couldn't find anything via search. It doesn't explain what the "" part does. I'd like to know what the equivalent of the following is in Avisynth+:


setmtmode(5,9)
DGSource("E:\Video.dgi")
setmtmode(2)

Is the following script correct - everything is using mode 2?
You should use mode 2 unless mode 3 is required for the plugin to work? I want 9 threads so I entered Prefetch(9) at the end.

SetFilterMTMode("", 2)
SetFilterMTMode("DGSource", 2)

DGSource("E:\Video.dgi")
AssumeTFF()
DeGrainMedian(limitY=2, limitUV=3, mode=1, interlaced=true)
Yadif(mode=1, order=1)
Vinverse()
Lanczos4Resize(1280,720)
Prefetch(9)

SamKook
23rd July 2014, 20:07
I'd suggest you read(again?) the comments from the example Ultim posted in the post below the one Groucho2004 linked, all you're asking is very well explained.

The SetFilterMTMode("", 2) line is to set the default MT mode to 2 so the "" means any filter.

There's no point in setting DGSource to 2 if you already set every filters that aren't explicitely specified to 2. But you should use 3 if you want the equivalent of 5 from avisynth and that is what Ultim suggested for most source filters.

As for the prefetch call, ultim very clearly says before the example "You enable MT by placing a single call to Prefetch(X) at the *end* of your script, where X is the number of threads to use." so yes, Prefetch(9) will give you 9 threads in MT mode(there was some things that weren't clear at one time on wether it used 9 threads for encoding or one was reserved for something else, but I don't remember exactly and I might be wrong. Either way, just try it and you'll see if it works fine).

VideoFanatic
23rd July 2014, 20:20
Thanks, I understand now.

Xebika
23rd July 2014, 20:57
I read them before I posted and I couldn't find anything via search. It doesn't explain what the "" part does. I'd like to know what the equivalent of the following is in Avisynth+:


setmtmode(5,9)
DGSource("E:\Video.dgi")
setmtmode(2)

Is the following script correct - everything is using mode 2?
You should use mode 2 unless mode 3 is required for the plugin to work? I want 9 threads so I entered Prefetch(9) at the end.

SetFilterMTMode("", 2)
SetFilterMTMode("DGSource", 2)

DGSource("E:\Video.dgi")
AssumeTFF()
DeGrainMedian(limitY=2, limitUV=3, mode=1, interlaced=true)
Yadif(mode=1, order=1)
Vinverse()
Lanczos4Resize(1280,720)
Prefetch(9)

What is the speed gain of your script with MT??

thescrapyard
9th August 2014, 15:36
Can anybody help in rewriting this dirt removal script that uses the original RemoveGrain plug-in and also mvtools2, so that it uses AviSynth+ RGTools instead and what looks like an improved clense function according to the RGTools wiki

Clense (clip, clip "previous", clip "next", bool "grey")



I really wouldn't know where to start, I've stared at the script but not knowing what functions to change


function RemoveDirt(clip input, int limit, bool _grey)
{
clensed=input.Clense(grey=_grey, cache=4)
alt=input.removegrain(2)
return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=4,cthreshold=6, gmthreshold=60,dist=2,dmode=2,debug=false,noise=limit,noisy=12,grey=_grey)
}

function RemoveDirtMC(clip,int limit, bool "_grey")
{
_grey=default(_grey, false)
limit = default(limit,6)
bvec = clip.MVAnalyse(isb=false, blksize=8, delta=1, pel=2, sharp=1, truemotion=true, idx=4, overlap=0)
fvec = clip.MVAnalyse(isb=true, blksize=8, delta=1, pel=2, sharp=1, truemotion=true, idx=4, overlap=0)
backw = clip.MVFlow(bvec, idx=4)
forw = clip.MVFlow(fvec, idx=4)
clp=interleave(backw,clip,forw)
clp=clp.RemoveDirt(limit,_grey)
clp=clp.SelectEvery(3,1)
return clp
}

This may also help others that want to replace functions or plug-ins from the original AviSynth plug-ins or functions, especially when trying to use 32-bit and 64-bit AviSynth+

innocenat
9th August 2014, 15:56
I don't know about other, but I don't think it is right topic to ask.

For RgTools, you can just replace removegrain[something].dll with just rgtools dll (don't forget to remove old dll), the new version will be use automatically as they provide same functions as old version. I don't know about mvtools2, but documentation suggest the you can just change MV*** to M*** and it will works.

Please also note that those changes aren't related to Avisynth+ in anyway, as all will also work with original avisynth 2.6alpha5. For 64-bit Avisynth+ just use 64bit version of the dll, the rest is the same.

feisty2
10th August 2014, 07:59
here you go
function RemoveDirt(clip input, int "limit", bool "_grey")
{
clensed=input.Clense(grey=_grey)
alt=input.removegrain(2)
return RestoreMotionBlocks(clensed,input,alternative=alt,pthreshold=4,cthreshold=6, gmthreshold=60,dist=2,dmode=2,debug=false,noise=limit,noisy=12,grey=_grey)
}

function RemoveDirtMC(clip clip,int "limit", bool "_grey")
{
_grey=default(_grey, false)
limit = default(limit,6)
super = clip.msuper (sharp=1,pel=2)
bvec = super.MAnalyse(isb=false, blksize=8, delta=1, truemotion=true, overlap=4)
fvec = super.MAnalyse(isb=true, blksize=8, delta=1, truemotion=true, overlap=4)
backw = clip.MFlow(super, bvec)
forw = clip.MFlow(super, fvec)
clp=interleave(backw,clip,forw)
clp=clp.RemoveDirt(limit,_grey)
clp=clp.SelectEvery(3,1)
return clp
}
"RestoreMotionBlocks" function is from here http://www.removedirt.de.tf/

Reel.Deel
10th August 2014, 10:25
here you go


RgTools' Clense does not have the 'cache' parameter.

feisty2
10th August 2014, 13:38
I already corrected it, thank you for tipping

bennynihon
15th August 2014, 16:53
I have an 8 core i7 with 16GB of RAM running x64 Windows 8.1. For whatever reason feeding x264 my Avisynth+ MT script crashes with Prefetch > 4. Prefetch(4) mostly works, but here's the kicker. My script with one clip works just fine with Prefetch(4), while another source clip using the same exact script crashes with Prefetch(4). I need to use Prefetch(3) for that one. I notice that avisynth and x264 use comparatively very little memory. About 800MB each. I'm OK with leaving it at Prefetch(4) as the performance is satisfactory to me. But I'm concerned by the lack of consistency even with the same script. Are there any other tweaks or fine tuning I can do to possibly get better consistency or performance? Here's my script:

SetFilterMTMode("", 2)
SetFilterMTMode("FFVideoSource", 3)

# Video Source
FFVideoSource("video.mkv")

# Crop
Crop(0,20,0,-20) # 1920x1040 (1.85:1 AR)

# Masks
vLumaMask=mt_binarize(threshold=64, upper=true).grayscale().BilinearResize((width/32)*2, (height/32)*2).BilinearResize(width,height).mt_binarize(threshold=254)
vEdgeMask=mt_edge(mode="prewitt",thy1=0,thy2=16).grayscale().mt_binarize(threshold=16, upper=true).BilinearResize((width/32)*2, (height/32)*2).BilinearResize(width,height).mt_binarize(threshold=254)
vGrainMask=mt_logic(vLumaMask,vEdgeMask,mode="and")
vDegrainMask=vGrainMask.mt_invert()

# Degrain
bs = 16
super = MSuper(pel=2,sharp=1,hpad=bs,vpad=bs)
bvec2 = MAnalyse(super, isb=true, delta=2, blksize=bs, overlap=bs/2)
bvec1 = MAnalyse(super, isb=true, delta=1, blksize=bs, overlap=bs/2)
fvec1 = MAnalyse(super, isb=false, delta=1, blksize=bs, overlap=bs/2)
fvec2 = MAnalyse(super, isb=false, delta=2, blksize=bs, overlap=bs/2)
vClean=MDegrain2(super,bvec1,fvec1,bvec2,fvec2,thSAD=400)
mt_merge(vClean,vDegrainMask,u=2,v=2)

# Dither
Dither_convert_8_to_16()
vGrain=Dither_add_grain16(var=0.6,uvar=0,lsb_in=true)
Dither_merge16_8(vGrain,vGrainMask,u=2,v=2)

# Output
DitherPost(mode=3) # 8-bit output

# Multi-threaded
Prefetch(3)

Dion
16th August 2014, 08:10
I cannot seem to get AvsPMod to display video with Avisynth+. It always locks up when I try to load a mkv into it. Does it from DSS2, FFVideoSource, DGSource. All of them.

I have the latest Avisynth+ Installed. I am using the AvsPMod recommended on the Avisynth+ Page. If I use the vanilla AvsPMod 2.5.1 I get an error at startup. And some plugin's don't work. But I am able to display video.

Does anyone know why?

thescrapyard
16th August 2014, 09:41
Try this, I use avisynth+ with avspmod as well

http://www6.zippyshare.com/v/49944794/file.html


This link is from the avisynth+ site and specifies this version of avspmod that has been tested as ok with avisynth+

Also, try telling avisynth/avisynth+ where to find plugins and scripts. Its good at falling over with obscure errors if it can't find what its looking for. I've done it this way for years with no issues since it was suggested to me.... and use MKV as well

This is a couple of lines from scripts I use with avspmod


dss2("g:\ConvertXToDVD\dangermouse.mkv")
ConvertToYV12()

DLLPath="C:\Program Files (x86)\Applications\--Scripts\"

I just use the DLLPath variable as it then means i don't have a messy script and makes life easier, like this. If I miss out the ConverttoYV12 it fails with an error, so this just makes sure its ok


dss2("g:\ConvertXToDVD\dangermouse.mkv")
ConvertToYV12()
DLLPath="C:\Program Files (x86)\Applications\--Scripts\"

SetFilterMTMode("",2)

Loadplugin(DLLPath+"-denoiser\mvtools2.dll")
Loadplugin(DLLPath+"-denoiser\removedirt.dll")
Loadplugin(DLLPath+"-denoiser\removegrain.dll")
Loadplugin(DLLPath+"-denoiser\repair.dll")
Import(DLLPath+"-denoiser\removedirtmc.avs")

removedirtmc(75,false)

prefetch(3)

Dion
16th August 2014, 23:58
Try this, I use avisynth+ with avspmod as well

http://www6.zippyshare.com/v/49944794/file.html

I already said I used it in my previous post.

Edit: I have found the problem nevermind.

jmartinr
17th August 2014, 12:52
I already said I used it in my previous post.

Edit: I have found the problem nevermind.

What was the problem/solution?

Dion
17th August 2014, 22:57
What was the problem/solution?

One of my plugin's doesn't like Avisynth+. Deleted it and it all worked fine. I msged the dev of the plugin to fix it. So hoping he does.

StainlessS
17th August 2014, 23:04
One of my plugin's
Is the name of the plugin a secret ?

Octo-puss
18th August 2014, 09:01
Does this project have any chance of ever being resurrected? Right now it feels like so much wasted potential.

aegisofrime
18th August 2014, 12:13
Does this project have any chance of ever being resurrected? Right now it feels like so much wasted potential.

It's funny that Avisynth has so much history of promising projects being dropped. As I mentioned earlier in the thread, the history of Avisynth+ is uncannily like that of Avisynth x64. Both started out with great promise with the developer showing great enthusiasm and developing the project with great speed. Then they disappear suddenly :scared:

Don't get me wrong, I don't blame them or anything. They are giving their time away for free and for that I'm appreciative. I'm just curious what is it that cause them to disappear in that manner. :(

TurboPascal7
18th August 2014, 14:22
Does this project have any chance of ever being resurrected? Right now it feels like so much wasted potential.
ultim is alive and might return to the project in the future. I wouldn't expect other people to join him though.

I'm just curious what is it that cause them to disappear in that manner. :(
Avisynth development is one of the least rewarding activities for a programmer and the whole idea of complicated and powerful frameservers is dying, imho. After a few months most of the "fun" wears off and all you left with is extremely boring maintenance, depressing codebase, tiny community and zero motivation to continue spending your time on it.

Something like that.

macromizer
18th August 2014, 15:58
It's funny that Avisynth has so much history of promising projects being dropped. As I mentioned earlier in the thread, the history of Avisynth+ is uncannily like that of Avisynth x64. Both started out with great promise with the developer showing great enthusiasm and developing the project with great speed. Then they disappear suddenly :scared:

Don't get me wrong, I don't blame them or anything. They are giving their time away for free and for that I'm appreciative. I'm just curious what is it that cause them to disappear in that manner. :(

As said by TurboPascal, it's just a huge drudge trying to fixup and maintain a legacy codebase you had no hand in originally writing. Avisynth development before ultim came along also suffered a lot from the same perception of ffmpeg before the libav fork. That perception being that the maintainer(s) are slow to accept patches, if at all, and a resistance to a lot of changes necessary to bring in more contributors (in the case of Avisynth requiring maintaining compatibility with a 16-year-old version of Visual Studio). While ffmpeg became much quicker to accept patches and new features after being forked, Avisynth unfortunately just maintained the status quo.

And then the Avisynth 3 guys simply just bit off way more work than they could reasonably do with only a couple of people at most. And unfortunately if ultim is going to end up being the only driving force for Avisynth+ it's going to suffer the same fate.

Even in the worst scenario for Avisynth/Avisynth+, Vapoursynth development seems to be picking back up with more contributors than just Myrsloik and more filters being ported over.

I was looking into porting Avisynth+ over to OS X and possibly after that to iOS (simply for the challenge), but I got stalled and am even wondering if it's even something worthwhile considering that quite a bit of porting effort would be needed to get a decent amount of plugins in addition to the modernization that TP and others have already done and the fact that a number of useful yet closed-source plugins won't ever run natively. And if you've already got to port things, I might as well just go with Vapoursynth. I would be more than willing to look back into it if there was a genuine want for it, but being somewhat fatalistic it seems to be a futile effort for little gain over something already up and running.

qyot27
18th August 2014, 18:56
Yes, because a pause of 5 months (two months if you count the pull from June) is in any way comparable to a 5+ year, prolonged development hell. /sarcasm

Think about it for a second: within a time span of 6 months (September 2013-March 2014), there were enough unique commits to AviSynth+ to outpace the entire development cycle of AviSynth 2.6 up to that point, and even a chunk of 2.5's. It's not unreasonable, especially with the volume of different things that were getting done (64-bit support, intrinsics, MT & caching, etc.), to expect some level of burn-out or slow down. And even granted that, the 'level' that avsplus is currently at is not in any way lagging behind 2.6 - which hasn't had any commits since September 2013 when 2.6a5 was released.


I was looking into porting Avisynth+ over to OS X and possibly after that to iOS (simply for the challenge), but I got stalled and am even wondering if it's even something worthwhile considering that quite a bit of porting effort would be needed to get a decent amount of plugins in addition to the modernization that TP and others have already done and the fact that a number of useful yet closed-source plugins won't ever run natively. And if you've already got to port things, I might as well just go with Vapoursynth. I would be more than willing to look back into it if there was a genuine want for it, but being somewhat fatalistic it seems to be a futile effort for little gain over something already up and running.
I actually saw this on Github back when it was pushed, and was looking to integrate the OSX changes and innocenat's Linux work together into a single branch. I certainly would be willing to assist on tedious work (I did transition the English documentation over to RST, even though the content needs updating). I started trying to do this in such a way to get it building on Linux with GCC, but I hit a snag in avisynth.cpp and I've been procrastinating on trying to look for solutions (or jumping on IRC to do the discussion in real time, since most of the time I use IRC under Windows but do any compilation tests and such under Linux). One particularly nasty issue, is that GCC's handling of intrinsics for CPU runtime detection is braindead and requires each instruction set's intrinsics to be segregated into separate files, because otherwise, you'll only ever be able to compile the project for the highest instruction set used, completely defeating the purpose. CMake is capable of handling this situation (x265 was set up this way for a while, before they moved [virtually?] everything to YASM), but it requires special-casing so that the necessary -m flags for the intrinsics are applied only on a per-file basis. This was most of what I was doing before I hit that roadblock, but I hadn't set up the stuff for CMake to deal with it yet.

IMO, the value of detethering it from Windows is in getting AvxSynth out of the way - that's what I'm really most concerned about right now. It also would help to expand the potential developer base, as every so often there's a new pull request or issue opened over on AvxSynth's repo that I can practically guarantee will come to nothing. The lasting effect AvxSynth had was to finally get libavformat's AviSynth demuxer rewritten properly, but AvxSynth itself is not a long-term solution (and it's at a major feature disadvantage, because it's based on 2.5 with a few various backports from 2.6, doesn't support the newer colorspaces from 2.6, and has all its assembly disabled). Having something that's properly up-to-date with the development HEAD should go a long way toward getting more use on non-Windows platforms, and then we might actually see more plugins ported over or new plugins getting written for it. I don't place a lot of emphasis on the state of the plugins to determine the value of getting the core working there, since even the core in a vacuum has features that are useful on their own (most of my DVD authoring workflow relies on scripts only using core functions, apart from using FFMS2 to load the stuff). There was also an offhanded comment by IanB on the AvxSynth thread that since most plugins are simply algorithm code, it might be possible to thunk them - which would at least be a band-aid until they're ported properly (this is basically what mplayer-svn does with w32codecs/w64codecs, right?).



Maybe if we go about it like, "okay, for this development cycle we're going to focus on this feature", and then lay out the actual steps - in public view on this thread - on how to achieve that, with technical details, it might help to motivate everyone (and actually give users more insight into what's going on so we don't have all the easily demotivating 'is it dead or not?' talk getting posted). That's one thing that I think is contributing to the drag, since many of the discussions about how to go about implementing new features would be relegated to IRC and this thread is basically for people to ask about how to use MT (lately, anyway). It would be one thing if the IRC logs were cached somewhere and downloadable/viewable online for reference, but as far as I know, they aren't. One thing for instance, is how to translate from MSVC-isms to something that all three of the common compilers (MSVC, GCC, and Clang) can digest, where the gotchas actually are, and in those cases that the dialect is unavoidable, what the equivalent is in the others so that the branching can be set up cleanly.

I haven't really seen any more big reports of MT failing in the months since it appeared (in terms of its actual stability), save for the bounds checking issue with the audio cache that I reported in here and on Github. If I'm correct about that assessment, perhaps it's time to just bite the bullet and merge it to master and bump the version number to 0.2. The psychological effect of just going ahead and releasing it might help too.

Octo-puss
18th August 2014, 19:41
and the whole idea of complicated and powerful frameservers is dying, imho
Hm, but what else are we supposed to use instead of Avisynth if it's dying then?