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 1st July 2016, 14:50   #1901  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,549
Quote:
Originally Posted by pinterf View Post
Avisynth.dll compiled for Debug has no corruption.
You mean you will release a fixed version soon?
__________________
@turment on Telegram
tormento is offline  
Old 1st July 2016, 15:03   #1902  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,723
Quote:
Originally Posted by tormento View Post
You mean you will release a fixed version soon?
Asked the Avisynth Plus Customer Service Center (APCSC) and they said: no.
They also said that the problem was a nice one, but they wished the solution process to their enemies.
Finally they said: yesofcoursewhynot.
pinterf is offline  
Old 1st July 2016, 15:05   #1903  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,549
Quote:
Originally Posted by pinterf View Post
Asked the Avisynth Plus Customer Service Center (APCSC) and they said: no.
They also said that the problem was a nice one, but they wished the solution process to their enemies.
Finally they said: yesofcoursewhynot.


LOL... It took months from my first post but... Hey... At last...
__________________
@turment on Telegram
tormento is offline  
Old 1st July 2016, 15:14   #1904  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,723
Unfortunately I cannot issue a Prefetch(100) command to myself
pinterf is offline  
Old 1st July 2016, 17:45   #1905  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,189
Quick question. What's the difference between having a filter run in MT=1 with a unique_lock in GetFrame vs having a filter run in MT=3?

In both cases, there is a single instance and the work is sequential. With MT=3, it's always the same thread calling instead of each request coming from a different thread. Besides that, what's the difference?
MysteryX is offline  
Old 1st July 2016, 18:26   #1906  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,549
Quote:
Originally Posted by pinterf View Post
Unfortunately I cannot issue a Prefetch(100) command to myself
It's great to have you here XD
__________________
@turment on Telegram
tormento is offline  
Old 3rd July 2016, 21:23   #1907  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
EDIT: There is a newer version available in this post.

I have compiled a new build of Avisynth+ for testing, you can find it here.
(To download all files at once, there is a "Download" button at the top right corner of the page)

This is r2003, and is built on top of the most up-to-date code for Avs+ as of now. It includes all the changes from Avisynth 2.6.1, all of pinterf's work, all code-related pull-requests sent to me, and some additional fixes from me. So it is pretty cutting edge Let us know your experiences. Some notes to bear in mind:
- Important: This build breaks some plugins. If you are a regular user, you might not want this build. It it is for testing anyway.
- This was built with a new compiler (MSVS 2015 Update 3). You'll find corresponding runtimes that you must install first under the same link above. These will be included in the next installer.
- XP-support might not work, I cannot test it. Let me know and I'll try to correct it.
- ConvertStackedToNative/ConvertNativeToStacked have been renamed to ConvertHbdFromStacked/ConvertHbdToStacked (HBD = high bit-depth). These are transitional functions and exist to support old plugins which tried to hack around missing HBD support. We expect that these functions will not be needed in a year from now.
- The high bit-depth support is still provisional. Some important and useful functions for dealing with it are still missing.
- While testing, please keep an extra eye on the correctness of Resizers/Resamplers, mergers, and SoundTouch. Let us know if you see any problems.

Cheers.
__________________
AviSynth+

Last edited by ultim; 5th July 2016 at 22:50.
ultim is offline  
Old 3rd July 2016, 22:00   #1908  |  Link
chainik_svp
Registered User
 
Join Date: Mar 2012
Location: Saint-Petersburg
Posts: 239
Quote:
Originally Posted by MysteryX View Post
Quick question. What's the difference between having a filter run in MT=1 with a unique_lock in GetFrame vs having a filter run in MT=3?
order of the requested frames?
the filter working in mt=3 knows that it processes frames one-by-one so it's free to use some info from the previous frame(s) to process current one
a simple motion blur filter can be a good example
__________________
SVPflow motion interpolation

Last edited by chainik_svp; 3rd July 2016 at 22:04.
chainik_svp is offline  
Old 3rd July 2016, 22:04   #1909  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by chainik_svp View Post
order of the requested frames?
When Prefetch() is used, the order of the frames requested in plugins is not guaranteed in any of the MT modes.
__________________
AviSynth+

Last edited by ultim; 3rd July 2016 at 22:55.
ultim is offline  
Old 3rd July 2016, 22:54   #1910  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by chainik_svp View Post
order of the requested frames?
the filter working in mt=3 knows that it processes frames one-by-one so it's free to use some info from the previous frame(s) to process current one
a simple motion blur filter can be a good example
mt=3 only guarantees that the code will not be executed in parallel, but frame requests might still arrive non-sequentially. For filters where this is a problem, Prefetch must not be enabled, but such filters are faulty.

Filters should request each frame they need every time they receive a request and must not try to "remember" frames on their own. This way filters do not depend on a specific order of requests. The caches in Avisynth will make sure that processing is still efficient by avoiding the re-calculation of frames that have been already requested in the recent past.
__________________
AviSynth+
ultim is offline  
Old 3rd July 2016, 23:04   #1911  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,248
Quote:
Originally Posted by ultim View Post
- XP-support might not work, I cannot test it. Let me know and I'll try to correct it.
If the last time the VS2015 and XP issues cropped up is still true, it'll need /Zc:threadSafeInit- to work on XP. Dunno if that's the 'correct' thing to do, though.
qyot27 is offline  
Old 3rd July 2016, 23:11   #1912  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,248
Also, for anyone wanting to experiment with native 16-bit output, here are FFmpeg and mpv builds that support opening 16-bit scripts:
http://www.mediafire.com/download/k7...0789_avshbd.7z
http://www.mediafire.com/download/rs...3454_avshbd.7z

