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. |
27th April 2012, 10:25 | #41 | Link | ||||
Real Harper's Mockingbird
Join Date: Mar 2012
Posts: 14
|
Hi AMSS0815,
Please review the edited part of my previous post. The main idea and all the rest remains unchanged, but due to 42hoursnonsleeping I just got confused with some results of another experiment, then showed the images that are ill-fitting there and gave them assumptions accordingly; so the images and their explanation are changed now to avoid the further confusions for you and other possible readers. Quote:
Quote:
Quote:
YUV> RGB> YUV> RGB>So, all the minimum and maximum YUV components do not generate similar to RGB results, they should have negative R and B values out of gamut. In fact, all zeros in the YUV colorspace result in a dull green rather than black, because we get a conventional approximation by clipping the negative values (Y=0,U=-128,V=-128) to 0. As I understand, the AnalyzeLogo always produce a result stored in RGB space (at least, *.ebmp looks as RGB file). So, an assumption here is that the RGB table is used for both spaces when analyzing, storing and deblending. This is why, proceeding from the above, the AVSinpaint may operate the U and V restricted each to 0-128 range when having a non-valid YUV input. IMHO, the above can not be directly named as a bug. We just may say the deblending function of AVSinpaint is not better than the Delogo's one existing since 2001 -- it is able to help with RGB-originated sources or with the old analog PAL's YUV color space, but is not modern enough in most other cases. Quote:
After some other experiments I think the "32-bit integer for each pixel" may be also not a good idea for YV12 sources if it is accompanied by chroma interpolation errors. I just examined the differences (see images below, grey shows no change) that occur as a result of convertions, running the Subtract function: Code:
FILM_a = inputMovie FILM_b = FILM_a.ConvertToRGB24.ConvertToYV12 Subtract(FILM_a,FILM_b).Levels(127,1,129,0,255) YV16> YUY2> YV24> RGB_>The more interpolation is involved, the less chance we have to invert the process of blending two images. The RGB convertion (maximum interpolation) seems to be most of all similar to the resulting glass-like effect (see B2 http://forum.doom9.org/showthread.ph...17#post1569517). If a similar non-precise algorythm is used in the AVSinpaint, it's a bug for sure because affects the main functionality. And here I go with one more suggestion for a possible imrovement: III. If the appropriate AVSinpaint algorythm allows, to avoid any chroma interpolations. In other case, to improve the chroma interpolation algorythm (some interesting ideas for precise interpolation and rounding control attached to this post). I'm out of further ideas at this moment, so the "Eureka!" voiced at last Thank you Have a good inspiration Last edited by shark000X; 28th April 2012 at 02:33. Reason: one more suggestion added |
||||
28th April 2012, 22:56 | #42 | Link | ||
Registered User
Join Date: Aug 2006
Posts: 29
|
Hi shark000X,
I'm a bit lost. You convinced me that conversions RGB<-->YUV cause clipping. Thanks for this enlightment, I didn't realize that although it is obvious to me now. Yet I don't see the connection with AVSInpaint. There are no colorspace conversions happening inside AVSInpaint, which the following far-fetched exceptions (n=number of color channels):
Quote:
Quote:
If you suspect that the generation of the common alpha mask out of the channels alpha masks is the problem, then please try this: Start with you YUV clip, use Grayscale, UtoY and VtoY to create three independent grayscaled clips which contain the Y, U and V of your original clip as Y values. This step should not cause any clipping and also no round-off errors (Grayscale just sets U and V to 0x80, *toY just copies values around). Up to this point, there is hence no distorsion of any kind (ok?). Then apply AnalyzeLogo to each of those. Because U=V=0x80 are constant on these clips, AnalyzeLogo will not take U- and V-channel data into account when computing alpha masks (see DeviationWeight parameter). Unless there is a bug (behaviour deviant to documentation), AnalyzeLogo will also not clip anything. It will produce round-offs: After all the 32-bit integers are summed up, further computation is done with floating-point arithmetic and the final alpha mask has to be represented by 8-bit unsigned integers. Yet I don't see a problem here. At this point, AnalyzeLogo will give you three alpha masks (one for Y, one for U, one for V), and three logo color parts of course. Try to deblend each of the channels (the three clips you created with *toY etc) separately. If you do not suspect that the generation of the common alpha mask is the problem, let me assure you: There is nothing else going on inside AnalyzeLogo which might be tantamount to a colorspace conversion. -- AMSS0815 |
||
14th August 2012, 07:18 | #43 | Link |
Registered User
Join Date: Aug 2011
Posts: 6
|
Hi, need some help with an opaque logo. I just put in some preliminary functions to test out the plugin and to see if my .bmp mask was correct, and all it seems to be doing is remove the lettering inside the red logo itself which makes the whole area red. Am I doing something wrong already or is this logo too solid (which I didn't figure would be correct considering that's what I understand the whole Inpaint process is about in the first place, right?)
Here is the quick test code: InpaintFunc(last, mask="logo0.bmp",loc="164,0,-1624,-766", mode="both") Here are the masks: And here's what it looks like afterwards: |
15th August 2012, 13:36 | #44 | Link | ||
Registered User
Join Date: Aug 2006
Posts: 29
|
Quote:
Quote:
-- AMSS0815 P.S.: Nevertheless, the logo is quite big, so when you get it going, I would expect ugly discontinuities in time. |
||
11th December 2015, 03:22 | #46 | Link | |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Quote:
Above is one, there are probably a few more de-logo plugs for Vdub. EDIT: Try a search on "logo' in Vdub forum.
__________________
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; 11th December 2015 at 10:26. |
|
11th December 2015, 19:09 | #47 | Link |
Registered User
Join Date: Aug 2006
Posts: 29
|
As far as I know, AVSInpaint was never ported to VirtualDub, so you can't use it there (directly).
Karel Suhajda's DeLogo filter for VirtualDub (also mentioned in my original post) does essentially the same to semitransparent logos as AVSInpaint does, for opaque parts of a logo, however, it produces strong blurs. Nevertheless, for VirtualDub it's the most flexible logo removal tool I know off. |
11th September 2016, 20:25 | #48 | Link |
Registered User
Join Date: Oct 2011
Posts: 275
|
Hello AMSS0815,
First i want to say thank you for this tool, used it many times in the past and it always done a great job. Now I'm trying to use it with StaxRip x64 version and the dll does not work there as apparently it's not compatible with x64 needs. Is it possible for you to update or port it to be compatible with x64 please ? Thanks a lot in advance. |
11th September 2016, 21:15 | #49 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Amss0815, was last online December 2015, don't hold your breath waiting for an answer.
Edit: source is available, I think. If you don't code, now is you opportunity to try.
__________________
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; 11th September 2016 at 21:19. |
11th September 2016, 23:39 | #50 | Link |
Registered User
Join Date: Oct 2011
Posts: 275
|
Yeah i know it have very slim chances, need him to see this and then modify the stuff, if possible.
Sadly I don't code no, will probably take ages to get into this and get a result if i try it myself, don't even know where to start :/ Well i tried to ask, will see if he see this one of those days, it is a nice tool and can be of good use for all of us in need of a x64 version too, not only for me i mean. Thanks for the answer. |
12th September 2016, 02:01 | #51 | Link | |
Registered User
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,079
|
Quote:
After many tests I decided for myself to revert back to the 32-bit version of StaxRip. I did not like version 1.2.2.0 all that much so I went all the way back to version 1.1.9.0, and I never looked back... Cheers manolito |
|
12th September 2016, 03:53 | #52 | Link | |
Excessively jovial fellow
Join Date: Jun 2004
Location: rude
Posts: 1,100
|
Quote:
This particular plugin seems to be fairly clean C with no inline assembly, compiler intrinsics or other weirdness so chances are you can just recompile it with the Avisynth+ C-interface header and it'll work. It's a single source file, shouldn't take you more than maybe ten minutes to give it a try, so what are y'all waiting for? Last edited by TheFluff; 12th September 2016 at 03:55. |
|
12th September 2016, 09:38 | #53 | Link |
Registered User
Join Date: Oct 2011
Posts: 275
|
I won't argue about the utility or futility of a full x64 program, StaxRip x64 in the last versions brings some options very useful for me, making my life way easier when it comes to encode videos, that's all
@TheFluff, you give me some hope man , searched briefly on the net for converting x86 stuff to x64 but i don't understand fully the part about inline assembly and other potential weirdness you speak about, seems like a good sign tho. The source code is in the AVSInpaint.c file right ? I checked it a bit his content and saw "#include "AviSynth_C.h"" , if this the thing you speak about when you say " just recompile it with the Avisynth+ C-interface header" ? If so and if i understood correctly changing this part to use Avisynth+ x64 equivalent file and recompile the dll may work ? I don't know yet how to recompile this or even what program to use to do this but might spend some time searching the web in the next days to try figure this out and do it, hopefully i will not screw up everything, or maybe a good soul having more knowledge about this will have pity of me and do it, if like you said it takes 10 minutes to do someone may be kind enough to try it Thanks a lot. |
12th September 2016, 16:28 | #54 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Yanak, I see AMSS0815 on-site right NOW, perhaps you will be lucky.
__________________
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 ??? |
12th September 2016, 17:09 | #55 | Link |
Registered User
Join Date: Aug 2006
Posts: 29
|
Hi Yanak,
thanks for your posting. I'm still watching this thread, and from time to time I'm wondering if someone (still) uses this thing... Unfortunatelly I can only be of little help: I'm not running Windows anymore, and the only Windows I can access right now is a 32bit-XP-installation. Here is what I know:
With this (non-)knowledge, I downloaded a file called i686-6.2.0-release-win32-dwarf-rt_v5-rev1.7z somewhere near the mingw64-project and recompiled the dll with the commands from above. Surprisingly there were no errors (but many warnings .. gcc grew quite strict within the past years). As I can't test that file I just attach it here for you to test. I'm doubting it will work. If it does: Celebrate, otherwise please try to find some 64bit-on-64bit-version of mingw, look for a 64bit-version of the lib-file, then follow the recipe outlined above. There is no real coding involved, the hardest part is probably searching for the requisites. I'm running linux on x86-64. Maybe I can get some linux-version of mingw for my cpu, then I might be able to compile it myself, but this probably won't happen this week. If someone around here has any hint on compiling C-plugins for 64bit-AviSynth, please let us know |
12th September 2016, 20:11 | #56 | Link |
Registered User
Join Date: Oct 2011
Posts: 275
|
Thanks a lot for the answer, really happy to see this, the dll can't be downloaded for now as it seems to need some approval, not sure how it works on the forum and how long it will take but I'm really impatient to test it.
I am on a limited network for the moment and can't really browse efficiently the net to look into all the procedure you explained, but if the .dll doesn't work I'll try to search for the needed files as soon as possible, maybe someone else passing by will know already how to find those too. Thank you very much for taking the time to make it, really appreciate it, hope it will work so i can continue to enjoy your great work . Thanks a lot. |
13th September 2016, 01:19 | #57 | Link |
Registered User
Join Date: Oct 2011
Posts: 275
|
Tested quickly and doesn't seems to work , i cannot get it to load in StaxRip, getting a error message
Cannot load file 'C:/Users/Yanak/Desktop/AVSInpaint.dll'. Platform returned code 193: %1 is not a valid Win32 application. Using Megui it still loads on my avs and does the job perfectly to remove the logo while under x86 avisynth, even combined with InpaintFunc.avs this new dll still works nicely under x86 and still do an awesome job on removing the logo . Almost 2am here so i will search tomorrow for AviSynth_C.h and AviSynth.lib in x64, the first one might be available at avisynth+ , Avisynth.lib for x64 might take a bit more time, first searches were not conclusive. I'll also give a try at your instruction to compile the dll directly under x64 and see how it goes too, will have to go step by step as this is not really something i'm used to Thanks again for having took the time to do it and help on this. |
13th September 2016, 15:32 | #58 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Not sure but I think I remember some kind of problem with an app (Yasm I think) where it would not work compiled with
later versions of a compiler (maybe gcc), where the platform ID had changed from upper to lowercase, ie Platform should be (I think) 'win32' not Win32', or win64 not Win64. Hope AMSS0815 sees this. EDIT: See here:- http://forum.doom9.org/showthread.ph...75#post1742975 EDIT: In above link seems to apply to win32 Visual Studio build, but perhaps applies to win64 gcc too (maybe worth further examination).
__________________
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 September 2016 at 16:19. |
14th September 2016, 01:07 | #59 | Link |
Registered User
Join Date: Oct 2011
Posts: 275
|
I tried to compile by myself with mingw-w64 , after some tries i could do some tests but no luck for me.
In mingw-w64 install options i can select i686 or x86_64 : Tried the second one and doing the obj file works but getting the dll gives me this message : [spoiler] Code:
E:\test>gcc -fdiagnostics-show-location=once -funsigned-char -mthreads -Wextra -pedantic -Wall -Wdeclarati n-after-statement -Wundef -Wpointer-arith -Wstrict-prototypes -Wredundant-decls -O2 -fomit-frame-pointer -ma ign-double -s -march=x86-64 -shared -o AVSInpaint.dll AVSInpaint.obj AviSynth.lib AVSInpaint.obj:AVSInpaint.c:(.text+0x6c): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0xdd): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xef): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x137): undefined reference to `__imp_avs_copy_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x149): undefined reference to `__imp_avs_add_function' AVSInpaint.obj:AVSInpaint.c:(.text+0x885): undefined reference to `__imp_avs_new_c_filter' AVSInpaint.obj:AVSInpaint.c:(.text+0x91c): undefined reference to `__imp_avs_set_to_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x934): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xa0c): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xba7): undefined reference to `__imp_avs_set_to_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xbd5): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x16a3): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x16c0): undefined reference to `__imp_avs_make_writable' AVSInpaint.obj:AVSInpaint.c:(.text+0x1837): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x1aee): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x2a1a): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x399c): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x3c09): undefined reference to `__imp_avs_make_writable' AVSInpaint.obj:AVSInpaint.c:(.text+0x3e59): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x4bf6): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x51bd): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x53b4): undefined reference to `__imp_avs_new_c_filter' AVSInpaint.obj:AVSInpaint.c:(.text+0x557d): undefined reference to `__imp_avs_new_c_filter' AVSInpaint.obj:AVSInpaint.c:(.text+0x55e7): undefined reference to `__imp_avs_take_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x55fe): undefined reference to `__imp_avs_get_video_info' AVSInpaint.obj:AVSInpaint.c:(.text+0x586a): undefined reference to `__imp_avs_get_video_info' AVSInpaint.obj:AVSInpaint.c:(.text+0x588e): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x5fc7): undefined reference to `__imp_avs_take_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x6017): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x6134): undefined reference to `avs_is_yuy' AVSInpaint.obj:AVSInpaint.c:(.text+0x6dca): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x6e55): undefined reference to `__imp_avs_copy_value' AVSInpaint.obj:AVSInpaint.c:(.text+0x7077): undefined reference to `avs_is_yuy' AVSInpaint.obj:AVSInpaint.c:(.text+0x711f): undefined reference to `__imp_avs_set_to_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x7195): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x71d0): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x71e5): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x776a): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x77ca): undefined reference to `__imp_avs_make_writable' AVSInpaint.obj:AVSInpaint.c:(.text+0x79b5): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x79cb): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x79e1): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x7bfe): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x7c14): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x7e6d): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x7e81): undefined reference to `__imp_avs_make_writable' AVSInpaint.obj:AVSInpaint.c:(.text+0x7ed9): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x839e): undefined reference to `__imp_avs_take_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x83ff): undefined reference to `__imp_avs_get_video_info' AVSInpaint.obj:AVSInpaint.c:(.text+0x8442): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x8492): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x84a0): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x85f1): undefined reference to `__imp_avs_take_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x8695): undefined reference to `__imp_avs_get_video_info' AVSInpaint.obj:AVSInpaint.c:(.text+0x8762): undefined reference to `__imp_avs_new_c_filter' AVSInpaint.obj:AVSInpaint.c:(.text+0x87b4): undefined reference to `__imp_avs_set_to_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x87e3): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x8b60): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x8b7e): undefined reference to `__imp_avs_set_cache_hints' AVSInpaint.obj:AVSInpaint.c:(.text+0x8b99): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x8be9): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x8bff): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x8c0d): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0x8e22): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x8e4c): undefined reference to `__imp_avs_set_cache_hints' AVSInpaint.obj:AVSInpaint.c:(.text+0x8e57): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x8edf): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x8faa): undefined reference to `__imp_avs_get_video_info' AVSInpaint.obj:AVSInpaint.c:(.text+0x93f4): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x9597): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x9c02): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0x9f85): undefined reference to `avs_is_yuy' AVSInpaint.obj:AVSInpaint.c:(.text+0xa824): undefined reference to `avs_is_yuy' AVSInpaint.obj:AVSInpaint.c:(.text+0xaa6a): undefined reference to `__imp_avs_take_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xaa8f): undefined reference to `__imp_avs_get_video_info' AVSInpaint.obj:AVSInpaint.c:(.text+0xaaec): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xab0d): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0xab3a): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xab4c): undefined reference to `__imp_avs_release_video_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0xabff): undefined reference to `__imp_avs_take_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xac75): undefined reference to `__imp_avs_get_video_info' AVSInpaint.obj:AVSInpaint.c:(.text+0xaf45): undefined reference to `__imp_avs_set_cache_hints' AVSInpaint.obj:AVSInpaint.c:(.text+0xaf6c): undefined reference to `__imp_avs_get_frame' AVSInpaint.obj:AVSInpaint.c:(.text+0xaf85): undefined reference to `avs_is_yuy' AVSInpaint.obj:AVSInpaint.c:(.text+0xafe2): undefined reference to `avs_is_yuy' AVSInpaint.obj:AVSInpaint.c:(.text+0xafec): undefined reference to `avs_is_yuy' AVSInpaint.obj:AVSInpaint.c:(.text+0xb230): undefined reference to `__imp_avs_new_video_frame_a' AVSInpaint.obj:AVSInpaint.c:(.text+0xb2df): undefined reference to `__imp_avs_new_c_filter' AVSInpaint.obj:AVSInpaint.c:(.text+0xb359): undefined reference to `__imp_avs_set_to_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xb383): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xb3e8): undefined reference to `__imp_avs_release_clip' AVSInpaint.obj:AVSInpaint.c:(.text+0xb428): undefined reference to `__imp_avs_get_frame' collect2.exe: error: ld returned 1 exit status E:\test> Strangely enough when i tied the second command line given without the AviSynth.lib file at the end the message ended in being almost the same if not the exact same error message, i'll have to try this again tomorrow and compare both, using this command missing the AviSynth.lib at the end ( i tried without it, who knows ) : Code:
gcc -fdiagnostics-show-location=once -funsigned-char -mthreads -Wextra -pedantic -Wall -Wdeclaration-after-statement -Wundef -Wpointer-arith -Wstrict-prototypes -Wredundant-decls -O2 -fomit-frame-pointer -malign-double -s -march=x86-64 -shared -o AVSInpaint.dll AVSInpaint.obj Will test and try more tomorrow but seems like mingw-w64 with x86_64 setting the file AviSynth.lib might be the problem, searched a while for x64 version of it and only thing i could find is this discussion : http://forum.doom9.org/showthread.ph...91#post1389791 Sadly i could not find the lib file in the link of the second post and got lost in JoshyD's explanation to be honest, all this is new to me. Well, no luck for me but managed to compile my first dll and it's working in megui under x86, that's something already Last edited by Yanak; 23rd January 2018 at 00:24. |
14th September 2016, 05:46 | #60 | Link |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 10,980
|
Yanak, Avisynth standard installer installs Avisynth.lib in Extras folder when you tick the 'Select Extra Files' tick box.
I assume that AVS+ 64bit does the same (If that is what you are using). JoshyD post from 2010 MT 64 bit, so unlikely to be of use for AVS+ 64 bit (I think, unless that is what you are using).
__________________
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 ??? |
Thread Tools | Search this Thread |
Display Modes | |
|
|