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

Closed Thread
 
Thread Tools Search this Thread Display Modes
Old 31st December 2013, 10:42   #461  |  Link
Zathor
Registered User
 
Join Date: Nov 2009
Posts: 2,405
Quote:
Originally Posted by ultim View Post
Besides proudly wielding the version number "0.1 (r1555)"[...]
Thanks for the new version numbers. I am not sure if it is intended, but the information in the dll itself and VersionString() in AviSynth do not match. Currently there is:
VersionString(): AviSynth+ 0.1 (r1561, x86)
FileProperties.ProductName: AviSynth+ 2.6
FileProperties.FileVersion: 2, 6, 0, 5
(and also some others - maybe you also want to change the home page)
Zathor is offline  
Old 1st January 2014, 16:09   #462  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by jpsdr View Post
I think i may have discoverd an issue with x64 version, when trying to port the nnedi3 to x64.
...
No, it is actually a bug in nnedi3's sources, it is using an avisynth.h that is not x64 compatible. The bug is in AVSValue's Assign() function in nnedi3, you should take the working implementation from Avs+ sources to fix it.

p.s. This is why I am against every plugin having a separate copy of the avisynth header. With possibly all other libraries around the world, if someone wants to compile an extension or application for that lib, they just use the headers from the library's sources by adding the core's public headers path to the compiler include dirs. Why can't AVS plugin devs do that too?
__________________
AviSynth+
ultim is offline  
Old 1st January 2014, 16:38   #463  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,431
Quote:
Originally Posted by ultim View Post
This is why I am against every plugin having a separate copy of the avisynth header. With possibly all other libraries around the world, if someone wants to compile an extension or application for that lib, they just use the headers from the library's sources by adding the core's public headers path to the compiler include dirs. Why can't AVS plugin devs do that too?
That's my view too, but TurboPascal7 (here) disagrees.
__________________
GScript and GRunT - complex Avisynth scripting made easier
Gavino is offline  
Old 1st January 2014, 17:58   #464  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by Gavino View Post
That's my view too, but TurboPascal7 (here) disagrees.
About 2-3 weeks ago I helped him debug one of his sources and that (too) turned out to be caused by a wrong avisynth.h header in the plugin. So he should have first-hand experience about the issues his method is causing. But here is my reflection on his arguments:

Quote:
1) Avisynth folder might be different on different systems, someone who uses your project file will need to modify that. One might not even have the required version installed. Of course if you're writing closed source plugins or hope to avoid contributors, this is "fine".
Yes, VC++ project files will need to be modified if a stranger tries to compile your plugin. But the compiler will tell you instantly and unambiguously that avisynth.h is not found, and the dev will know right away that the include path needs to be modified. But my argument is not that this is an easy fix. The real argument here is that fixing up the include path is much easier than trying to debug runtime problems caused by mismatched headers. Such runtime problems, as both recent and past experiences show, do happen a lot.

Quote:
2) It shows you the exact version of avisynth.h used to build a plugin. Just earlier this week I had to fix a plugin that didn't work in x64 mode because it still used AvisynthPluginInit2 even though it came with 2.6 header. This header being included helped me to identify the problem a lot faster than I could do with other methods.
Most times when you are compiling the plugin, you are not interested in which header version was used to compile it earlier. You will most probably have your own idea what AVS version you are compiling for, and that's all. Besides, the scenario described above is kind of like the self-fullfilling prophecy: Had the plugin been forced to correctly update to the latest header, the above mentioned bug wouldn't have happened at all. So frankly, I cannot accept this argument.

Which is kind of the point of always using the header from the avs(+) sources instead of making copies of it: 1) During compilation it will be obvious which Avs the plugin will be compatible with: that whose sources were used. 2) It'd avoid out-of-date headers of old plugins. 3) Plugins would automatically get (after a recompilation) all the fixes that go into the interface upstream. 4) It'd make it a lot less easy to mismatch header version with the intended/commonly used Avs version.
__________________
AviSynth+

