Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

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

Reply
 
Thread Tools Search this Thread Display Modes
Old 5th February 2017, 01:45   #181  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 1,932
Code:
colorbars(width = 1920, height = 1080, pixel_type = "yv12").killaudio().assumefps(25, 1)
MCaWarpSharp3()
with 2015.02.20 avs mt by SEt I can reproduce

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
but this work fine

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
real.finder is offline   Reply With Quote
Old 5th February 2017, 16:26   #182  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,685
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.
pinterf is offline   Reply With Quote
Old 5th February 2017, 18:10   #183  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,169
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:
Avisynth read error:
MVTools: vector clip is too small (corrupted?)
Tested with the latest 32/64-bit AVS+, MVTools, and VirtualDubFilterMod. Here's the sample clip: https://www.dropbox.com/s/a51vkbw4vk...le_SD.avi?dl=1
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
Reel.Deel is offline   Reply With Quote
Old 5th February 2017, 18:44   #184  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,685
Quote:
Originally Posted by Reel.Deel View Post
I think I found another bug? Don't know if it's related to the problem above but with the following script I get:
IIRC this script use to work correctly with v2.6.0.5.
[/CODE]
Tried all variants, 2.6.0.5 reports this error too. But it seems that the 2.5 versions are silent.
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?)");
	}
2.5.11.22:
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.
pinterf is offline   Reply With Quote
Old 6th February 2017, 16:57   #185  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,685
New build:
MvTools2 2.7.14.22 (20170206) with depans
  • Fix: MAnalyze divide=2 showed "vector clip is too small", inherited from 2.6.0.5, sanity check was done but length to check was not filled for divideextra data
  • Fix: MFlow access violation in internal mv resizer when resizing factor was big (MCaWarpSharp3 4x supersampling case), bug introduced in upstream 2.5.11.22
Thanks for edcrfv94 and Reel.Deel for the reports.
pinterf is offline   Reply With Quote
Old 6th February 2017, 22:58   #186  |  Link
edcrfv94
Registered User
 
Join Date: Apr 2015
Posts: 78
AvsPmod 64bit There is an error message, but can still be used no crash.
Quote:
Traceback (most recent call last):
File "avsp.pyo", line 11690, in OnFocusVideoWindow
File "avsp.pyo", line 13917, in SetVideoStatusText
File "avsp.pyo", line 14066, in GetVideoInfoDict
File "avsp.pyo", line 17256, in FormatTime
TypeError: %d format: a number is required, not float
Thank
edcrfv94 is offline   Reply With Quote
Old 7th February 2017, 14:33   #187  |  Link
Reel.Deel
Registered User
 
Join Date: Mar 2012
Location: Texas
Posts: 1,169
Quote:
Originally Posted by pinterf View Post
Thanks for the quick fix!
Reel.Deel is offline   Reply With Quote
Old 11th February 2017, 19:41   #188  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 6,182
@pinterf: using 'MvTools2 2.7.14.22 (20170206)' on a Xeon E5640 I get:
Quote:
Couldn't import -1 (1): le to load "C:\PROGRA~1\Hybrid\AVISYN~1\mvtools2.dll", error=0xc1
(using 32bit Avisynth MT 2.6)
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
__________________
Hybrid here in the forum, homepage
Notice: Since email notifications do not work here any more, it might take me quite some time to notice a reply to a thread,..
Selur is offline   Reply With Quote
Old 11th February 2017, 20:12   #189  |  Link
DJATOM
Registered User
 
DJATOM's Avatar
 
Join Date: Sep 2010
Location: Ukraine, Bohuslav
Posts: 254
Quote:
Originally Posted by Selur View Post
0xc1
I suppose your server has outdated vs2015 runtime or it does not installed at all. Please check that first.

Last edited by DJATOM; 11th February 2017 at 20:16.
DJATOM is offline   Reply With Quote
Old 11th February 2017, 21:51   #190  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,030
Quote:
Originally Posted by Selur View Post
Code:
Couldn't import -1 (1): le to load "C:\PROGRA~1\Hybrid\AVISYN~1\mvtools2.dll", error=0xc1
Probably what DJATOM suspects, you can also try to check with Dependency Walker and/or AVSMeter ("-avsinfo").
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 11th February 2017, 22:44   #191  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 6,182
@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)
but I'm probably missing vs2015 runtime
__________________
Hybrid here in the forum, homepage
Notice: Since email notifications do not work here any more, it might take me quite some time to notice a reply to a thread,..
Selur is offline   Reply With Quote
Old 11th February 2017, 22:52   #192  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 6,182
-> Thanks that worked. (adding dlls from latest 2015 runteim)
__________________
Hybrid here in the forum, homepage
Notice: Since email notifications do not work here any more, it might take me quite some time to notice a reply to a thread,..

Last edited by Selur; 11th February 2017 at 23:07.
Selur is offline   Reply With Quote
Old 12th February 2017, 23:02   #193  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,512
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)
Above intent to show areas in Bright Red where bv and fv do not coincide.
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.
StainlessS is offline   Reply With Quote
Old 12th February 2017, 23:21   #194  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,685
Is clip width and height divisible by 16?
pinterf is offline   Reply With Quote
Old 12th February 2017, 23:28   #195  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,512
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)
Problem gone.
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.
StainlessS is offline   Reply With Quote
Old 14th February 2017, 11:45   #196  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,512
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);
}
EDIT: Above could probably do with a guard to prevent multiple #include's.

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);
}
EDIT: Looks to me like your implementation of Info.h also has old bug where printing off bottom of frame will result in crash (if small frame).

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.
StainlessS is offline   Reply With Quote
Old 15th February 2017, 07:43   #197  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,685
Thanks, I'll check it. All I did with debug display was to make it work for high bit depth. And perhaps writing not only on Y. If I remember correctly.
pinterf is offline   Reply With Quote
Old 17th February 2017, 01:46   #198  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,512
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 ???
StainlessS is offline   Reply With Quote
Old 17th February 2017, 05:24   #199  |  Link
feisty2
I'm Siri
 
feisty2's Avatar
 
Join Date: Oct 2012
Location: Providence, RI
Posts: 2,415
SAD mask (kind=1)
__________________
If I got new ideas, will post here: https://github.com/IFeelBloated
feisty2 is offline   Reply With Quote
Old 17th February 2017, 05:37   #200  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,512
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 ???
StainlessS is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

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

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

Forum Jump


All times are GMT +1. The time now is 03:47.


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