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.

 Doom9's Forum Avisynth+
 Register FAQ Calendar Search Today's Posts Mark Forums Read

22nd October 2019, 01:33   #4921  |  Link
qyot27
...?

Join Date: Nov 2005
Location: Florida
Posts: 1,099
Quote:
 Originally Posted by wonkey_monkey Just so I've got this straight, pinterf forked the "official" Avisynth+ to update it, and now the "official" Avisynth+ has incorporated his work into itself?
Yes and no. The nuance is a bit specific to how Git works.

Git itself is a very decentralized development platform, so 'fork' can carry a much less confrontational connotation than it did in the earlier days of FOSS development.

pinterf had opened pull requests for upstream to merge several times before ultim went on hiatus in 2016. That most recent one, #101, wasn't merged before ultim left, so pinterf's personal repo those PRs were opened from became the de facto development HEAD. If we needed to get something merged, the PRs were submitted to pinterf, and became part of pull request #101.

In June, ultim came back for a moment and granted pinterf and myself commit rights to the main repository so that it could stay up-to-date. Basically, the development HEAD of the project is back at its original location.

 22nd October 2019, 08:18 #4922  |  Link LigH German doom9/Gleitz SuMo     Join Date: Oct 2001 Location: Germany, rural Altmark Posts: 5,984 Then I guess I can move to https://github.com/AviSynth/AviSynthPlus/releases as default download source now, assuming that all the developers will contribute there now. __________________ New German Gleitz board MediaFire: x264 | x265 | VPx | AOM | Xvid
 22nd October 2019, 09:09 #4923  |  Link pinterf Registered User   Join Date: Jan 2014 Posts: 1,262 Yep, now I can work directly into the master branch of the original AvisynthPlus repo, thanks qyot27 to make this step. I met ultim in the summer, he told he was willing to give access to http://avs-plus.net . But at that time (and since then as well) I was engaged in office work and other activities so I postponed the decision whether I wanted to deal with it or not.
22nd October 2019, 09:33   #4924  |  Link
pinterf
Registered User

Join Date: Jan 2014
Posts: 1,262
Quote:
 Originally Posted by StainlessS Nice theory P But, what about this one then [no SeparateRows] Code: FAIL = False # Force Falure ? C=0 For(i=0,255) { C2=BlankClip(Pixel_Type="Y8",Length=1,Color_YUV=(i*256+$80)*256+$80) C=(!c.IsClip) ? C2 : C ++ C2 } C # 256 frames, Y ascending Len = (FAIL) ? 1 : FrameCount K=Last.BlankClip(Length=Len,Pixel_Type="Y8",Color_YUV=$008080).Subtitle("[FAIL=" + String(FAIL) + "] Is NOT greater than 100.0",Align=5) W=Last.BlankClip(Length=Len,Pixel_Type="Y8",Color_YUV=$FF8080).Subtitle("[FAIL=" + String(FAIL) + "] Is greater than 100.0",Align=5) ConditionalFilter(W,K,"averageLuma >= 100.0 ",Show=true) C=C.Scriptclip("""Subtitle(String(current_frame,"%.0f] Y=") + String(AverageLuma,"%.2f"))""") StackHorizontal(C,Last) #Trim(255,-1) # Only show last frame where result should be WHITE. I had posted this earlier in this thread [as EDIT] but forgot, here:- http://forum.doom9.org/showthread.ph...79#post1886179 EDIT: both W and K have to be single frame to fail, I cant re-check as I'm in middle of system restore from image. EDIT: I would expect it to behave like the other runtime filters, it is commonplace to return a single frame in eg Scriptclip, makes no difference to length of outut clip, which is guaranteed same as input.
Works as expected. The frame count of ConditionalFilter depends only on W and K, namely max(K.FrameCount, W.FrameCount).
See https://github.com/AviSynth/AviSynth...ional.cpp#L233