Last edited by ultim; 1st January 2014 at 18:38.
ultim is offline  
Old 2nd January 2014, 11:59   #465  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,309
Quote:
Originally Posted by ultim View Post
No, it is actually a bug in nnedi3's sources, it is using an avisynth.h that is not x64 compatible. The bug is in AVSValue's Assign() function in nnedi3, you should take the working implementation from Avs+ sources to fix it.
Thanks.

Any new release (ei 1576...) scheduled ?

Last edited by jpsdr; 2nd January 2014 at 12:01.
jpsdr is offline  
Old 2nd January 2014, 16:40   #466  |  Link
LoRd_MuldeR
Software Developer
 
LoRd_MuldeR's Avatar
 
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
Quote:
Originally Posted by ultim View Post
Yes, VC++ project files will need to be modified if a stranger tries to compile your plugin. But the compiler will tell you instantly and unambiguously that avisynth.h is not found, and the dev will know right away that the include path needs to be modified.
Why not simply use an include path like "$(AVISYNTH_ROOT)\include" in your solution? Then the developer just needs to setup the environment variable AVISYNTH_ROOT properly and the solution file does not need to be modified at all...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊
LoRd_MuldeR is offline  
Old 2nd January 2014, 19:52   #467  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by jpsdr View Post
Any new release (ei 1576...) scheduled ?
Actually, I was just about to

So enjoy r1576. This is the fourth bugfix release in the current stable series, bringing you:
  • Reduced memory consumption in resizers.
  • The fix for this crash.
  • A fix for correct detection of AVX capability.
  • A small "for"-loop change for compatibility with Gavino's original version.
  • A fix for bad alignment in the crop filter.
  • A compatiblity fix in BitBlt.
  • And a fix for a bug that resulted in autoloaded functions sometimes taking precedence over a non-autoloaded version.

Okay, so much for the bugfixes. Boring but at least usefull. If you want something cool though, try out and help me test the new caching system in this experimental build. Make sure you rename the file to "avisynth.dll" if you try it out.

The experimental build is mostly the same as the just released r1576, except that it has the new caches, so if you're doing comparisons, please compare the experimental build to the r1576 release in this post. The new caches have been written from scratch with MT in mind, and although MT is not yet active in this build, the new caches will (or should) provide similar performance to the stable release, but with significantly reduced memory consumption. Let me know your experiences. The sooner I can deem the new caches "good enough", the sooner we'll see MT
__________________
AviSynth+

