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 4th August 2003, 09:36   #41  |  Link
tempetai
Registered User
 
tempetai's Avatar
 
Join Date: Apr 2003
Posts: 49
Quote:
Originally posted by WarpEnterprises
Did you install DirectX SDK?
OK... This is the thing that I have missed... Thanks WarpEnterprises...
tempetai is offline   Reply With Quote
Old 5th August 2003, 18:38   #42  |  Link
tempetai
Registered User
 
tempetai's Avatar
 
Join Date: Apr 2003
Posts: 49
I have installed DXSDK, but now I got these errors:

Linking...
Creating library Profile/avisynth.lib and object Profile/avisynth.exp
softwire_helpers.obj : error LNK2001: unresolved external symbol "public: void * __thiscall SoftWire::Assembler::acquire(void)" (?acquire@Assembler@SoftWire@@QAEPAXXZ)
.....


avisynth.dll - 79 error(s), 0 warning(s)

Please help.

Last edited by tempetai; 6th August 2003 at 19:35.
tempetai is offline   Reply With Quote
Old 6th August 2003, 06:08   #43  |  Link
WarpEnterprises
C64
 
WarpEnterprises's Avatar
 
Join Date: Apr 2002
Location: Austria
Posts: 830
I think your include path doesn't include the LIB directory in the AviSynth sources (there are nowadays some LIBs necessary - Softwire, image reader libs,...)
WarpEnterprises is offline   Reply With Quote
Old 6th August 2003, 09:13   #44  |  Link
tempetai
Registered User
 
tempetai's Avatar
 
Join Date: Apr 2003
Posts: 49
I've add the avisynth\distrib\include and lib into directories tab. But still no different. But I notice some improvement when I put softwire.lib and devil.lib into link tab of project preference. The error turn to 65 from 79. But still a lot of error.

Please help.

Last edited by tempetai; 6th August 2003 at 20:07.
tempetai is offline   Reply With Quote
Old 7th August 2003, 02:27   #45  |  Link
tempetai
Registered User
 
tempetai's Avatar
 
Join Date: Apr 2003
Posts: 49
What is the active configuration that you guys is using? Mine was defaulted to Win32 Profile. Does this make any different?

Sorry to ask. I'm very new in VC++ environment.
tempetai is offline   Reply With Quote
Old 7th August 2003, 07:34   #46  |  Link
IanB
Avisynth Developer
 
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
Quote:
Originally posted by tempetai
What is the active configuration that you guys is using? Mine was defaulted to Win32 Profile. Does this make any different?

Sorry to ask. I'm very new in VC++ environment.
Profiles simply provide a convienient means to select build options, like "/D DEBUG". Look under "Project Settings" to see what options are actually part of each profile.

The standard profiles are :-

"Win32 Debug" does a full debug build and uses debug versions of the libraries. (Maximum checking, slower, development)

"Win32 Profile" does a release style build but links with profiling libraries. (check with Sh0dan how to make use of these tools)

"Win32 Release" does a full release build and uses full release grade libraries. (Maximum speed, for normal use)

IanB

Last edited by IanB; 7th August 2003 at 07:51.
IanB is offline   Reply With Quote
Old 8th August 2003, 02:31   #47  |  Link
tempetai
Registered User
 
tempetai's Avatar
 
Join Date: Apr 2003
Posts: 49
I'm now succesfully compiling the avisynth in any configuration. I just have to make sure that the softwire.lib and devil.lib are in the list and set the link option to /NODEFAULTLIB:"LIBC".

Softwire is cool...
tempetai is offline   Reply With Quote
Old 8th August 2003, 08:54   #48  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
@IanB: Actually I have never used the "Profile Configuration". For profiling, it is possible to use the Release builds. I don't know who created the Profile Conf, but it just left it there, if anyone uses it.

It should probably just be removed, unless someone objects.

