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. |
5th February 2017, 01:45 | #181 | Link |
Registered User
Join Date: Jan 2012
Location: Mesopotamia
Posts: 2,587
|
Code:
colorbars(width = 1920, height = 1080, pixel_type = "yv12").killaudio().assumefps(25, 1) MCaWarpSharp3() Code:
Traceback (most recent call last): File "avsp.pyo", line 9061, in OnMenuVideoToggle File "avsp.pyo", line 13855, in ShowVideoFrame File "avisynth.pyo", line 462, in GetFrame WindowsError: exception: access violation reading 0x12F85000 Code:
colorbars(width = 1920, height = 1080, pixel_type = "yv12").killaudio().assumefps(25, 1) super = last.MSuper( levels=1, pel=1, sharp=0) forward_vectors = MAnalyse(super, blksize=4, levels=1, search=3, searchparam=5, isb=true) last.MFlow(super,forward_vectors)
__________________
See My Avisynth Stuff |
5th February 2017, 16:26 | #182 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Thanks, reproduced. Now it's my turn.
Edit: I've got it. Occurs when vectors are resized with a big ratio, e.g. 4x size. The bug is also present in the original 2.5.11.22. If no problem was experienced, it was only pure luck. Memory access happens beyond the allocated memory area of vectors. Fix in progress. Last edited by pinterf; 5th February 2017 at 17:47. |
5th February 2017, 18:10 | #183 | Link | |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,666
|
I think I found another bug? Don't know if it's related to the problem above but with the following script I get:
Quote:
The script is a broken down YFRC. IIRC this script use to work correctly with v2.6.0.5. Code:
FFVideoSource("Sample_SD.avi") #720x480, 18FPS clp_Super = MSuper(last.blur(1), chroma=true, pel=2) fps_num = FrameRateNumerator(last)*2 fps_den = FrameRateDenominator(last) bw1_vec116 = clp_Super.MAnalyse(blksize=16, blksizeV=16, isb=true , chroma=false, search=1, searchparam=1, truemotion=true, lambda=2000, global=true, dct=0, divide=2) fw1_vec116 = clp_Super.MAnalyse(blksize=16, blksizeV=16, isb=false, chroma=false, search=1, searchparam=1, truemotion=true, lambda=2000, global=true, dct=0, divide=2) FPSconverted16 = last.MFlowFps(last.MSuper(levels=1), bw1_vec116, fw1_vec116, num=fps_num, den=fps_den, blend=false, mask=0) FPSconverted16 |
|
5th February 2017, 18:44 | #184 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
edit: silent, because an internal return value is not checked for anything Present (2.6/2.7 line) Code:
const int hs_i32 = header_size / sizeof(int); pMv += hs_i32; // go to data - v1.8.1 data_size -= hs_i32; const bool ok_flag = FakeGroupOfPlanes::Update(pMv, data_size); // fixed a bug with lost frames if (! ok_flag) { env->ThrowError("MVTools: vector clip is too small (corrupted?)"); } Code:
pMv += _headerSize/sizeof(int); // go to data - v1.8.1 // FakeGroupOfPlanes::Update(reinterpret_cast<const int*>(fn->GetReadPtr()));// fixed a bug with lost frames FakeGroupOfPlanes::Update(pMv);// fixed a bug with lost frames Last edited by pinterf; 5th February 2017 at 18:52. |
|
6th February 2017, 16:57 | #185 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
New build:
MvTools2 2.7.14.22 (20170206) with depans
|
6th February 2017, 22:58 | #186 | Link | |
Registered User
Join Date: Apr 2015
Posts: 84
|
AvsPmod 64bit There is an error message, but can still be used no crash.
Quote:
|
|
7th February 2017, 14:33 | #187 | Link | |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,666
|
Quote:
|
|
11th February 2017, 19:41 | #188 | Link | |
Registered User
Join Date: Oct 2001
Location: Germany
Posts: 7,277
|
@pinterf: using 'MvTools2 2.7.14.22 (20170206)' on a Xeon E5640 I get:
Quote:
Works fine on my i7-4770k system (both Win10 pro 64bit). -> some assembler error? script I used: Code:
SetMemoryMax(768) SetMTMode(2,16) # change MT mode LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\LoadDll.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\DGDecode.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\AddGrainC.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\dfttest.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\EEDI2.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\eedi3.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\FFT3DFilter.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\mt_masktools-26.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\mvtools2.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\nnedi.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\nnedi2.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\SSE2Tools.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\TDeint.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\VerticalCleanerSSE2.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\nnedi3.dll") LoadPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\RgTools.dll") LoadCPlugin("C:\PROGRA~1\Hybrid\AVISYN~1\yadif.dll") LoadDll("C:\PROGRA~1\Hybrid\AVISYN~1\fftw3.dll") LoadDll("C:\PROGRA~1\Hybrid\AVISYN~1\LIBFFT~1.DLL") Import("C:\Program Files\Hybrid\avisynthPlugins\QTGMC.avsi") Import("C:\Program Files\Hybrid\avisynthPlugins\SMDegrain v.3.1.2d.avsi") # input luminance scale tv MPEG2Source(d2v="mpg_5cb0dee9abb9613ab109ab931493183c_28745.d2v") # deinterlacing AssumeBFF() QTGMC(Preset="Fast", ediThreads=2) SelectEven() # filtering return last |
|
11th February 2017, 21:51 | #190 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Probably what DJATOM suspects, you can also try to check with Dependency Walker and/or AVSMeter ("-avsinfo").
__________________
Groucho's Avisynth Stuff |
11th February 2017, 22:44 | #191 | Link |
Registered User
Join Date: Oct 2001
Location: Germany
Posts: 7,277
|
@Groucho2004: 'AVSMeter -avsinfo' only reports:
Code:
AVSMeter 2.4.9 (x86) - Copyright (c) 2012-2017, Groucho2004 VersionString: AviSynth 2.60, build:Feb 20 2015 [03:16:45] VersionNumber: 2.60 File version: 2.6.0.5 Interface Version: 6 Multi-threading support: Yes Linker/compiler version: 12.0 Avisynth.dll location: C:\Program Files\Hybrid\avisynthPlugins\avisynth.dll Avisynth.dll time stamp: 2015-02-20, 00:18:42 (UTC) |
12th February 2017, 23:02 | #193 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Current MvTool problem.
Code:
Function Test(clip c, float "bblur", float "csharp",Bool "ShowBlur") { bblur=default(bblur, 0.6) csharp = default(csharp, 0.6) ShowBlur=Default(ShowBlur,False) bs=16 hpad=bs vpad=bs c2=c.blur(bblur) softsup = c2.MSuper(hpad=hpad,vpad=vpad) sharpsup= c.sharpen(csharp).MSuper(hpad=hpad,vpad=vpad,levels=1) bv = MAnalyse(softsup,isb=true ,delta=1,blksize=BS,overlap=BS/2) fv = MAnalyse(softsup,isb=false,delta=1,blksize=BS,overlap=BS/2) BlurC=(ShowBlur)?c2.BlankClip(color=$FF0000):c2 BlurC.MDegrain1(sharpsup, bv,fv,thSAD=400) return(last) } FN="F:\V\Cabaret.avi" AviSource(FN) return Test(ShowBlur=True) Exhibiting similar problems to those displayed earlier in thread for MFlowFPS/MBlockFPS, here:- https://forum.doom9.org/showthread.p...95#post1785795 And result here (Displaying red line down RHS and Bottom border): EDIT: Hpad and VPad set to 0, make no difference.
__________________
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; 30th August 2018 at 12:03. |
12th February 2017, 23:28 | #195 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Well, em, no!
Added this Code:
FN="F:\V\Cabaret.avi" AviSource(FN) W=Width/16*16 H=Height/16*16 Crop(0,0,W,h) return Test(ShowBlur=True) Guess I should have checked before squealing. (busy doing something when it bit me, so threw together quick test). EDIT: Still, twould be nice if it did not do that.
__________________
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; 13th February 2017 at 01:31. |
14th February 2017, 11:45 | #196 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Hi Pinterf,
It probably dont matter too much but you are using [EDIT: code from] old version Info.h, was refactored by IanB a few years back. Old version was very slow (also suffered from a couple of bugs, one for RGB [which is not implemented in MVTools] and one where characters above 127 were not printed correctly [out of array bounds, did not check if this is the case with your implementation]). [EDIT: + print out of frame crashing bug.] Here link to IanB refactor:- http://avisynth2.cvs.sourceforge.net....7&view=markup And thread that prompted refactor:- https://forum.doom9.org/showthread.p...ghlight=DDigit EDIT: And here a companion to refactored Info.h, InfoF.h Code:
/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ // ------------------------------------------------------------------ // @ http://forum.doom9.org/showthread.php?t=156888 // ------------------------------------------------------------------ // InfoF.h, by StainlessS @ Doom9.org, 1st June 2011. // // A companion to Info.h, provides formatted printing via embedded control codes. // For use with the April 17 2011 (and above) edition of Info.h by IanB. // Obtainable here (look for 'Info.h'):- // // http://avisynth2.cvs.sourceforge.net/viewvc/avisynth2/avisynth/src/core/ // // ------------------------------------------------------------------ // Formatting control codes:- // '\n', Newline, positioning cursor 1 line down and at left edge of screen. // '\r', Newline Special, moves 1 line down and positions cursor at on-entry X position. // '\b', Backspace, obvious, not sure how useful this will be. // '\f', Forward Space, again obvious, re-uses formfeed code for this. Again, maybe not so useful. // '\t', Tab, @ character positions, every 4 characters.(relative screen LHS). // ------------------------------------------------------------------ // SJ, 3 June 2011, minor mod, reduced pointer swaps by using se in outer loop. // ------------------------------------------------------------------ void __stdcall DrawFStringPlanar(PVideoFrame &dst,int x,int y,const char *s,bool pix = true) { // Draw formatted string at pixel or character coords, pix == false = character coords if(pix == false) {x *= 10; y *= 20;} // To Chars int in_x = x; // REM x for '\r' const unsigned char *se=(unsigned char*)s; // unsigned while(*se) { // while, some to do int n; for(s=(char*)se; n = *se, n>=' ' && n <= 223; ++se); // Find end+1 of printable int len = (char*)se - s; // Len of printable if (len) { // Some to print DrawStringPlanar(dst,x,y,s,len); // do the biz x += len * 10; // update x coord } else { // Ctrl code OR nonsense; if(n == '\n') { x = 0; y+=20; // Newline, down 1, LHS } else if (n == '\r') { x = in_x; y +=20; // Newline Special, Down 1, orig x coord } else if(n == '\b') { x -= 10; // Backward Space } else if (n == '\f') { x += 10; // Forward Space } else if (n == '\t') { x+= ((4*10)-(x%(4*10))); // H-Tab (step 4) } ++se; // skip ctrl code (and unknowns, outer loop detects nul sentinel) } } } void __stdcall DrawFStrPlanar(PVideoFrame &dst,int x,int y,const char *s) { // Formatted Print @ character coords DrawFStringPlanar(dst,x,y,s,false); } void __stdcall DrawFStringYUY2(PVideoFrame &dst,int x,int y,const char *s,bool pix = true) { // Draw formatted string at pixel or character coords, pix == false = character coords if(pix == false) {x *= 10; y *= 20;} // To Chars int in_x = x; // REM x for '\r' const unsigned char *se=(unsigned char*)s; // unsigned while(*se) { // while, some to do int n; for(s=(char*)se; n = *se, n>=' ' && n <= 223; ++se); // Find end+1 of printable int len = (char*)se - s; // Len of printable if (len) { // Some to print DrawStringYUY2(dst,x,y,s,len); // do the biz x += len * 10; // update x coord } else { // Ctrl code OR nonsense; if(n == '\n') { x = 0; y+=20; // Newline, down 1, LHS } else if (n == '\r') { x = in_x; y +=20; // Newline Special, Down 1, orig x coord } else if(n == '\b') { x -= 10; // Backward Space } else if (n == '\f') { x += 10; // Forward Space } else if (n == '\t') { x+= ((4*10)-(x%(4*10))); // H-Tab (step 4) } ++se; // skip ctrl code (and unknowns, outer loop detects nul sentinel) } } } void __stdcall DrawFStrYUY2(PVideoFrame &dst,int x,int y,const char *s) { // Formatted Print @ character coords DrawFStringYUY2(dst,x,y,s,false); } void __stdcall DrawFStringRGB32(PVideoFrame &dst,int x,int y,const char *s,bool pix = true) { // Draw formatted string at pixel or character coords, pix == false = character coords if(pix == false) {x *= 10; y *= 20;} // To Chars int in_x = x; // REM x for '\r' const unsigned char *se=(unsigned char*)s; // unsigned while(*se) { // while, some to do int n; for(s=(char*)se; n = *se, n>=' ' && n <= 223; ++se); // Find end+1 of printable int len = (char*)se - s; // Len of printable if (len) { // Some to print DrawStringRGB32(dst,x,y,s,len); // do the biz x += len * 10; // update x coord } else { // Ctrl code OR nonsense; if(n == '\n') { x = 0; y+=20; // Newline, down 1, LHS } else if (n == '\r') { x = in_x; y +=20; // Newline Special, Down 1, orig x coord } else if(n == '\b') { x -= 10; // Backward Space } else if (n == '\f') { x += 10; // Forward Space } else if (n == '\t') { x+= ((4*10)-(x%(4*10))); // H-Tab (step 4) } ++se; // skip ctrl code (and unknowns, outer loop detects nul sentinel) } } } void __stdcall DrawFStrRGB32(PVideoFrame &dst,int x,int y,const char *s) { // Formatted Print @ character coords DrawFStringRGB32(dst,x,y,s,false); } void __stdcall DrawFStringRGB24(PVideoFrame &dst,int x,int y,const char *s,bool pix = true) { // Draw formatted string at pixel or character coords, pix == false = character coords if(pix == false) {x *= 10; y *= 20;} // To Chars int in_x = x; // REM x for '\r' const unsigned char *se=(unsigned char*)s; // unsigned while(*se) { // while, some to do int n; for(s=(char*)se; n = *se, n>=' ' && n <= 223; ++se); // Find end+1 of printable int len = (char*)se - s; // Len of printable if (len) { // Some to print DrawStringRGB24(dst,x,y,s,len); // do the biz x += len * 10; // update x coord } else { // Ctrl code OR nonsense; if(n == '\n') { x = 0; y+=20; // Newline, down 1, LHS } else if (n == '\r') { x = in_x; y +=20; // Newline Special, Down 1, orig x coord } else if(n == '\b') { x -= 10; // Backward Space } else if (n == '\f') { x += 10; // Forward Space } else if (n == '\t') { x+= ((4*10)-(x%(4*10))); // H-Tab (step 4) } ++se; // skip ctrl code (and unknowns, outer loop detects nul sentinel) } } } void __stdcall DrawFStrRGB24(PVideoFrame &dst,int x,int y,const char *s) { // Formatted Print @ character coords DrawFStringRGB24(dst,x,y,s,false); } CPP Snippet client for formatted print, from this thread:- https://forum.doom9.org/showthread.php?t=163082 Code:
void __stdcall INTERNALNAME::DrawFStr(PVideoFrame &dst,int x,int y,const char *format, ...) { // This member function added in v0.2, adds BOTH string and screen/layout formatting, // eg '%f' for string and '\n' for screen/layout. // Firstly, string formatting, into the buffer implemented in the class instance, formatted_buf[FMT_BUFSZ]. va_list args; va_start(args, format); _vsnprintf(formatted_buf,FMT_BUFSZ-1, format, args); va_end(args); // The above allows you to use this member function in the same way as eg printf("test=%d",i) ie DrawFStr(dst,x,y,"test=%d",i) // The DrawFStrXXX fn's are implemented in the InfoF.h file and provide screen/layout formatting, eg '\'n and '\t'. // As string formatting has already been done above (eg floats etc turned to character strings), and the below // DrawFStrXXX functions provide screen/layout formatting, so full formatting is achieved on the video frame. // // Formatting control codes (as provided by InfoF.h):- // '\n', Newline, positioning cursor 1 line down and at left edge of screen. // '\r', Newline Special, moves 1 line down and positions cursor at on-entry X position. // '\b', Backspace, obvious, not sure how useful this will be. // '\f', Forward Space, again obvious, re-uses formfeed code for this. Again, maybe not so useful. // '\t', Tab, @ character positions, every 4 characters.(relative screen LHS). // if(vi.IsPlanar()) DrawFStrPlanar(dst,x,y,formatted_buf); else if(vi.IsYUY2()) DrawFStrYUY2(dst,x,y,formatted_buf); else if(vi.IsRGB32()) DrawFStrRGB32(dst,x,y,formatted_buf); else if(vi.IsRGB24()) DrawFStrRGB24(dst,x,y,formatted_buf); } Also looks like it suffers from the characters above 127 not printing properly bug (signed char to int, -ve font array index). fix internally in draw character funcs (will correct any errors with -ve index by client caller) Code:
// Client caller int num = s[si]; // or *s; num -= ' '; // Conv font ix, eg chr(137) [Copyright] could be -ve if s is pointer to signed char. // draw func num &= 0xFF; // Ensure +ve char (Fix EXT ASCII bug), assumes twos compliment arithmetic (possible problem if compiled on non PC m/c). if(num >= 192) num = 0; // SPACE index (invalid character index, was out of font array)
__________________
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; 14th February 2017 at 14:37. |
17th February 2017, 01:46 | #198 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Hi Pinterf,
Excuse a dumb question, but do you have any recommendation as to which MMask (or whatever) to use to measure 'Goodness' of produced vectors ? I've started a script to test and log results by throwing all variations of args at MSuper/MAnalyse, and for delta 1 to 3 (maybe more). Just wanted to see if I could find good general settings by measurement. figured I'de find some good measure at some point but not sure that I can, so I'm currently stuck not knowing what direction to take. I thought maybe occlusion mask might be a start but we wild mask frames on black frame sequence, so seems not. Is there any way of combining masks to estimate goodness of vectors, via AverageLuma or whatever, any response would be appreciated.
__________________
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 ??? |
17th February 2017, 05:37 | #200 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Thanks Feisty, you are a sweetie
__________________
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 ??? |
|
|