Last edited by ultim; 2nd January 2014 at 20:02.
ultim is offline  
Old 3rd January 2014, 17:07   #468  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,309
Bad news... The x64 version of r1576 is broken, i've rolled-back to r1561.
(Good new, is that i've now been able to make my nnedi port working on x64...).
jpsdr is offline  
Old 3rd January 2014, 17:34   #469  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by jpsdr View Post
The x64 version of r1576 is broken
That's an amazingly detailed bug report.

Anyway, the 64 Bit dll is a debug build and the correct runtime (msvcp110d.dll) is missing.
Groucho2004 is offline  
Old 3rd January 2014, 17:36   #470  |  Link
jpsdr
Registered User
 
Join Date: Oct 2002
Location: France
Posts: 2,309
Any avisynth script will generate an "unknow" error... Anyone who install and test it will see.
jpsdr is offline  
Old 3rd January 2014, 18:21   #471  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Gomen. I updated the binaries with release builds of the x64 version.
__________________
AviSynth+
ultim is offline  
Old 5th January 2014, 06:16   #472  |  Link
DrZine
Registered User
 
Join Date: May 2012
Posts: 7
Today I decided to try out avs+ for the first time. Everything seems to be stable so I did some benchmark comparisons. I'm on an AMD system and since hardly any testing is being done with AMD I thought I might share. I also tested out the new caching build just posted a few days ago while I was at it.

My system is a FX8350 @4.4ghz with 8gb of ram @1600mhz running Win7 Pro x64. All builds of avs+ are x86. I ran 2 different scripts with AVSmeter 1.7.4.

The first script I ran was a test script Groucho2004 posted up a few pages back. Going from Alpha5 to avs+ r1576 was a 50% speed increase! I'm guessing this has more to do with the improved core filters than anything else. From r1576 to the new cache build r1595 was a bit of a head scratcher though. The overall speed dropped just a hair while a second thread was created. Is this supposed to happen? As far as the memory usage it dropped by 155MB. Very nice.

Code:
[Script]
colorbars(width = 1920, height = 1080, pixel_type = "yv12").killaudio().assumefps(24000, 1001)

trim(0,499)
fadeio(248)
trim(0,499)

spline36resize(width() - 64, height() - 64).turnleft()
spline64resize(width() + 64, height() + 64).turnright()
bicubicresize(width() - 64, height() - 64).fliphorizontal()
sincresize(width() + 64, height() + 64).flipvertical()

a = tweak(hue=33)
u_chroma = blankclip(utoy(a), color=$808080)
ytouv(u_chroma, a.vtoy)
mergeluma(a)
tweak(hue=-33)

temporalsoften(4,4,8,15,2)
limiter(16, 235, 16, 240)
levels(0, 1, 255, 16, 235)
scriptclip("subtitle(string(ydifferencefromprevious))")
a=selectevery(3, 0).addborders(0,0, 16,0).crop(0,0, -16,0)
b=selectevery(3, 1).addborders(0,0, 32,0).crop(0,0, -32,0)
c=selectevery(3, 2).addborders(0,0, 64,0).crop(0,0, -64,0)
interleave(a, b, c)

----------------------------------------------------

[General info]
Log file created with:   AVSMeter 1.7.4 (AVS 2.6, x86)
Avisynth version:        AviSynth 2.60, build:Sep 18 2013 [17:36:36]


[Clip info]
Number of frames:                  500
Length (hhh:mm:ss.ms):   000:00:20.854
Frame width:                      1920
Frame height:                     1080
Framerate:                      23.976 (24000/1001)
Interlaced:                         No
Colorspace:                       YV12


[Runtime info]
Frames processed:               500 (0 - 499)
FPS (min | max | average):      2.16 | 11.68 | 4.77
CPU usage (average):            12%
Thread count:                   1
Physical Memory usage (peak):   467 MB
Virtual Memory usage (peak):    464 MB
Time (elapsed):                 000:01:44.901

----------------------------------------------------

[General info]
Log file created with:   AVSMeter 1.7.4 (AVS 2.6, x86)
Avisynth version:        AviSynth+ 0.1 (r1576, x86)


[Clip info]
Number of frames:                  500
Length (hhh:mm:ss.ms):   000:00:20.854
Frame width:                      1920
Frame height:                     1080
Framerate:                      23.976 (24000/1001)
Interlaced:                         No
Colorspace:                       YV12


[Runtime info]
Frames processed:               500 (0 - 499)
FPS (min | max | average):      3.03 | 13.95 | 7.55
CPU usage (average):            12%
Thread count:                   1
Physical Memory usage (peak):   485 MB
Virtual Memory usage (peak):    480 MB
Time (elapsed):                 000:01:06.221

----------------------------------------------------

[General info]
Log file created with:   AVSMeter 1.7.4 (AVS 2.6, x86)
Avisynth version:        AviSynth+ 0.1 (r1595, x86)


[Clip info]
Number of frames:                  500
Length (hhh:mm:ss.ms):   000:00:20.854
Frame width:                      1920
Frame height:                     1080
Framerate:                      23.976 (24000/1001)
Interlaced:                         No
Colorspace:                       YV12


[Runtime info]
Frames processed:               500 (0 - 499)
FPS (min | max | average):      1.49 | 13.71 | 7.44
CPU usage (average):            12%
Thread count:                   2
Physical Memory usage (peak):   330 MB
Virtual Memory usage (peak):    324 MB
Time (elapsed):                 000:01:07.238
The second script I did was a bit of random calls to the Dither Package 1.24.0 on a 1080p blu ray rip I've been playing around with. I was just messing around with some resizing and a few basic filter calls on a 16bit stacked clip. Speed stayed basicly the same between all 3 builds in the 21fps range. The big story here is memory usage. 592MB for Alpha5, 714MB for r1576, and 146MB for r1595! I had to rerun that last one with my system monitor. 146MB is a massive improvement! It was also the fastest test run.

Code:
[Script]
LoadPlugin("D:\Installs\Media\Video Encoding\MeGUI_2050_x86\tools\ffms\ffms2.dll")
FFVideoSource("D:\Encodes\Kara no Kyoukai\5\Kara no Kyoukai 5.mkv", threads=1)
Trim(2788, 3938)
Dither_convert_8_to_16()
Dither_resize16(848, 480)
Dither_removegrain16()
Dither_SmoothGrad()
Dither_resize16(1920, 1080)
DitherPost()

----------------------------------------------------

[General info]
Log file created with:   AVSMeter 1.7.4 (AVS 2.6, x86)
Avisynth version:        AviSynth 2.60, build:Sep 18 2013 [17:36:36]


[Clip info]
Number of frames:                 1151
Length (hhh:mm:ss.ms):   000:00:48.006
Frame width:                      1920
Frame height:                     1080
Framerate:                      23.976 (24000/1001)
Interlaced:                         No
Colorspace:                       YV12


[Runtime info]
Frames processed:               1151 (0 - 1150)
FPS (min | max | average):      13.16 | 22.03 | 21.47
CPU usage (average):            27%
Thread count:                   13
Physical Memory usage (peak):   592 MB
Virtual Memory usage (peak):    595 MB
Time (elapsed):                 000:00:53.622

----------------------------------------------------

[General info]
Log file created with:   AVSMeter 1.7.4 (AVS 2.6, x86)
Avisynth version:        AviSynth+ 0.1 (r1576, x86)


[Clip info]
Number of frames:                 1151
Length (hhh:mm:ss.ms):   000:00:48.006
Frame width:                      1920
Frame height:                     1080
Framerate:                      23.976 (24000/1001)
Interlaced:                         No
Colorspace:                       YV12


[Runtime info]
Frames processed:               1151 (0 - 1150)
FPS (min | max | average):      2.86 | 23.25 | 21.33
CPU usage (average):            25%
Thread count:                   13
Physical Memory usage (peak):   714 MB
Virtual Memory usage (peak):    716 MB
Time (elapsed):                 000:00:53.966

----------------------------------------------------

[General info]
Log file created with:   AVSMeter 1.7.4 (AVS 2.6, x86)
Avisynth version:        AviSynth+ 0.1 (r1595, x86)


[Clip info]
Number of frames:                 1151
Length (hhh:mm:ss.ms):   000:00:48.006
Frame width:                      1920
Frame height:                     1080
Framerate:                      23.976 (24000/1001)
Interlaced:                         No
Colorspace:                       YV12


[Runtime info]
Frames processed:               1151 (0 - 1150)
FPS (min | max | average):      12.87 | 22.27 | 21.71
CPU usage (average):            26%
Thread count:                   13
Physical Memory usage (peak):   146 MB
Virtual Memory usage (peak):    148 MB
Time (elapsed):                 000:00:53.016
Besides the tests I ran. All I got to say is great job team with avs+! Barring any stability issues I might run into, I'm going to just keep using the experimental build from now on untill the next build comes along.
DrZine is offline  
Old 6th January 2014, 00:19   #473  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
Quote:
Originally Posted by DrZine View Post
My system is a FX8350 @4.4ghz with 8gb of ram @1600mhz running Win7 Pro x64. All builds of avs+ are x86. I ran 2 different scripts with AVSmeter 1.7.4.

The first script I ran was a test script Groucho2004 posted up a few pages back. Going from Alpha5 to avs+ r1576 was a 50% speed increase! I'm guessing this has more to do with the improved core filters than anything else. From r1576 to the new cache build r1595 was a bit of a head scratcher though. The overall speed dropped just a hair while a second thread was created. Is this supposed to happen? As far as the memory usage it dropped by 155MB. Very nice.
Comparing your numbers for the first script with my i5 2500K @ 4GHz:
Code:
Avisynth version:        AviSynth 2.60, build:Sep 18 2013 [17:36:36]
FPS (min | max | average):      3.72 | 22.39 | 10.54 (+121%)

Avisynth version:        AviSynth+ 0.1 (r1576, x86)
FPS (min | max | average):      4.53 | 26.45 | 13.06 (+73%)

Avisynth version:        AviSynth+ 0.1 (r1595, x86)
FPS (min | max | average):      2.27 | 26.31 | 13.11 (+76%)
Memory usage was about the same. I did not expect Intel to be so much faster. However, this is just one script scenario and others may differ. Also, AVS+ optimizations seem to be a bit more AMD friendly.
One more note - The experimental DLL created 5 threads (well, 4 threads really, 1 is for the calling process, AVSMeter) in my case, not 2. Odd.

Last edited by Groucho2004; 6th January 2014 at 01:19. Reason: snr
Groucho2004 is offline  
Old 6th January 2014, 01:04   #474  |  Link
innocenat
Registered User
 
innocenat's Avatar
 
Join Date: Dec 2011
Posts: 77
Just a note , but none of the dev have AMD machine, thus most code are optimized for intel processors. Also, Sandy Bridge and later are insanely powerful.
innocenat is offline  
Old 6th January 2014, 08:15   #475  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,646
Yeah, Intel completely dominates in this area, i7's with hyperthreading enabled using an MT build are most certainly king, I wouldn't buy an AMD machine for Avisynth processing, I highly doubt AMD's 8 cores
could even compete with most i5's let alone i7's and they'd use more energy to accomplish the same task too. That said, I wouldn't mind seeing a thread that compared various scripts on different processors so that would could make
more informed decisions on what hardware to buy.
ryrynz is offline  
Old 7th January 2014, 01:28   #476  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
DrZine, Groucho2004: Yes, those threads are normal. They are threadpool threads from the MT version, but in this particular build they just sleep/idle and do nothing, because this build is only meant to test the caches.
__________________
AviSynth+
ultim is offline  
Old 11th January 2014, 19:46   #477  |  Link
BBA163
Registered User
 
Join Date: Feb 2013
Location: China
Posts: 13
When you can fix the avs+ load bug in megui or avspmod?
avspmod I try to change the licence ,but it's not work
BBA163 is offline  
Old 11th January 2014, 20:27   #478  |  Link
Zathor
Registered User
 
Join Date: Nov 2009
Posts: 2,405
Quote:
Originally Posted by BBA163 View Post
When you can fix the avs+ load bug in megui or avspmod?
avspmod I try to change the licence ,but it's not work
Can you please describe this avs+ load bug? At least I do not know it.
Zathor is offline  
Old 11th January 2014, 22:32   #479  |  Link
Evil_Burrito
Registered User
 
Join Date: Feb 2013
Posts: 23
Perhaps BBA163 is referring to, "An official release which will add support for 64-bit AviSynth+ is expected soon." As mentioned on the avisynth+ get started page.

Btw r1595 x86 has generally been working fine for me with avspmod and encoding. Mostly just a few cache_child errors from incompatible filters.
Evil_Burrito is offline  
Old 12th January 2014, 06:09   #480  |  Link
tObber166
Registered User
 
Join Date: Nov 2012
Posts: 23
Everytime I start up AvsPmod I get this error:

"Error parsing plugin string at position 0:"

It doesn't crash or anything, and all my plugins and filter work just fine.

AviSynthPlus-r1576
tObber166 is offline  
Closed Thread

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 00:19.


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