Yes - SoftWire rocks!
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 8th August 2003, 09:47   #49  |  Link
tempetai
Registered User
 
tempetai's Avatar
 
Join Date: Apr 2003
Posts: 49
I have no objection... Cause me two days trouble...
tempetai is offline   Reply With Quote
Old 8th August 2003, 12:29   #50  |  Link
WarpEnterprises
C64
 
WarpEnterprises's Avatar
 
Join Date: Apr 2002
Location: Austria
Posts: 830
add some hours from me ...
WarpEnterprises is offline   Reply With Quote
Old 22nd September 2003, 21:10   #51  |  Link
WarpEnterprises
C64
 
WarpEnterprises's Avatar
 
Join Date: Apr 2002
Location: Austria
Posts: 830
We should mention here what sh0dan wrote as CVS comment:

Quote:
2003/9/18 16:2:48 - Additional compilation requirements: DirectX Directshow baseclasses, found in the samples directory - add to both library and header directory.
With "samples directory" the directory

DXF\DXSDK\samples\Multimedia\DirectShow\BaseClasses

in the DX-SDK is meant ( I was desparately seeking in the CVS directories )

But anyhow: it won't compile, there are many warnings and some LINKER errors:
Code:
strmbase.lib(dllentry.obj) : error LNK2005: _DllGetClassObject@12 bereits in main.obj definiert
strmbase.lib(dllentry.obj) : error LNK2005: _DllCanUnloadNow@0 bereits in main.obj definiert
strmbase.lib(dllentry.obj) : warning LNK4006: _DllGetClassObject@12 bereits in main.obj definiert; zweite Definition wird ignoriert
strmbase.lib(dllentry.obj) : warning LNK4006: _DllCanUnloadNow@0 bereits in main.obj definiert; zweite Definition wird ignoriert
   Bibliothek Release/avisynth.lib und Objekt Release/avisynth.exp wird erstellt