So the output contains exactly 1 frames and when you do StackHorizontal with the original 256-frame clip, it will show the same single frame on the right.

 22nd October 2019, 10:23 #4925  |  Link StainlessS HeartlessS Usurer     Join Date: Dec 2009 Location: Over the rainbow Posts: 7,391 Thanks P, I guess that I have generally misunderstood the operation of that filter, also explains why I usually avoid it altogether. I am now questioning my entire mental model of the Universe. EDIT: OT There was a TV series in the UK called "Baby Its you" :- https://www.walltowall.co.uk/program...-world_26.aspx (Google search to avoid song of same name, "Baby Its you" TV -song") EDIT: aka "A Baby’s World", narrated by Bill Paterson. [Ally Frazer in "Auf Wiedersehen Pet"] They had a ~6 month old strapped into a chair, blank room with nothing of interest to distract infant. In front of baby, a table and an up/down sliding wall. From the side, out comes a little wooden doll and goes behind the wall. Wall goes down and there is the single wooden doll. Doll exits stage right, back behind curtain from whence it came, wall goes up. Operation repeats with two individual dolls going behind all, wall drops, two dolls revealed, both exit stage right, wall goes up. Operation repeats again with two individual dolls going behind wall, wall drops, but this time there are three dolls revealed. Baby in chair throws up its arms and with look look of total horror on its face, you could read its thoughts, "Damn, sometimes 1 + 1 = 3 ???". That baby is probably now a theoretical mathematician, or total math dunce. The above award winning TV program is available on DVD, (Think I'll get it, it was most compelling viewing). __________________ 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; 22nd October 2019 at 11:20.
22nd October 2019, 13:44   #4926  |  Link
pinterf
Registered User

Join Date: Jan 2014
Posts: 1,262
Quote:
 Originally Posted by Groucho2004 As I mentioned in the other two threads, install the non-GCC version.
I see that the Avisynth+ link was updated on videohelp, pointing on the GCC release build as the "portable" version. But it won't work properly?
Also, the changelog is also much shorter there than it appears in the readme.txt. I don't know who is maintaining the links there.

Note, that my earlier releases with suffix filesonly.7z were containing the same dlls as the main installer, in this 3.4 release there is no such option yet.

And a question: in which environment should someone use the GCC build?

 22nd October 2019, 13:46 #4927  |  Link tormento Acid fr0g     Join Date: May 2002 Location: Italy Posts: 1,045 I am finding AviSynth+ 3.4.0–20191020 bit slower than previous 2915 (x64 environment). First script: PHP Code:  SetMemoryMax(8000)SetFilterMTMode("DEFAULT_MT_MODE", 2)LoadPlugin("D:\eseguibili\media\DGDecNV_x64\DGDecodeNV.dll")DGSource("E:\in\2_23 Shining (remastered extended)\01222.dgi")CompTest(1)SMDegrain (tr=4, thSAD=500, refinemotion=false, n16=true, mode=0, contrasharp=false, PreFilter=4, truemotion=false, plane=4, chroma=true)Prefetch(6)   2915: encoded 2072 frames, 10.49 fps, 2432.63 kb/s 3.4.0–20191020: encoded 2072 frames, 10.05 fps, 2432.63 kb/s Same script but with tr=6: 2915: encoded 2072 frames, 7.91 fps, 2312.11 kb/s 3.4.0–20191020: encoded 2072 frames, 7.42 fps, 2312.09 kb/s Can you confirm this? __________________ @turment on Telegram Last edited by tormento; 22nd October 2019 at 13:58.
22nd October 2019, 14:05   #4928  |  Link
Groucho2004
Fossil

Join Date: Mar 2006
Location: A wretched hive of scum and villainy
Posts: 4,515
Quote:
 Originally Posted by tormento I am finding AviSynth+ 3.4.0–20191020 bit slower than previous 2915 (x64 environment). Can you confirm this?
Why are you adding useless complexity to this comparison by bringing an encoder into it? Measure the speed of the script and report memory usage, fps, etc.
__________________
Groucho's Avisynth Stuff

22nd October 2019, 14:56   #4929  |  Link
tormento
Acid fr0g

Join Date: May 2002
Location: Italy
Posts: 1,045
Quote:
 Originally Posted by Groucho2004 Why are you adding useless complexity to this comparison by bringing an encoder into it? Measure the speed of the script and report memory usage, fps, etc.
Results:

AviSynth+ 0.1 (r2900, MT, x86_64)
Frames processed: 2072 (0 - 2071)
FPS (min | max | average): 1.548 | 500000 | 12.84
Process memory usage (max): 1444 MiB
CPU usage (average): 69.6%
GPU usage (average): 31%
VPU usage (average): 8%
GPU memory usage: 1811 MiB
Time (elapsed): 00:02:41.330

AviSynth+ 0.1 (r2915, MT, x86_64)
Frames processed: 2072 (0 - 2071)
FPS (min | max | average): 1.546 | 588235 | 12.86
Process memory usage (max): 1442 MiB
CPU usage (average): 69.5%
GPU usage (average): 30%
VPU usage (average): 9%
GPU memory usage: 1788 MiB
Time (elapsed): 00:02:41.072

