Exotic Pan

Support for my VirtualDub filters
Post Reply
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Exotic Pan

Post by hwahlberg »

To those interested,,

I have fixed a bug, so it saves and restores parameters.
I have changed the 3 digit output frame limit, it should now allow up to 4K.
I have changed the red frame drawn in debug mode, so it's visible even if you scale down the output frame to 33%
I have added some convenience buttons giving standard output formats. (multi press switches 4/3 and 16/9)

So, I'm sharing both source and compiled filter.
I have attached it here.

issues
1) I can't figure out to compile it with VS2008 Express, so it's compiled with 2012 Ult, with "Platform Toolset" pointing at VS2010
I also have VS2008 installed, but if won't compile resources when toolset is VS2008. :-(
2) frame references for the 10 Exotic-pan intervals is in original frame numbers. So if you intend to cut out frames, then do that after setting up exotic pan.

Best regards. Henrik.
Attachments
ExoticPan_1.1_Src.zip
(27.3 KiB) Downloaded 669 times
ExoticPan_1.1.zip
(9.06 KiB) Downloaded 672 times
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post by hwahlberg »

To those interested.

I have redone the interface and feel I have made the filter very much simpler and faster to use.
Exotic Pan Filter.jpg
The new interface
I have include 1.2 of ExoticPan (bin and src)

best regards Henrik.
Attachments
ExoticPan 1.2 Src.zip
Latest source
(107.77 KiB) Downloaded 684 times
ExoticPan 1.2.zip
Binaries and help file
(84.6 KiB) Downloaded 665 times
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post by admin »

Thank you, Henrik! :bravo:
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post by hwahlberg »

Hi
Sorry, but I have included an annoying "load" bug in the previous upload.
(If you save definitions, they will appear lost when you come back and load them again, until you insert a new definition)

So I'm including 1.2.1, fully compatible with the 1.2 i uploaded some days ago.

Again sorry.

Best regards Henrik.

PS
Any chance of getting the new version on http://rationalqm.us/hosted.html ?
Attachments
ExoticPan 1.2.1.zip
(84.6 KiB) Downloaded 676 times
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post by admin »

Hi Henrik,

Sure I can host it. Can you please give the source code for the fixed version?
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post by hwahlberg »

Hi.
Sure.
I just discovered the area of code I fixed fails in the opposite situation. :-(
(When you add the filter, the area is not properly centered. Not a big problem, but could be confusing to some)
I'll come back with a fix shortly, and this time test i a bit better.
Sorry.

Best regards - Henrik.
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post by hwahlberg »

Hi.

I have tested this one thoroughly, and found no hiccups.
ExoticPan 1.2.2.zip
Exotic pan vdf and help files.
(84.61 KiB) Downloaded 761 times
ExoticPan 1.2.2 Src.zip
Source for plugin and help files
(108.01 KiB) Downloaded 794 times
Hope you find time to place it one the DL page.

Best ragards Henrik.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post by admin »

I'll link it straight away. Thank you for your contribution!

Don
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post by admin »

All done. I restored the Hosted page link and added your work. I used your name. Please advise if you prefer something else.

You may have to refresh pages to see the new links.
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post by hwahlberg »

Hi.
Thanks.

I have some plugin development questions (e.g. moving keyboard focus back to preview window, (after key press or by a timer))
But as far as I can see the dev forum at virtualdub.org is closed. (but may have been that for a while, though, think I discussed exoticpan there, around a year ago)
Any idea where to discuss ?

Regards Henrik.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post 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.
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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.
Attachments
ExoticPan 1.2.4.zip
Latest version of ExoticPan filter
(94.94 KiB) Downloaded 695 times
ExoticPan 1.2.4 Src.zip
Latest source
(108.99 KiB) Downloaded 649 times
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post by admin »

Thanks Henrik. DId you want me to update the versions linked at my site with these new ones?
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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.
Attachments
ExoticPan 1.2.5 Src.zip
(109.56 KiB) Downloaded 639 times
ExoticPan 1.2.5.zip
(84.26 KiB) Downloaded 650 times
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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.
Attachments
ExoticPan 1.2.6.zip
(84.25 KiB) Downloaded 674 times
ExoticPan 1.2.6 Src.zip
(109.61 KiB) Downloaded 667 times
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post 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:
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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 781 times
ExoticPan 1.2.07 Src.zip
(109.59 KiB) Downloaded 795 times
Best regards, Henrik.
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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.
Attachments
ZoomVS2012.zip
Upgrade wizard from VS2012 used on the original project file.
(10.35 KiB) Downloaded 645 times
ZoomVS2008.zip
Upgrade wizard from VS2008 used on the original project file.
(4.41 KiB) Downloaded 599 times
ExoticPan+ZoomSrc.zip
VS2012 project with zoom partly integrated.
(190.27 KiB) Downloaded 624 times
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post 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.
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post 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.
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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,
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post 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?
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Exotic Pan

Post by admin »

Here is a working build for VS 2012:

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

I configured only for win32/release build.
DAE avatar
hwahlberg
Posts: 19
Joined: Sun Sep 28, 2014 6:22 pm

Re: Exotic Pan

Post 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
Attachments
ExoticPan 1.2.08z.zip
(95.24 KiB) Downloaded 704 times
ExoticPan 1.2.08z Src.zip
(135.54 KiB) Downloaded 742 times
Post Reply