Page 1 of 1

Re: Exotic Pan

Posted: Tue Aug 30, 2016 12:44 pm
by admin
Feel free to discuss it here, Henrik.

I do some things with focus in DGIndex(NV) so can probably help you. And we've got some really solid members here too.

Re: Exotic Pan

Posted: Tue Dec 20, 2016 10:48 am
by hwahlberg
Hi.

Thank you for the hints on keyboard hooking.
I have a fairly good working version of ExoticPan now.
I have not yet figured out how to distinguish on key up and key down, so sample is reacting on both travel directions.
On the movement buttons, a/s/d/w it really don't matter much especially now that I have switched from updateSystem() to updateFrame() :D
Buttons adding definitions will block after adding first definition, so that doesn't pose a big problem.
Only the delete button requires a bit of caution, it will delete the two nearest definitions.

So a/s/w/d moves the rectangle 3 pixels, control reduces that to 1 pixel, shift increases to 9 pixels.
n/j/i = new / jump / inside buttons.

Re: Exotic Pan

Posted: Sun Dec 25, 2016 9:13 am
by admin
Thanks Henrik. DId you want me to update the versions linked at my site with these new ones?

Re: Exotic Pan

Posted: Thu Feb 16, 2017 3:32 pm
by hwahlberg
Hi Again.
Been a while, but I have fixed the problem width the keyboard interface (distinguishing key up and down)
I have also changed the "Debug" feature, so it now keeps within the same frame size. Zoom out instead.

I think this is an OK version, please feel free to post it on you DL page.
Best regards Henrik.

Re: Exotic Pan

Posted: Sun Feb 19, 2017 1:49 pm
by hwahlberg
Hi again.

Did some refactoring some 10 checkin's ago. (in preparation to implement a class holding the offset for each point) In that I introduced a bug.
It's fixed in this upload.


Best regards Henrik.

Re: Exotic Pan

Posted: Sun Feb 19, 2017 5:11 pm
by admin
Sweet, thanks Henrik. It's great to see VirtualDub filtering advancing. I was curious about what Avery Lee is up to these days. Hopefully, all kinds of wonderful things. After all he did for desktop multimedia, we can only say thank you and bow down.
:bow:

Re: Exotic Pan

Posted: Thu Apr 27, 2017 3:33 pm
by hwahlberg
Hi.
Found yet another bug when reloading a script, again relating to my code refactor.
I have been using this version for a while, and think it's stable now.
I'm working on including dynamic zoom within the same code.
ExoticPan 1.2.07.zip
(84.25 KiB) Downloaded 782 times
ExoticPan 1.2.07 Src.zip
(109.59 KiB) Downloaded 795 times
Best regards, Henrik.

Re: Exotic Pan

Posted: Tue Jun 13, 2017 2:13 am
by hwahlberg
Hi Donald.