AviSynth+ 3.4 (r2923, 3.4, x86_64)
Frames processed: 2072 (0 - 2071)
FPS (min | max | average): 1.627 | 500000 | 12.80
Process memory usage (max): 1445 MiB
CPU usage (average): 69.5%
GPU usage (average): 30%
VPU usage (average): 8%
GPU memory usage: 1810 MiB
Time (elapsed): 00:02:41.868

Not so different indeed. But, using Simple x264 launcher:

AviSynth+ 0.1 (r2900, MT, x86_64)
10.18 fps, 2432.64 kb/s

AviSynth+ 0.1 (r2915, MT, x86_64)
10.50 fps, 2432.63 kb/s

AviSynth+ 3.4 (r2923, 3.4, x86_64)
9.72 fps, 2432.63 kb/s

Strange, uh?
__________________
@turment on Telegram

Last edited by tormento; 22nd October 2019 at 14:58.

22nd October 2019, 15:20   #4930  |  Link
qyot27
...?

Join Date: Nov 2005
Location: Florida
Posts: 1,099
Quote:
 Originally Posted by pinterf I see that the Avisynth+ link was updated on videohelp, pointing on the GCC release build as the "portable" version. But it won't work properly? Also, the changelog is also much shorter there than it appears in the readme.txt. I don't know who is maintaining the links there. Note, that my earlier releases with suffix filesonly.7z were containing the same dlls as the main installer, in this 3.4 release there is no such option yet.
I noticed that too. I *think* it might be a script that just automatically thinks .7z archive = portable.

I mean, there is Installation_Instructions.txt in the archive that says exactly what you need to do with it, and the .dlls being in typical FHS-style directories (x86_64-w64-mingw32/[bin|include|lib] and i686-w64-mingw32/[bin|include|lib]) rather than the way they're organized for DLL-only MSVC builds should be another point making it obvious.

Quote:
 And a question: in which environment should someone use the GCC build?
I could say 'to test with', but that's only somewhat true because the build does work just fine on its own and with the plugins included with it (and C plugins). It can be used to test whether your C++ plugin can work correctly when built with GCC, though (or to run speed tests, or to be able to use gdb to debug, I suppose, although that's not a debug build).