Quote:
Originally Posted by rean View Post
ConvertHbdFromStacked/ConvertHbdToStacked

are bad function names. You ask users to remember very strange word "Hdb", that is unknown in avisynth world and even in video software world. many-many users who use old plugins will have remember problems, and mistakes.

ConverFromStacked/ConvertToStacked is a very clean name.
'HBD' is a known abbreviation of 'High Bit Depth'. Although I suppose we could just tell people it stands for 'Here be dragons'. :P

Last edited by qyot27; 3rd July 2016 at 23:17.
qyot27 is offline  
Old 3rd July 2016, 23:16   #1913  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,173
Quote:
Originally Posted by ultim View Post
I have compiled a new build of Avisynth+ for testing, you can find it here.
With this simple script I get an error in VDub (64-bit works though):

Code:
ColorBarsHD()
Dither_convert_8_to_16()
Quote:
Avisynth open failure:
System exception - Access Violation
(M:\AviSynth+ r2003 test\16-bit resizers.avs, line 2)

Edit: also the resizers are messed up, if I comment out the resizers then the output is correct, otherwise I get this.

Code:
ColorBarsHD(1280, 720)
Dither_convert_8_to_16()
ConvertHbdFromStacked()
Spline64Resize(400,300)
Crop(9,7,-9,-7)
FlipHorizontal().FlipVertical()
TurnLeft().TurnRight().Turn180()
PointResize(3200,2400)
GrayScale()
BilinearResize(1600,1200)
ConvertHbdToStacked()

Last edited by Reel.Deel; 3rd July 2016 at 23:32.
Reel.Deel is offline  
Old 3rd July 2016, 23:28   #1914  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,040
Quote:
Originally Posted by rean View Post
It is called HDR in a computer graphic world.
High Dynamic Range != High Bit Depth.
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline  
Old 3rd July 2016, 23:30   #1915  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,248
Quote:
Originally Posted by Reel.Deel View Post
With this simple script I get an error in VDub (64-bit works though):

Code:
ColorBarsHD()
Dither_convert_8_to_16()
Ditto here (32-bit Windows 10, Silvermont Z3735F). It seems to happen on any function after the first.

Version() by itself works. Version().ConvertToYV12() throws an Access Violation.
qyot27 is offline  
Old 3rd July 2016, 23:32   #1916  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,040
Quote:
Originally Posted by qyot27 View Post
Ditto here (32-bit Windows 10, Silvermont Z3735F). It seems to happen on any function after the first.

Version() by itself works. Version().ConvertToYV12() throws an Access Violation.
Ha, I thought it was a problem with WinXP. Getting clip properties or a simple colorbars() worked, anything further gave me an access violation in avisynth.dll with AVSMeter.
The build could still be incompatible with WinXP though...
__________________
Groucho's Avisynth Stuff

Last edited by Groucho2004; 3rd July 2016 at 23:52. Reason: reduced ambiguity
Groucho2004 is offline  
Old 3rd July 2016, 23:43   #1917  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
Quote:
Originally Posted by Groucho2004 View Post
High Dynamic Range != High Bit Depth.
Well said. High bit Depth is the ability to use more than 8-bits to represent finer color gradations, and (probably much more importantly) to present more correct processing results due to less errors in in-between operations.

HBD is basically a technical prerequisite of HDR. In addition to HBD, HDR allows to process color and brightness values outside of your limited display range. This usually means 1) using HBD to represent values outside of the valid displayable range, and 2) at the end some kind of tone mapping algorithm to bring it back down to valid pixel values. With HBD Avisynth+ can now do the first of part of HDR, for the second some kind of plugin to perform the tone mapping would be required.

About the naming: "Native" and "Stacked" are even less standardized than "HBD". AFAIK, "native" and "stacked" were invented in this community to give method names to an Avisynth-specific hack.

XP and crashes: Looking into it. I could run an MCTemporalDenoise script and some resizers before I uploaded.
__________________
AviSynth+

Last edited by ultim; 3rd July 2016 at 23:53. Reason: typos
ultim is offline  
Old 3rd July 2016, 23:46   #1918  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,040
Quote:
Originally Posted by ultim View Post
XP and crashes: Looking into it.
Not just XP, see qyot27's post.
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline  
Old 3rd July 2016, 23:54   #1919  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,248
Quote:
Originally Posted by ultim View Post
About the naming: "Native" and "Stacked" are even less standardized than "HBD". AFAIK, "native" and "stacked" were invented in this community to give method names to an Avisynth-specific hack.
While we're on the subject, are there any plans to also have a convert function to handle the Interleaved16 format? That's actually the one I usually use when dithering up with f3kdb.

I mean, it's not like it's difficult to just switch from using output_mode=2 to using output_mode=1, but having the option would be nice.
qyot27 is offline  
Old 4th July 2016, 00:07   #1920  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
I cannot reproduce any of the crashes. Tried 32-bits in VDub, AvsPmod, and AVSmeter, none of them crashed with any of the three scripts posted earlier. Did you guys install the new runtime?
I can however reproduce the corrupted output from the resizer using Reel.Deel's script. Also, I am adding the /Zc switch for XP.
__________________
AviSynth+
ultim 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 09:06.


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