View Full Version : Avisynth+
Groucho2004
20th February 2017, 12:03
Yes I am (and all of us, "supporters" :) are) interested.
How do you expect Avisynth to give error code on missing dependencies? By the means of debug log? Now if a plugin cannot be loaded (e.g. you put an x64 version in the x86 plugin folder), it does not prevent other plugins from loading properly so we can't raise exception and put a visible error message here. (or should we?)
I haven't checked your code yet, but isn't it slowing down the DLL loading process in general?
First of all, I would suggest additional checks only if a problem is encountered. For example, checking the correct bitness after the "there is no function..." is thrown is very simple and only takes milli/microseconds. You don't have to dig through my code, I'll send you the relevant stuff.
Checking for dependencies is a bit more complicated but I suppose you only have to do it after the dreaded "... Install missing library?" is thrown and it can all be tucked into one function. Again, I can send you the relevant code.
So, as I see it, none of these checks need to happen during the initial plugin enumeration and there would be no slowdown.
amayra
20th February 2017, 13:53
How about VirtualDub FilterMod (https://sourceforge.net/projects/vdubfiltermod)? It has an integrated script editor and should support high bit depths.
i think you post worng link VirtualDub FilterMod (https://sourceforge.net/projects/vdfiltermod/)
LigH
20th February 2017, 15:08
Oops, fixed...
blaze077
20th February 2017, 23:00
Could anyone tell me why Avisynth gives an error when trying to use the chroma planes of YV12 videos that output a non-mod2 chroma plane but have a mod2 luma resolution?
Resolutions such as: 1760x990 or 1504x846
Script:
BlankClip(240, 1760, 990, pixel_type="YV12").UToY()
"Filter Error: Attempted to request a planar frame that wasn't mod2 in height!"
The BlankClip filter call alone works well.
Thank you.
EDIT: How would one process the chroma separately in this case? UToY() outputs a YV12 video so it cannot be non-mod2. And adding a ConvertToY8() call after UToY() also does not work.
real.finder
21st February 2017, 01:07
Could anyone tell me why Avisynth gives an error when trying to use the chroma planes of YV12 videos that output a non-mod2 chroma plane but have a mod2 luma resolution?
Resolutions such as: 1760x990 or 1504x846
Script:
BlankClip(240, 1760, 990, pixel_type="YV12").UToY()
"Filter Error: Attempted to request a planar frame that wasn't mod2 in height!"
The BlankClip filter call alone works well.
Thank you.
EDIT: How would one process the chroma separately in this case? UToY() outputs a YV12 video so it cannot be non-mod2. And adding a ConvertToY8() call after UToY() also does not work.
UToY is old, it's for avs25, use UToY8 is avs26
and in avs+ there are ExtractU
blaze077
21st February 2017, 01:29
UToY is old, it's for avs25, use UToY8 is avs26
and in avs+ there are ExtractU
That worked well. Thank you. :)
tcope
22nd February 2017, 00:28
What am I missing..?
After over a week of scraping the forums wiki etc..
I have been unsuccessful in running avisynth+ on wine.
Fresh compile of 32 bit wine.
Latest 32 bit zeranoe ffmpeg.
vc2010 vc2013 from winetricks
vs2015 redist from installer
Even the recommended: using the old installer from Avisynth+
and copy over current synth files will not run right.
Switching between all the versions found
in the Avisynthrepository, all the other variants work
as expected, except AVSPLUS.
this works
AVSMeter.exe Processing.avs
this crashes @ Analysing script...
AVSMeter.exe Authors.avs.
trimmed list
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 2
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:ntdll:EtwRegisterTraceGuidsW (0x6fa19d, (nil), {f7b697a3-4db5-4d3b-be71-c4d284e6592f}, 7, 0x76069c, (null), (null), 0x760ad0): stub
fixme:ntdll:EtwRegisterTraceGuidsW register trace class {72b14a7d-704c-423e-92f8-7e6d64bcb92a}
fixme:process:GetNumaHighestNodeNumber (0x33cf08): semi-stub
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 2
fixme:msvcrt:__clean_type_info_names_internal (0x1489b38) stub
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 2
fixme:msvcrt:__clean_type_info_names_internal (0x1489b38) stub
AviSynth+ 0.1 (r2420, MT, i386) (0.0.0.0)
fixme:msvcrt:__clean_type_info_names_internal (0x1489b38) stub
Exception while processing ScriptEnvironment::ThrowError().
I'm guessing there must be some dependency that is either taken for granted
by the vets here and not talked about, or maybe just some brief mention buried
in thread. I believe I have installed all mentioned in first post here.
What ever the cause, I can tell you for those that dont do this
every day, getting this running has been like eating glass.
I have even gone as far as to write a Linux-wine friendly version
of the setavs switcher with the hopes of it helping iron this out.
I am assuming others have this running under wine.?
AVSMeter.exe -avsinfo
VersionString: AviSynth+ 0.1 (r2420, MT, i386)
VersionNumber: 2.60
File version: 0.0.0.0
Interface Version: 6
Multi-threading support: Yes
Linker/compiler version: 14.0
Avisynth.dll location:
Avisynth.dll time stamp: Cannot determine timestamp
PluginDir2_5 (HKLM, x86): C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins
[CPP 2.6 / 32 Bit plugins]
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\ConvertStacked.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\DirectShowSource.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\ImageSeq.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\TCPDeliver.dll [2.6.0.7]
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\TimeStretch.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\VDubFilter.dll
sl1pkn07
22nd February 2017, 01:17
works for me in Archlinux, 32 and 64 bits avs+ r2420-MT with wine-staging 1.9.21
qyot27
22nd February 2017, 01:44
At least with Wine 2.2, it looks like no finagling with the redists is necessary for 2013 or prior now - not with winetricks, or the MS installer. The same may or may not be true for 2015 builds, or the old trick of using the MS redist but forcing the .dlls to native,builtin in winecfg might be needed. Whether 2.0 is similarly okay, I don't know.
I just build avsplus with VS2013 so I can avoid the delay/bugs in Wine supporting the newest version of the runtime.
EDIT: although pinterf's MT branch doesn't currently build with VS2013; imghelpers.h errors out.
tcope
22nd February 2017, 10:22
It looks like the missing dependencies were what
ever core filters have been removed. I had
discounted that, thinking there would be more
informative error messages than just crash.
After dissecting the Authors.avs the offending
component turned out to be this:
messageclip(ovText, height=c)
A posted list of filters that are no longer
included in the core would have likely gone
a long way towards saving sanity.
Thank You all for the feedback.
I have made the Linux bash switcher script
avail for those who may be interested.
I welcome feedback and
hope others find it useful.
Cheers :)
________________________
AVS version Switcher Script (http://criteriondigital.net/setavs.sh.zip)
Groucho2004
22nd February 2017, 10:37
AVSMeter.exe -avsinfo
VersionString: AviSynth+ 0.1 (r2420, MT, i386)
VersionNumber: 2.60
File version: 0.0.0.0
Interface Version: 6
Multi-threading support: Yes
Linker/compiler version: 14.0
Avisynth.dll location:
Avisynth.dll time stamp: Cannot determine timestamp
PluginDir2_5 (HKLM, x86): C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins
Looks like a bunch of Win32 API functions don't work under Wine, it's quite safe to assume that other things in AVSMeter such as the DLL dependency checks don't work either.
sl1pkn07
22nd February 2017, 12:05
Dependency check throught asvmeter under wine works with MvTools2 2.7.14.22 is FFT3W is not installed, for example.
then i assume this funcionality works ok
also works the version of the plugins in some cases (if has implemented)
┌─┤[$]|[sl1pkn07]|[sL1pKn07]|[~/aplicaciones/breeze-gtk-git]|
└───╼ mv /home/wine-Avisynth/drive_c/windows/syswow64/libfftw3f-3.dll /home/wine-Avisynth/drive_c/windows/syswow64/libfftw3f-3.dll.old
┌─┤[$]|[sl1pkn07]|[sL1pKn07]|[~/aplicaciones/breeze-gtk-git]|
└───╼ avsmeter -avsinfo
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
AVSMeter 2.4.9 (x86) - Copyright (c) 2012-2017, Groucho2004
VersionString: AviSynth+ 0.1 (r2420, MT, i386)
VersionNumber: 2.60
File version: 0.0.0.0
Interface Version: 6
Multi-threading support: Yes
Linker/compiler version: 14.0
Avisynth.dll location:
Avisynth.dll time stamp: Cannot determine timestamp
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
[CPP 2.5 / 32 Bit plugins]
C:\Program Files (x86)\AviSynth+\plugins\AddGrainC.dll [1.7.1.0]
C:\Program Files (x86)\AviSynth+\plugins\avstp.dll [1.0.3.0]
C:\Program Files (x86)\AviSynth+\plugins\dfttest.dll [1.9.4.0]
C:\Program Files (x86)\AviSynth+\plugins\dither.dll
C:\Program Files (x86)\AviSynth+\plugins\flash3kyuu_deband.dll
C:\Program Files (x86)\AviSynth+\plugins\LSMASHSource.dll
[CPP 2.6 / 32 Bit plugins]
C:\Program Files (x86)\AviSynth+\plugins+\ConvertStacked.dll
C:\Program Files (x86)\AviSynth+\plugins+\DePan.dll [2.13.1.2]
C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll [2.10.0.1]
C:\Program Files (x86)\AviSynth+\plugins+\DirectShowSource.dll
C:\Program Files (x86)\AviSynth+\plugins+\ffms2.dll
C:\Program Files (x86)\AviSynth+\plugins+\ImageSeq.dll
C:\Program Files (x86)\AviSynth+\plugins+\KNLMeansCL.dll
C:\Program Files (x86)\AviSynth+\plugins+\masktools2.dll [2.2.1.0]
C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll [2.7.14.22]
C:\Program Files (x86)\AviSynth+\plugins+\RgTools.dll [0.94.0.0]
C:\Program Files (x86)\AviSynth+\plugins+\SangNom2.dll
C:\Program Files (x86)\AviSynth+\plugins+\Shibatch.dll
C:\Program Files (x86)\AviSynth+\plugins+\TimeStretch.dll
C:\Program Files (x86)\AviSynth+\plugins+\VDubFilter.dll
[Plugin errors/warnings]
------------------------------------------------------------------------------
"C:\Program Files (x86)\AviSynth+\plugins\dfttest.dll"
Dependencies that could not be loaded:
libfftw3f-3.dll
Note: "libfftw3f-3.dll can be downloaded here:
http://www.fftw.org/install/windows.html
libfftw3f-3.dll must be placed in a directory to which the
'PATH' environment variable points, i.e. System32/SysWOW64"
------------------------------------------------------------------------------
"C:\Program Files (x86)\AviSynth+\plugins+\DePanEstimate.dll"
Dependencies that could not be loaded:
libfftw3f-3.dll
Note: "libfftw3f-3.dll can be downloaded here:
http://www.fftw.org/install/windows.html
libfftw3f-3.dll must be placed in a directory to which the
'PATH' environment variable points, i.e. System32/SysWOW64"
------------------------------------------------------------------------------
"C:\Program Files (x86)\AviSynth+\plugins+\mvtools2.dll"
Dependencies that could not be loaded:
libfftw3f-3.dll
Note: "libfftw3f-3.dll can be downloaded here:
http://www.fftw.org/install/windows.html
libfftw3f-3.dll must be placed in a directory to which the
'PATH' environment variable points, i.e. System32/SysWOW64"
------------------------------------------------------------------------------
┌─┤[$]|[sl1pkn07]|[sL1pKn07]|[~/aplicaciones/breeze-gtk-git]|
└───╼
if can detect the plugins path and version, idk why not detect the path/version of avisynth.dll (or is different implementation?)
greetings
Groucho2004
22nd February 2017, 12:23
if can detect the plugins path and version, idk why not detect the path/version of avisynth.dll (or is different implementation?)
greetings
I think I figured it out. In order to determine the correct location of avisynth.dll on 64 bit Windows and avoiding file re-direction problems (which happen on some Windows versions) I'm using code that is only supported on a native Windows platform. I'll have a look if I can rectify this.
LigH
22nd February 2017, 12:44
Also the kind of dependency is different. AviSynth plugins which need libfftw3f-3.dll would use exported functions from within this DLL to be functional at all. But I believe they won't use any function from within avisynth.dll, there is probably no necessary runtime dependency in this direction. Vice versa, avisynth.dll instead uses exported functions from within the plugin DLL's (when used in the script).
tcope
22nd February 2017, 17:17
PluginDir+ (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins+
PluginDir2_5 (HKLM, x86): C:\Program Files (x86)\AviSynth+\plugins
The switcher script currently only sets one plugin path.
A second for + is an easy addition.
Am I remembering correctly that multiple plugin
paths are only supported by Avisynth+ ?
Looking for an elegant solution to use a standard
plugin repo along with the unique plugins within
the switcher, but not know enough about the
internal loading mechanism.
Can plugin directories be nested and will all synth
versions look into all sub directories for plugins ?
Groucho2004
22nd February 2017, 18:10
The switcher script currently only sets one plugin path.
A second for + is an easy addition.
Am I remembering correctly that multiple plugin
paths are only supported by Avisynth+ ?
Correct.
Can plugin directories be nested and will all synth
versions look into all sub directories for plugins ?
No Avisynth version supports nested plugin directories.
tcope
22nd February 2017, 18:23
I further narrowed the issue with avisynth+ and
the Authors.avs down to this internal function.
+chr(13)+
ovText = "AviSynth Authors:"+chr(13)+
\ "----------------------------"+chr(13)+
none of the authors will render,
but this does run.
ovText = "AviSynth Authors:"
real.finder
22nd February 2017, 19:09
I further narrowed the issue with avisynth+ and
the Authors.avs down to this internal function.
+chr(13)+
ovText = "AviSynth Authors:"+chr(13)+
\ "----------------------------"+chr(13)+
none of the authors will render,
but this does run.
ovText = "AviSynth Authors:"
just test it with
ovText = "AviSynth Authors:"+chr(13)+
\ "----------------------------"+chr(13)
MessageClip(ovText)
http://i.imgur.com/eR9RubY.png
work fine in avs26 and avs+ x64, your code is not correct in normal avs26 btw so I did't test it in avs+
tcope
22nd February 2017, 21:42
I do not have 64 bit wine installed so I can only test 32 bit.
The Authors.avs runs correctly for me in all flavors of avs26
except for avs+ x32.
ovText = "AviSynth Authors:"+chr(13)+
\ "----------------------------"+chr(13)
MessageClip(ovText)
Every combination of options I have tried fails
to run on avs+ x32 until I remove the +chr(13)+
Please share your experience so I can improve compatibility.
your code is not correct in normal avs26 btw so I did't test it in avs+
videoFred
22nd February 2017, 22:30
Thanks to Groucho's exellent Avisynth installer I discovered Avisynth Plus.
With MT enabled it runs my scripts 3-4 times faster!
:thanks:
Fred.
StainlessS
23rd February 2017, 11:03
tCope, have you tried replacing Chr(13) with Chr(10) # Carriage Return -> Line Feed.
I personally would never use Chr(13) for such a task.
EDIT: On AVS v2.6 standard, both Chr(10) and Chr(13) work as expected.
tcope
23rd February 2017, 15:08
Thanks for the suggestion, but no joy.
cr(10) and cr(13) work for me in avs.2.6
but neither are working in avs+
pinterf
23rd February 2017, 16:04
Thanks for the suggestion, but no joy.
cr(10) and cr(13) work for me in avs.2.6
but neither are working in avs+
Hi!
Here is the code for MessageClip
https://github.com/pinterf/AviSynthPlus/blob/MT/avs_core/filters/source.cpp#L436
There is a GetTextBoundingBox call that establishes the dimensions of a rendered text to get the video width and height. It uses \n for separators.
https://github.com/pinterf/AviSynthPlus/blob/MT/avs_core/filters/text-overlay.cpp#L2569
These codes were not changed since the classic Avisynth versions (aside from an anti-warning int cast)
qyot27
23rd February 2017, 16:46
MessageClip isn't the thing erroring out. The Authors.avs tcope is referring to is this (https://github.com/AviSynth/AviSynthPlus/blob/MT/distrib/Examples/Authors.avs), which hasn't been updated since 2007. There's something 'clever' that the video block is doing that causes AviSynth+ to crash, and it's not a simple MessageClip invocation. My bet is something in Overlay, given the variable tango going on in there.
pinterf
23rd February 2017, 17:07
MessageClip isn't the thing erroring out. The Authors.avs tcope is referring to is this (https://github.com/AviSynth/AviSynthPlus/blob/MT/distrib/Examples/Authors.avs), which hasn't been updated since 2007. There's something 'clever' that the video block is doing that causes AviSynth+ to crash, and it's not a simple MessageClip invocation. My bet is something in Overlay, given the variable tango going on in there.
There is a line in the error log:
Exception while processing ScriptEnvironment::ThrowError().
This exception was raised here:
static std::string FormatString(const char *fmt, va_list args)
{
va_list args2;
va_copy(args2, args);
_locale_t locale = _create_locale(LC_NUMERIC, "C"); // decimal point: dot
int count = _vsnprintf_l(NULL, 0, fmt, locale, args);
std::vector<char> buf(count + 1);
_vsnprintf_l(buf.data(), buf.size(), fmt, locale, args2);
_free_locale(locale);
va_end(args2);
return std::string(buf.data());
}
There is a _create_locale and _vsnprintf_l call here, I don't know that they are supported in wine or not.
qyot27
24th February 2017, 01:05
Wine acts a little differently than a native Windows distribution, but since the crash I was referring to happened on Windows 10, I'd think that the Exception may happen in Windows too, but that error message isn't readily available in Windows unless you dive into a debugging session - in Wine, it's front and center in the Terminal you ran the program from.
EDIT: Somewhat never mind, I updated to r2420 and the crash on Windows disappeared, and I could verify that that Exception error message shows up under Wine 2.2 on Ubuntu 16.10, regardless of trying to use 32-bit or 64-bit.
tcope
24th February 2017, 03:22
What ever is happening is deff unique
to avs+ .. all the other versions of avs
run it with no issues.
With absolutely no other changes to
Authors.avs than changing this
ovText = "AviSynth Authors:"+chr(13)+
to this
ovText = "AviSynth Authors:"
it will then run as expected. Granted none of
the author info below that line gets rendered
but the script runs with no issues.
http://criteriondigital.net/Authors.png
LigH
24th February 2017, 08:39
I hope there are syntactically correctly following terms after the last "plus". Unfortunately this is omitted in your examples.
pinterf
24th February 2017, 08:53
EDIT: Somewhat never mind, I updated to r2420 and the crash on Windows disappeared, and I could verify that that Exception error message shows up under Wine 2.2 on Ubuntu 16.10, regardless of trying to use 32-bit or 64-bit.
I don't know which version was crashing for you, but I fixed bug earlier that could cause crash, for me it was only a garbaged error display, but it would show up as crash under other conditions.
20161222 r2347dev
- Fix: ScriptClip would show garbage text when internal exception occurs instead of the error message
Regarding the wine issue, I will make a special release and post the link to you and tcope.
wonkey_monkey
24th February 2017, 15:08
I hope there are syntactically correctly following terms after the last "plus". Unfortunately this is omitted in your examples.
There is this snippet from earlier:
ovText = "AviSynth Authors:"+chr(13)+
\ "----------------------------"+chr(13)
Is it something to do with the placement of the backslash? Doesn't it normally go at the end of a continued line, rather than at the beginning of the continuation?
Since the --------- doesn't show in tcope's screenshot, I'm guessing he's got confused over line continuations.
tcope - post your full working and broken scripts in order to get an accurate diagnosis.
Edit: perhaps by putting the backslash on the beginning of the line, the rest of the line is being ignored?
LigH
24th February 2017, 15:22
AviSynth has a rather flexible syntax in this case. From the documentation shipped with AviSynth 2.60:
Continue on next or from previous line: \
Subtitle ("Test-Text")
Subtitle ( \
"Test-Text")
Subtitle (
\ "Test-Text")
What I mean was your quoted snippet, originally by tcope in #3067 (https://forum.doom9.org/showthread.php?p=1798341#post1798341), which I saw as truncated due to the last plus:
ovText = "AviSynth Authors:"+chr(13)+
\ "----------------------------"+chr(13)+
I assume that a few more concatenated strings would follow in the next lines.
qyot27
24th February 2017, 18:47
I don't know which version was crashing for you, but I fixed bug earlier that could cause crash, for me it was only a garbaged error display, but it would show up as crash under other conditions.
20161222 r2347dev
- Fix: ScriptClip would show garbage text when internal exception occurs instead of the error message
Yeah, it was a personal build of r2343, so that's more than likely what was going on there.
pinterf
24th February 2017, 20:02
Meanwhile real.finder, our script master has found a bug in Merge in 32 bit float.
qyot27
25th February 2017, 00:28
Output of Wine 2.2 on Ubuntu 16.10 with the winetest build:
[~:$] wine --version
wine-2.2
[~:$] wine ffplay -i Authors.avs
fixme:advapi:GetCurrentHwProfileA (0x23f770) semi-stub
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
fixme:win:RegisterDeviceNotificationA (hwnd=0x36cb0, filter=0xd3e3c8,flags=0x00000001) returns a fake device notification handle!
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
ffplay version r83188 git-bb7db37 Copyright (c) 2003-2017 the FFmpeg developers
built on Jan 20 2017 12:33:30 with gcc 6.3.0 (GCC)
libavutil 55. 43.100 / 55. 43.100
libavcodec 57. 75.100 / 57. 75.100
libavformat 57. 62.100 / 57. 62.100
libavdevice 57. 2.100 / 57. 2.100
libavfilter 6. 69.100 / 6. 69.100
libavresample 3. 2. 0 / 3. 2. 0
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
fixme:win:EnumDisplayDevicesW ((null),0,0x364f8c8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x364f8c8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",0,0x364f510,0x00000000), stub!
fixme:win:EnumDisplayDevicesW (L"\\\\.\\DISPLAY1",1,0x364f8c8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x364f8c8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x364f8c8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x364f8c8,0x00000000), stub!
nafixme:module:load_library unsupported flag(s) used (flags: 0x00000a00)
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 2 0B f=0/0
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 2
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 1
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 1
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 1
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 1
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 102
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 2 0B f=0/0
fixme:msvcp:_Mtx_init_in_situ unknown flags ignored: 2
[avisynth @ 0023ca80] Exception while processing ScriptEnvironment::ThrowError().
nan : 0.000 fixme:msvcrt:__clean_type_info_names_internal (0x4b89b38) stub
Authors.avs: Unknown error occurred 0B f=0/0
nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
[~:$] fixme:msvcrt:__clean_type_info_names_internal (0x1298c20) stub
fixme:msvcrt:__clean_type_info_names_internal (0x1528360) stub
fixme:msvcrt:__clean_type_info_names_internal (0x1687448) stub
fixme:msvcrt:__clean_type_info_names_internal (0x5a4d4600) stub
fixme:msvcrt:__clean_type_info_names_internal (0xb0f480) stub
fixme:msvcrt:__clean_type_info_names_internal (0xb307a0) stub
fixme:msvcrt:__clean_type_info_names_internal (0x35d1f0) stub
fixme:msvcrt:__clean_type_info_names_internal (0x580cb0) stub
fixme:msvcrt:__clean_type_info_names_internal (0x7f1858) stub
fixme:msvcrt:__clean_type_info_names_internal (0x94cff0) stub
fixme:msvcrt:__clean_type_info_names_internal (0x614770) stub
fixme:msvcrt:__clean_type_info_names_internal (0x5f3710) stub
fixme:msvcrt:__clean_type_info_names_internal (0x5cf760) stub
fixme:msvcrt:__clean_type_info_names_internal (0x1800045a0) stub
Or with the Wine-related messages trimmed out:
[~:$] wine --version
wine-2.2
[~:$] wine ffplay -i Authors.avs
ffplay version r83188 git-bb7db37 Copyright (c) 2003-2017 the FFmpeg developers
built on Jan 20 2017 12:33:30 with gcc 6.3.0 (GCC)
libavutil 55. 43.100 / 55. 43.100
libavcodec 57. 75.100 / 57. 75.100
libavformat 57. 62.100 / 57. 62.100
libavdevice 57. 2.100 / 57. 2.100
libavfilter 6. 69.100 / 6. 69.100
libavresample 3. 2. 0 / 3. 2. 0
libswscale 4. 3.101 / 4. 3.101
libswresample 2. 4.100 / 2. 4.100
libpostproc 54. 2.100 / 54. 2.100
[avisynth @ 0023ca80] Exception while processing ScriptEnvironment::ThrowError().
nan : 0.000
Authors.avs: Unknown error occurred 0B f=0/0
nan : 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
tcope
25th February 2017, 04:50
I hope there are syntactically correctly following terms after the last "plus". Unfortunately this is omitted in your examples.
tcope - post your full working and broken scripts in order to get an accurate diagnosis.
The Authors.avs is the file being tested. It is one of several
example test scripts avail for download from the AviSynthPlus
github repo. Here (https://github.com/AviSynth/AviSynthPlus/tree/MT/distrib/Examples)
Here is that Authors.avs script (https://github.com/AviSynth/AviSynthPlus/blob/MT/distrib/Examples/Authors.avs)
tcope
25th February 2017, 05:11
32 bit wine
$ uname -r
3.2.0-4-amd64
------------------
$ cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
------------------
$ wine --version
wine-2.0
------------------
wine 'C:\FFMPEG\bin\ffmpeg.exe' -version
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl
.
.
.
--enable-zlib
libavutil 55. 34.100 / 55. 34.100
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.100 / 57. 56.100
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
wine ~/.wine/drive_c/Program\ Files/AVSMeter/AVSMeter.exe -avsinfo
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
AVSMeter 2.5.0 (x86) - Copyright (c) 2012-2017, Groucho2004
fixme:file:K32GetMappedFileNameA (0xffffffff, 0x220000, 0x33d508, 260): stub
.
.
.
VersionString: AviSynth+ 0.1 (r2423, MT, i386)
VersionNumber: 2.60
File version: 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: C:\windows\system32\avisynth.DLL
Avisynth.dll time stamp: 2017-02-25, 03:06:06 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins
[CPP 2.6 / 32 Bit plugins]
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\ConvertStacked.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\DirectShowSource.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\ImageSeq.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\TCPDeliver.dll [2.6.0.7]
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\TimeStretch.dll
C:\Program Files\AvisynthRepository\AVSPLUS_x86\plugins\VDubFilter.dll
------------------
wine ~/.wine/drive_c/Program\ Files/AVSMeter/AVSMeter.exe -i ~/.wine/drive_c/Examples/Authors.avs
fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub
AVSMeter 2.5.0 (x86) - Copyright (c) 2012-2017, Groucho2004
.
.
.
Exception while processing ScriptEnvironment::ThrowError().
fixme:msvcrt:__clean_type_info_names_internal (0x1489b38) stub
------------------
wine 'C:\FFMPEG\bin\ffmpeg.exe' -i ~/.wine/drive_c/Examples/Authors.avs ~/example-test-output.mkv
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
.
.
.
[avisynth @ 00256260] Exception while processing ScriptEnvironment::ThrowError().
fixme:msvcrt:__clean_type_info_names_internal (0x4529b38) stub
.wine/drive_c/Examples/Authors.avs: Unknown error occurred
pinterf
25th February 2017, 20:37
tcope, qyot27, thanks.
Finally installed a VirtualBox, Ubuntu 16.04, Wine stage, and of course a Midnight commander :) Grouchos's AVS plus installer did the dirty job and started to iterate the problematic line.
It turned out that the functions, I suspected earlier were the culprit.
Before formatting a string, we are querying the buffer size, which is returned by _vsnprintf_l when a null-length buffer size is given.
int count = _vsnprintf_l(NULL, 0, fmt, locale, args);
under Wine, this function returns -1, which is a rather unexpected number here.
Now I'm using this function instead:
int count = _vscprintf_l(fmt, locale, args2);
which works on both Wine and Windows, and the Authors.avs script with the scrolling credits is rendered fine.
You two will get a bonus build to test it.
But only after I have a little glass of wine (red) :)
LigH
25th February 2017, 21:14
Oh, well ... "Little Known Facts" about incompletely supported features in a compatibility layer.
Cheers. :) https://cosgan.de/images/smilie/nahrung/n055.gif
qyot27
26th February 2017, 00:18
Confirmed, the second winetest .dll works without issues for me.
tcope
26th February 2017, 07:34
Woot ..! Is working here as well.
Looking forward to giving it a spin
with production workflow.
TY for working on this and finding a fix.
Cheers :)
martin53
27th February 2017, 22:11
Hi pinterf,
forked your Github AviSynthPlus today :cool:
The README.md of the MT branch (also of the AviSynth/AviSynthPlus project, where you probably forked your project) says that the documentation is built with 'Sphinx'.
Do you know anything about that?
I'm asking because I thought I'd have a look if the doc is up do date and maybe I could be useful there...
pinterf
27th February 2017, 23:04
Hi pinterf,
forked your Github AviSynthPlus today :cool:
The README.md of the MT branch (also of the AviSynth/AviSynthPlus project, where you probably forked your project) says that the documentation is built with 'Sphinx'.
Do you know anything about that?
I'm asking because I thought I'd have a look if the doc is up do date and maybe I could be useful there...
No, it wasn't me. But this question will soon be answered I think.
Regarding the two important bugfixes (32 bit float Merge and wine compatibility), I will try to do something in this or next week. I was bothered by having a half-done MaskTools, but now I took a big breath of relief.
qyot27
28th February 2017, 00:21
Hi pinterf,
forked your Github AviSynthPlus today :cool:
The README.md of the MT branch (also of the AviSynth/AviSynthPlus project, where you probably forked your project) says that the documentation is built with 'Sphinx'.
Do you know anything about that?
I'm asking because I thought I'd have a look if the doc is up do date and maybe I could be useful there...
What's not clear about it?
Like README.md says, install Python, use the pip tool to install Sphinx. Make the desired changes to the .rst files in distrib/docs/english/source, run the Sphinx commands from README.md to regenerate the HTML, view the HTML in your web browser.
martin53
1st March 2017, 19:06
What's not clear about it?
I'd mainly like to know if the statement is still true or someone changed the HTML directly after last .rst update (the AviSynth/AviSynth+ project repeatedly became a sudden orphan until it was adopted by someone new, as it appears :D)
Github points most .rst files to be at least 2 years old. But definitely AviSynth+ has been extended since. So it's reasonable to ask this question, no?
qyot27
1st March 2017, 20:39
I'd mainly like to know if the statement is still true or someone changed the HTML directly after last .rst update
The simplest answer to that there's no way they could do that. The English* HTML documentation was completely removed from the AviSynth+ source tree (except for the separate FilterSDK directory, but the RST version of that is subsumed into the general documentation, and was updated at the same time as that merge from upstream), so it would be impossible for someone to change the HTML directly. In reality, all of any extant documentation regarding AviSynth+'s newer features has gone directly to the AviSynth+ wiki page on avisynth.nl (http://avisynth.nl/index.php/AviSynth%2B), based on//copy-pasted from the descriptions contained in the thread discussion. If anyone wants to integrate those changes into the RST documentation, feel free to do so.
Github points most .rst files to be at least 2 years old. But definitely AviSynth+ has been extended since. So it's reasonable to ask this question, no?
AviSynth+'s English* documentation (which it inherited from AviSynth 2.6) was officially ported to RST/Sphinx a couple years ago, that's why the dates for most of those files show they were updated two years ago. There was no effort at all in changing the specifics of the documentation beyond simply porting it over (apart from the occasional glaring error that had to be corrected), so the only reasons for it to change would be with post-fork changes from 2.6's docs merged in after-the-fact (https://github.com/AviSynth/AviSynthPlus/commit/9e06f44b2972461d85fb2834e6a73b058c5b9e8e), or the new 'Contributing to AviSynth+' section.
*yes, only the English docs; the original plan was that the rest of the language-specific docs were going to be removed from the source tree since most of them hadn't been updated by classic AviSynth for years (prior to the fork), but if anyone wanted to port them to RST like the English docs had been, that would have been fine and we would likely have kept the newer RST version around or moved them to a separate git repository.
pinterf
2nd March 2017, 09:16
What is the normal way to add things to the Avisynth+ wiki pages? Is saw in the page history that poor Reel.Deel, practically he alone was doing additions there.
I've never edited Wiki, and I'm feeling the same when I was introduced to git last year and had fears of annihilating other's work if I'm doing something wrong like accidental reformatting, deleting content or whatever.
I'd like to have there new pages for the new or changed avs+ functions, I've already found that there is a template for this. And another one for general info, maybe a new page for filter writers.
I suppose the pages describing classic Avisynth functions and behaviour should not be changed. (And please ignore if my questions are stupid, I had very limited time to deal with this documentation topic, every hours I can spare with your hints or tutorial is welcome)
qyot27
2nd March 2017, 15:33
I've never edited the avisynth.nl Wiki (and the last time I did edit a Wiki of any sort was probably something on the order of 10+ years ago), so someone else will have to comment on that. But Wikis store the revision history like git does and can be reverted to a previous revision if necessary. The only big thing I can think of is to make sure that the comment box has some hint as to what the change(s) made were, so it shows up in the page history.
martin53
2nd March 2017, 18:48
What is the normal way to add things to the Avisynth+ wiki pages?
I'll PM to you. A couple of years ago there was a severe problem with spam flooding the wiki, so Wilbert was forced to make changing less easy.
martin53
2nd March 2017, 19:39
The simplest answer to that there's no way they could do that.
I really hope I don't start a quarrel here, and 1st I must admit I'm new to using Git/Github and I'm afraid the discussion tends to get off topic.
I realized that pinterf is doing many, many valuable things these days, but I feel documentation/installer things become left behind.
So i forked pinterf's Github AviSynthPlus fork and stupid as I am I thought I might work myself into the docs and update here and there.
Now I have the new question on my mind if someone who forks a Guthub project can commit his changes back to the original project without being authorized by the original project's owner? Should I regard AviSynth/AviSynthPlus or pinterf/AviSynthPlus as the most up to date and legitimate current version of AviSynth+?
I could not spot any commits after about Aug 17,2016 to avisynth/AviSynthPlus, but the pinterf repository is much more recent.
With the ideal that everone's contribution is of most use for the community and no one stands in the other's way: where should I start?
Anyone replying: please refrain from criticising anything in the past, but if you can, give hints & explanations on how we can keep the project in good shape.
blaze077
2nd March 2017, 22:17
What is the correct syntax to use arrays? Or were they removed?
I tried the one specified in this post (https://forum.doom9.org/showthread.php?p=1788529#post1788529) but it seems to give an error in AvsPMod as well as AVSMeter.
Version()
array_variable = [[1,2,3],[4,5,8],"hello"]
n = ArraySize(array_variable)
last
ERROR: Unexpected character "["
Thank you.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.