64-bit builds of FFmpeg and VirtualDub2 are fine with the GCC builds. The 32-bit ones need separate builds to work correctly with it (at least in FFmpeg's case).

23rd October 2019, 12:35   #4931  |  Link
tebasuna51
Moderator

Join Date: Feb 2005
Location: Spain
Posts: 5,702
Quote:
 Originally Posted by qyot27 I mean, there is Installation_Instructions.txt in the archive that says exactly what you need to do with it...
Quote:
 "However, GCC-built C++ plugins cannot reside in the same directories as MSVC-built C++ plugins, and AviSynth+GCC cannot use MSVC-built C++ plugins. Mixing C++ plugins built by MSVC and GCC in a single directory will cause AviSynth+ (MSVC or GCC) to crash."
Really?!

Another set of plugins?

Please some pity with the users.
__________________
BeHappy, AviSynth audio transcoder, in Doom9 forums. NicAudio, BassAudio, audio decoders.

23rd October 2019, 15:35   #4932  |  Link
manolito
Registered User

Join Date: Sep 2003
Location: Berlin, Germany
Posts: 2,694
Quote:
 Originally Posted by tebasuna51 Please some pity with the users.
+1

If even a guru like StainlessS downloads the wrong version just because it is at the top of the list then something is wrong with the download page.

No "normal" AVS user knows the difference between an MSVC build and a GCC build, and nobody has a clue about the restrictions of the GCC build.

So at least the GCC version should be slightly hidden, and there should be a clear warning (in red bold letters) that this version is not meant for the average user.

Cheers
manolito

 23rd October 2019, 16:00 #4933  |  Link wonkey_monkey Formerly davidh*****     Join Date: Jan 2004 Posts: 1,872 What is the GCC version for? __________________ My AviSynth filters / I'm the Doctor
23rd October 2019, 19:18   #4934  |  Link
qyot27
...?

Join Date: Nov 2005
Location: Florida
Posts: 1,099
Quote:
 Originally Posted by tebasuna51 Really?! Another set of plugins? Please some pity with the users.
Unless you're fine completely abandoning the use of C++ plugins, there's no way around that problem. C++ implementations are compiler-specific, and C++ plugins must be built with the same compiler that built the program core. The things that might have been able to partially smooth over this problem would have the effect of completely breaking existing 2.5, 2.6, and Plus plugins and would have had to have been done years before AviSynth+ even existed.

The C API is the easiest way to avoid that problem, because it sidesteps the issue entirely. But there's not a whole lot of C plugins, and only two or three I'd consider to be of major importance (the C-plugin variant of FFMS2, AssRender, and maybe yadif).

Quote:
 Originally Posted by manolito So at least the GCC version should be slightly hidden, and there should be a clear warning (in red bold letters) that this version is not meant for the average user.
I had to rename it in order for it not to be first in the list anymore (the order is down to Github's own sorting), and I added a warning to the release post.

Quote:
 Originally Posted by wonkey_monkey What is the GCC version for?
Under Windows? Speed tests, compiler compliance tests, and debugging with gdb (although as I noted before, the available GCC build is not a debug build and has its symbols stripped). Cross-compiling with MinGW-w64 under MSys2, Cygwin, or from Linux distros.

GCC support is paramount for cross-platform development, though. GCC (or compilers that stay compatible with GCC's output) is dominant on pretty much everything that's not Windows. At present in one of the development branches, nearly all of the AviSynth+ core and filters can compile natively on Linux. The missing bits are critical for it actually working on there, but basically, that leap to being fully cross-platform is tantalizingly close now - and a significant reason is because GCC compliance was added 3 years ago.

Last edited by qyot27; 23rd October 2019 at 19:30.

 23rd October 2019, 19:41 #4935  |  Link Myrsloik Professional Code Monkey     Join Date: Jun 2003 Location: Ikea Chair Posts: 2,067 The previous post is mostly false. There's clang-cl which does support the visual studio c++ ABI on windows. Thin api wrapper layers are also an option. För some reason you chose to produce a mostly unusable build configuration on windows. __________________ VapourSynth - proving that scripting languages and video processing isn't dead yet
 23rd October 2019, 20:04 #4936  |  Link manolito Registered User     Join Date: Sep 2003 Location: Berlin, Germany Posts: 2,694 Thanks qyot27 for the clarifications and for editing the GitHub download page... About the speed issues which were reported by tormento: I tried to replicate the issues under a 32-bit environment, and I couldn't. The script speeds reported by AvsMeter were always identical, and measuring the speeds for a real conversion using X264 was also uneventful. I always got the same speed with AVS+ 3.40 and AVS+ r2915, no matter how simple or complex my script was. Could this issue be a 64-bit thing? Cheers manolito
23rd October 2019, 22:21   #4937  |  Link
qyot27
...?

Join Date: Nov 2005
Location: Florida
Posts: 1,099
Quote:
 Originally Posted by Myrsloik There's clang-cl which does support the visual studio c++ ABI on windows.
I didn't mention clang-cl mostly because my point was that VC++ and MinGW/GCC have incompatible ABIs and avisynth.h and related bits don't try to reconcile them. I could have been more precise, or just pointed to this post by JEEB from several years ago.

Quote:
 Thin api wrapper layers are also an option.
A C++ wrapper over a standard C API (tp7 mentioned this as the goal for AviSynth+'s future API development, but it obviously never happened), or a C++ wrapper around an incompatible C++ ABI? The former is what I usually see suggested, not the latter.

 24th October 2019, 13:51 #4938  |  Link manolito Registered User     Join Date: Sep 2003 Location: Berlin, Germany Posts: 2,694 The AviSynth main page at avisynth.nl still points to the latest GitHub pinterf Avisynth+ r2772 version instead of the current page for version 3.40. Could someone please consolidate the links?
25th October 2019, 10:59   #4939  |  Link
r0lZ
PgcEdit daemon

Join Date: Jul 2003
Posts: 7,357
Quote:
 Originally Posted by manolito The AviSynth main page at avisynth.nl still points to the latest GitHub pinterf Avisynth+ r2772 version instead of the current page for version 3.40. Could someone please consolidate the links?
I agree. Currently, it is a nightmare for the newbie to find the correct version to install. The first result when you google Avisynth+ is avs-plus.net, and finding this thread is not obvious for many peoples.

avs-plus.net should be closed, and a similar site with clear links to download the latest stable version should be created.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV

26th October 2019, 11:42   #4940  |  Link
tormento
Acid fr0g

Join Date: May 2002
Location: Italy
Posts: 1,045
Quote:
 Originally Posted by manolito Could this issue be a 64-bit thing?
Can't you do a try with x64?
__________________
@turment on Telegram