Trying to include your ZOOM filter I ran into some compile issues.
Not entirely sure which compiler you used, I attempted to upgrade solution file to VS2008 and VS2012 without luck.
I was hoping to learn some settings from there, but that did not succeed :-(

(I have included the project files for your reference)

In my own project (where I have imported your zoom code) I get these:

Code: Select all

1>------ Build started: Project: ExoticPan, Configuration: Debug Win32 ------
1>     Creating library c:\Temp\ExoticPanOut\Debug\ExoticPan.lib and object c:\Temp\ExoticPanOut\Debug\ExoticPan.exp
1>resample.obj : error LNK2019: unresolved external symbol _asm_resize_nearest referenced in function "public: bool __thiscall Resampler::Process(class VBitmap const *,double,double,class VBitmap const *,double,double,bool)" (?Process@Resampler@@QAE_NPBVVBitmap@@NN0NN_N@Z)
1>resample.obj : error LNK2019: unresolved external symbol _asm_resize_bilinear referenced in function "public: bool __thiscall Resampler::Process(class VBitmap const *,double,double,class VBitmap const *,double,double,bool)" (?Process@Resampler@@QAE_NPBVVBitmap@@NN0NN_N@Z)
1>resample.obj : error LNK2019: unresolved external symbol _asm_resize_interp_row_run referenced in function "protected: void __thiscall Resampler::_DoRow(unsigned long *,unsigned long const *,long)" (?_DoRow@Resampler@@IAEXPAKPBKJ@Z)
1>resample.obj : error LNK2019: unresolved external symbol _asm_resize_interp_col_run referenced in function "public: bool __thiscall Resampler::Process(class VBitmap const *,double,double,class VBitmap const *,double,double,bool)" (?Process@Resampler@@QAE_NPBVVBitmap@@NN0NN_N@Z)
1>resample.obj : error LNK2019: unresolved external symbol _asm_resize_ccint referenced in function "void __cdecl cc_row(unsigned long *,unsigned long const *,long,long,long,long,long,long,long,int const *)" (?cc_row@@YAXPAKPBKJJJJJJJPBH@Z)
1>resample.obj : error LNK2019: unresolved external symbol _asm_resize_ccint_col referenced in function "public: bool __thiscall Resampler::Process(class VBitmap const *,double,double,class VBitmap const *,double,double,bool)" (?Process@Resampler@@QAE_NPBVVBitmap@@NN0NN_N@Z)
1>resample.obj : error LNK2019: unresolved external symbol _asm_resize_ccint_col_MMX referenced in function "public: bool __thiscall Resampler::Process(class VBitmap const *,double,double,class VBitmap const *,double,double,bool)" (?Process@Resampler@@QAE_NPBVVBitmap@@NN0NN_N@Z)
1>resample.obj : error LNK2019: unresolved external symbol _resize_table_col_MMX referenced in function "void __cdecl resize_table_col(unsigned long *,unsigned long const * const *,int *,int,long,long,int)" (?resize_table_col@@YAXPAKPBQBKPAHHJJH@Z)
1>resample.obj : error LNK2019: unresolved external symbol _resize_table_row_MMX referenced in function "void __cdecl resize_table_row(unsigned long *,unsigned long const *,int const *,int,long,long,long,long,long,long,long,int)" (?resize_table_row@@YAXPAKPBKPBHHJJJJJJJH@Z)
1>resample.obj : error LNK2019: unresolved external symbol _resize_table_row_protected_MMX referenced in function "void __cdecl resize_table_row(unsigned long *,unsigned long const *,int const *,int,long,long,long,long,long,long,long,int)" (?resize_table_row@@YAXPAKPBKPBHHJJJJJJJH@Z)
1>c:\Temp\ExoticPanOut\Debug\ExoticPan.vdf : fatal error LNK1120: 10 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
So, pretty sure I have a wrong compile setting somewhere, but which ??
I have included the source if you or anybody else would like to have a look.

I have also included VS2008 and VS2012 project files for the original zoom code that gives similar problems..

Suggestions welcome!!

Best Regards Henrik.

Re: Exotic Pan

Posted: Tue Jun 13, 2017 8:39 am
by admin
Good morning, Henrik. Great to hear from you!

Zoom was built with VS 6.0. Here is a VS 2013 32-bit release project that builds clean and runs fine:

http://rationalqm.us/misc/Zoom_Henrik.rar

I will update the source distribution on my web site.

Re: Exotic Pan

Posted: Tue Jun 13, 2017 3:02 pm
by hwahlberg
Hi Donald.
I don't have VS2013, but can get that from MSDN, although I doubt that helps.

VS2012 reads the .sln and the .vcxproj.
When compiling if mentions that no <PlatformToolset>v120</PlatformToolset> exists. (That is VS2013)
Changing this to <PlatformToolset>v110</PlatformToolset> satisfies this part. So far so good.

but I still get same unresolved external symbol, like "asm_resize_nearest" referenced from resample.obj (where it's declared external).

Code: Select all

extern "C" void __cdecl asm_resize_nearest(
As far as I can tell, this symbol is defined in a_bitmap.obj, partly referenced by <AdditionalDependencies>odbc32.lib;odbccp32.lib;a_resize.obj;a_bitmap.obj;%(.....

Do you remember which role a_bitmap.obj plays?

I have attempted to add it to the project, but gives no change.
I get an error as https://stackoverflow.com/questions/105 ... eh-image-c
Suggestion there is to recompile that file with a more current version of the compiler. Do you have the source?

Don't know if this is important or i'm barking up the wrong tree..?

best regards Henrik.

Re: Exotic Pan

Posted: Tue Jun 13, 2017 3:18 pm
by admin
Link the two obj files. Then set Linker/Advanced/Image Has Safe Exception Handlers to No. That should be all you need to do. Please post again if needed.

If you need the source for the objs you'd have to look for it at https://sourceforge.net/projects/virtua ... aldub-win/. I don't have it. At the time I was just trying to avoid having to do any assembler.

Re: Exotic Pan

Posted: Wed Jun 14, 2017 5:43 am
by hwahlberg
Hi Donald.
I already attempted setting the Has Safe Exception Handlers to No.
That brings me back to having the " asm_resize_nearest" and a bunch of others to be undefined.
I think it's already linked, so it related to he call model prefixing.

I'll dig deeper.

Best regards Henrik,

Re: Exotic Pan

Posted: Wed Jun 14, 2017 8:29 am
by admin
I have 2012 on one of my machines. I'll see if I can get it going.

Why don't you want to upgrade to a later version?

Re: Exotic Pan

Posted: Wed Jun 14, 2017 9:33 am
by admin
Here is a working build for VS 2012:

http://rationalqm.us/misc/Zoom_Henrik.zip

I configured only for win32/release build.

Re: Exotic Pan

Posted: Mon Aug 14, 2017 11:25 pm
by hwahlberg
Hi.
I have not had much spare time lately, so as you may see on the file-dates it was some time ago I extended ExoticPan width zoom, and after getting past the initial asm/obj project additions, it was actually prety simple.

There is a not yet implemented feature and a couple of small bugs, but apart from that its still useable.

The persistence format already had room for a zoom factor, so no problem there.
I came to think of that it may not be practical to specify zoom on every "pan panel" as a lot of these are used to counter unwanted camera movements. Camera shakes probably does not change the requested zoom,
I concluded that if a panel has "0" in zoom then that is disregarded in zoom calculation, and thus the linear zoom interpolation is done between the nearest two panels that has zoom information.
In order to activate the zoom function, at least two "zoom panels" must be defined. (a panel definition width zoom value different from 0)

So to activate the zoom function, press "I" and "O" buttons, and the current panel height is displayed in the zoom field (making this a zoom panel.
Move at least a frame, press "a" to create a new panel and press "I" or "O" to zoom in or out, then we are in action.
OK a bit convoluted, but it's usable.

First problem is that you cannot in first frame start with a zoom different form current panel height. (First panel works fine as interpolation start, only it has to be = output panel height. (So a bug I have to fix)

Second issue is the function to adjust the frame so it is inside the source frame. (Used to be the "i" button for "Inside" which had to move, so now it's called "UnBleeed" and has the "u" button assigned. Only issue is that I have not yet modified the code to take zoom into account. I will fix that in time.

Third issue is a generic keyboard clash. I use the "Del" key to remove a panel definition. On the other hand you may put focus in one of the text fields, mark some characters, and press "Del" to get rid of them. In this case the "remove panel" function wins :lol:
That will probably pass under the radar for a while.

Also some documentation to update....

Hope it's interesting to some...

/Henrik