LINK : warning LNK4098: Standardbibliothek "LIBC" steht in Konflikt mit anderen Bibliotheken; /NODEFAULT:Bibliothek verwenden
strmbase.lib(dllsetup.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "class CFactoryTemplate *  g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbase.lib(dllentry.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "class CFactoryTemplate *  g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
strmbase.lib(dllsetup.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "int  g_cTemplates" (?g_cTemplates@@3HA)
strmbase.lib(dllentry.obj) : error LNK2001: Nichtaufgeloestes externes Symbol "int  g_cTemplates" (?g_cTemplates@@3HA)
Any ideas? (I added the paths of the mentioned .h and .cpp files as suggested)

Last edited by WarpEnterprises; 22nd September 2003 at 21:25.
WarpEnterprises is offline   Reply With Quote
Old 24th September 2003, 16:05   #52  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Yeah - I had troubles with that one too. I seem to remember I fould an old strmbase.lib (strmbasd.lib in debug mode) somewhere else in my library path. Be sure to only have the one in

DXSDK\samples\Multimedia\DirectShow\BaseClasses\Debug

and

DXSDK\samples\Multimedia\DirectShow\BaseClasses\Release

referenced, and be sure to add both to your Tools/Options/Directories/Libraries I hate the black voodoo with C compilers - especailly linker errors. Unfortunately I can only say that it also took me a few hours to get this compiling on my second machine.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 2nd October 2003, 16:54   #53  |  Link
WarpEnterprises
C64
 
WarpEnterprises's Avatar
 
Join Date: Apr 2002
Location: Austria
Posts: 830
I must be blind but I don't find the LIBs, only .H and .CPP.
Could you put those LIBs somewhere,pls. (if it is not against some rules).
WarpEnterprises is offline   Reply With Quote
Old 21st October 2003, 19:53   #54  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
You need to compile the project in the BaseClasses project in Release and debug mode - this will produce the libraries.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline   Reply With Quote
Old 13th November 2003, 23:11   #55  |  Link
WarpEnterprises
C64
 
WarpEnterprises's Avatar
 
Join Date: Apr 2002
Location: Austria
Posts: 830
has someone else compiled a recent AviSynth version?
I made those libs but still no luck.
now it complains about missing baseclasses in ctlutil.h and many more things.

I can understand that sh0dan can't remember all steps if it is working but everbody else should have the same problem.
I made a clean setup of my system and the problems were quite the same.
WarpEnterprises is offline   Reply With Quote
Old 14th November 2003, 00:03   #56  |  Link
ARDA
Registered User
 
Join Date: Nov 2001
Posts: 291
@ WarpEnterprises
@ sh0dan

quote:
-------------------------------------------------------
has someone else compiled a recent AviSynth version?
-------------------------------------------------------
Yes I've compiled but with some difficulties too.

select in tools - Directories -Library files -
C:\PROGRAM FILES\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\RELEASE

when you compile in release mode...etc

I've got a usefull dll but I've still a lot of warnings;
mainly with avisynth_c.cpp
35 warning C4273:: inconsistent dll linkage.dllexport assumed.

2 MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\
combase.h(245) : warning C4717: '_imp__InterlockedIncrement'
: recursive on all control paths, function will cause runtime stack overflow

and

avisynth_c.cpp(301) : warning C4700:
local variable 'val' used without having been initialized.

I've searched in google for these warnings and there are a lot of information.
But I must confess I was too lazy to read and look for the solution. And probably
it is a basic matter I don't know

Once more I hope sh0dan could come in our help to understand why all these warnings.
Oh! THANKS AGAIN sh0dan ! for last released !

Thanks in advance ARDA
ARDA is offline   Reply With Quote
Old 17th November 2003, 00:14   #57  |  Link
WarpEnterprises
C64
 
WarpEnterprises's Avatar
 
Join Date: Apr 2002
Location: Austria
Posts: 830
With the latest CVS I cannot even get to linking.
- I compiled the strmbase.lib / strmbasd.lib
- I added the directories to VC
- compiling avi_source.cpp works
- compiling directshow_source.cpp won't work, the first errors come from the <streams.h> include:

Code:
c:\programme\microsoft sdk\samples\multimedia\directshow\baseclasses\wxutil.h(530) : error C2061: Syntaxfehler : Bezeichner 'DWORD_PTR'
c:\programme\microsoft sdk\samples\multimedia\directshow\baseclasses\ctlutil.h(437) : error C2504: 'IBasicVideo2' : Basisklasse undefiniert
as if there is some header files missing.

Am I right that at this point the LIB is not even used?
WarpEnterprises is offline   Reply With Quote
Old 17th November 2003, 10:46   #58  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
Quote:
Originally posted by ARDA
@ WarpEnterprises
@ sh0dan

quote:
-------------------------------------------------------
has someone else compiled a recent AviSynth version?
-------------------------------------------------------
Yes I've compiled but with some difficulties too.

select in tools - Directories -Library files -
C:\PROGRAM FILES\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\RELEASE

when you compile in release mode...etc

I've got a usefull dll but I've still a lot of warnings;
mainly with avisynth_c.cpp
35 warning C4273:: inconsistent dll linkage.dllexport assumed.

2 MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\
combase.h(245) : warning C4717: '_imp__InterlockedIncrement'
: recursive on all control paths, function will cause runtime stack overflow

and

avisynth_c.cpp(301) : warning C4700:
local variable 'val' used without having been initialized.

I've searched in google for these warnings and there are a lot of information.
But I must confess I was too lazy to read and look for the solution. And probably
it is a basic matter I don't know

Once more I hope sh0dan could come in our help to understand why all these warnings.
Oh! THANKS AGAIN sh0dan ! for last released !

Thanks in advance ARDA
Yes "avisynth_c" added a bunch of warnings. I think I'll have a look soon - and also to fix the crash-on-unload with SmartDecimate. None of the warnings mean anything.

The Directshow warning (_imp__InterlockedIncrement) is unavoidable, but doesn't mean anything. I guess it could be avoided using a #pragma.

@WarpE: I haven't experienced that problem (and you're right - only the header files are used at this stage). I sound quite incredible that it doesn't know what DWORD_PTR is.
__________________
Regards, sh0dan // VoxPod

Last edited by sh0dan; 17th November 2003 at 10:48.
sh0dan is offline   Reply With Quote
Old 18th November 2003, 23:37   #59  |  Link
WarpEnterprises
C64
 
WarpEnterprises's Avatar
 
Join Date: Apr 2002
Location: Austria
Posts: 830
I am so happy now..

It works!

Here is what I did.

- there are some .H files in the MS Visual Studio AND the MS SDK directory, with the ones in the SDK beeing the newer and intended.

- I removed the ...Visual Studio... dirs from the header directories (extras/options...) but some .H-files are NOT present in the SDK

==>
There have to be BOTH entries but the SDK paths and the path to ...SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\DEBUG must come BEFORE the ...Visual Studio paths (for both compiling strmbasd.lib AND AviSynth) to have higher search priority.
Then all you have to do is hoping that all newer .H and .LIB are present and no old one is accidently taken.

My paths are then:

header directories:
C:\Programme\Microsoft SDK\Include
c:\PROGRAMME\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES
C:\Programme\Microsoft Visual Studio\VC98\INCLUDE
C:\Programme\Microsoft Visual Studio\VC98\MFC\INCLUDE (needed. What is MFC in AviSynth?)
C:\Programme\Microsoft Visual Studio\VC98\ATL\INCLUDE (not needed for AviSynth)

library directories:
C:\Programme\Microsoft SDK\Lib
c:\PROGRAMME\MICROSOFT SDK\SAMPLES\MULTIMEDIA\DIRECTSHOW\BASECLASSES\DEBUG
C:\Programme\Microsoft Visual Studio\VC98\LIB
C:\Programme\Microsoft Visual Studio\VC98\MFC\LIB (not needed for AviSynth)

Hope this helps and is reproducable.
WarpEnterprises is offline   Reply With Quote
Old 30th January 2004, 18:43   #60  |  Link
scmccarthy
Registered User
 
Join Date: Oct 2002
Posts: 462
WarpEnterprises wrote two interesting questions that were never answered as far as I can tell on this thread.
Quote:
Which runtime library is the right one for a plugin / does it matter / when and how?
and
Quote:
What is MFC
I use cl.exe /MT to link with libcmt.lib and link.exe /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libc which prevents linking with msvcrt.lib and libc.lib. Otherwise avisynth wants to link with all three versions of the common runtime library. The alternative is to use /FORCE:MULTIPLE to force linking with mutiple versions of the lib functions.

If I compile strmbase.lib with /MT, my linker wants me to use the same threading scheme with avisynth.

Is this right, or do different modules within avisynth need to link with different versions of the runtime?

I would like to see this sticky continue to grow. New compilation issues that crop up on every new version of avisynth. Yet nothings been discussd on this thread since lase November. For instance, I had to comment out two lines in the code to get it to compile:
Quote:
//GetSampleEnumPins::GetSampleEnumPins(GetSample* _parent, int _pos);
Quote:
//HRESULT __stdcall GetSampleEnumPins::Next(ULONG cPins, IPin** ppPins, ULONG* pcFetched);
in directshow_source.h. I don't believe it matters whether you comment it out of the header or the code file, only that it does not get stated twice.

Finally, are the two files avisynth.opt and avisynth.ncb somehow nessesary to properly compile avisynth? Since I only use the commandline tools, cl.exe, ml.exe, rc.exe, and link.exe, I am not sure whether those files are being used in my compilation. This works fine for standalone filters, but I am still not sure if it works for avisynth itself.

Stephen
scmccarthy 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 00:52.


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