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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 22nd October 2019, 01:33   #4921  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,078
Quote:
Originally Posted by wonkey_monkey View Post
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.
qyot27 is offline   Reply With Quote
Old 22nd October 2019, 08:18   #4922  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 5,940
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
LigH is offline   Reply With Quote
Old 22nd October 2019, 09:09   #4923  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,245
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.
pinterf is offline   Reply With Quote
Old 22nd October 2019, 09:33   #4924  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,245
Quote:
Originally Posted by StainlessS View Post
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.
pinterf is offline   Reply With Quote
Old 22nd October 2019, 10:23   #4925  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 7,188
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.
StainlessS is offline   Reply With Quote
Old 22nd October 2019, 13:44   #4926  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,245
Quote:
Originally Posted by Groucho2004 View Post
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?
pinterf is offline   Reply With Quote
Old 22nd October 2019, 13:46   #4927  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,034
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=4thSAD=500refinemotion=falsen16=truemode=0contrasharp=falsePreFilter=4truemotion=falseplane=4chroma=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.
tormento is offline   Reply With Quote
Old 22nd October 2019, 14:05   #4928  |  Link
Groucho2004
►◄
 
Groucho2004's Avatar
 
Join Date: Mar 2006
Location: A wretched hive of scum and villainy
Posts: 4,457
Quote:
Originally Posted by tormento View Post
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
Groucho2004 is offline   Reply With Quote
Old 22nd October 2019, 14:56   #4929  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,034
Quote:
Originally Posted by Groucho2004 View Post
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
Thread count: 74
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
Thread count: 74
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
Thread count: 74
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.
tormento is offline   Reply With Quote
Old 22nd October 2019, 15:20   #4930  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,078
Quote:
Originally Posted by pinterf View Post
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).
qyot27 is offline   Reply With Quote
Old 23rd October 2019, 12:35   #4931  |  Link
tebasuna51
Moderator
 
tebasuna51's Avatar
 
Join Date: Feb 2005
Location: Spain
Posts: 5,638
Quote:
Originally Posted by qyot27 View Post
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.
tebasuna51 is offline   Reply With Quote
Old 23rd October 2019, 15:35   #4932  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 2,630
Quote:
Originally Posted by tebasuna51 View Post
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
manolito is offline   Reply With Quote
Old 23rd October 2019, 16:00   #4933  |  Link
wonkey_monkey
Formerly davidh*****
 
wonkey_monkey's Avatar
 
Join Date: Jan 2004
Posts: 1,820
What is the GCC version for?
__________________
My AviSynth filters / I'm the Doctor
wonkey_monkey is offline   Reply With Quote
Old 23rd October 2019, 19:18   #4934  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,078
Quote:
Originally Posted by tebasuna51 View Post
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.
qyot27 is offline   Reply With Quote
Old 23rd October 2019, 19:41   #4935  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,030
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
Myrsloik is offline   Reply With Quote
Old 23rd October 2019, 20:04   #4936  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 2,630
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
manolito is offline   Reply With Quote
Old 23rd October 2019, 22:21   #4937  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,078
Quote:
Originally Posted by Myrsloik View Post
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.
qyot27 is offline   Reply With Quote
Old 24th October 2019, 13:51   #4938  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 2,630
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?
manolito is offline   Reply With Quote
Old 25th October 2019, 10:59   #4939  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,328
Quote:
Originally Posted by manolito View Post
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
r0lZ is online now   Reply With Quote
Old 26th October 2019, 11:42   #4940  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,034
Quote:
Originally Posted by manolito View Post
Could this issue be a 64-bit thing?
Can't you do a try with x64?
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 14:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.