Re: directShow samples don't build and/or regsvr32
- From: "Howard" <lest@xxxxxxxxxxxxx>
- Date: 20 Mar 2007 01:17:47 -0700
On Jan 24, 2:31 am, Iain <I...@xxxxxxxxxxxxxxxxxx> wrote: V
On 23 Jan 2007 21:59:44 -0800, Howard wrote:
I know this has been covered in this forum, but none of the advice
given seems to fix my problem.
I have 3 different platforms--xp32, 2003 (32), and Vista. The Vista
install is a brand new machine w/ VS2005 installed. The other 2 are VS
2005 as well. The XP machine also has VS 2003.
Only the 2003 machine builds the samples successfully and registers the
dll (asyncflt.ax). The other two have multiple build problems--linker
errors mostly.
On the XP machine I can build from the command line (nmake), but
regsvr32 fails with LoadLibrary 'module not found' error. Depends
points to msjava.dll as the missing component, but I'm skeptical.
The Vista machine doesn't build at all. There are link errors against
strmiids.lib and winmm.lib. Also complains about unresolved externals
for some CRT and ntdll functions depending on which folder I build
from.
Something is dreadfully wrong and I'm making no progress. Surely the
samples should build without having to modify project and/or
makefiles???? I can get rid of one problem, but then another pops up.
Any help appreciated. I really just want to build and register
asyncflt.ax.
Are you building against the Platform SDK version of DirectShow or an
earlier DirectX version?
THe former tends to give the most problems.
THere's a set of solution files on March's sites which may bypass some of
the issues, however here are some general pointers.
You *will* need to have DirectX installed and either in the include/lib
paths or with an appropriate environment variable set (compiling with nmake
needs the latter - with the solution files you don't need the environment
variable).
If compiling with the solutions you *will* need the SDK include and the
samples/baseclasses include and libs in the paths (you need to compile the
base classes first).
If compiling with nmake you need to do all the things that the sdk
instructions AND the DS specific instructions say. Frankly, I found these
confusing and it took me some time to sort.
In all cases if you add paths to VS2005 include paths (and libs), make sure
they are BEFORE the others. There are older versions of the SDK with
VS2005 and they conflict if found earlier.
If you are using Platform SDK less than Vista you will need to make changes
to the base classes code to cater for VS2005 C++ being more compliant than
previous versions of C++ (Mike Wasson has details on a blog - but they're
obvious enough).
YOu should also take care about building and using hte unicode vs ANSI
versions of hte base classes. If you link in the wrong version (and they
have the same names), you will get some truly obscure error messages.
Hope this helps
Iain
--
Iain Downs (DirectShow MVP)
Commercial Software Therapistwww.idcl.co.uk- Hide quoted text -
- Show quoted text -
Thanks for the reply, I'm past the build problems. As you suggested,
they were mostly the paths being out of order. The regsrvr problem was
because the dll was missing and embedded manifest. Running the mte
utility on the built binary got me past that problem. Now I have
another, perhaps you can help...(I'm posting this to the forum as
well)
I've built the asyncflt sample which I was advised would be the
starting point for developing my own source filter that reads from a
socket instead of a file. Before I start building all the network
goo, I wanted to see if I could get asyncflt to work with WMV files
(It appears to only work for AVI files).
My first step was to see if I could get my filter to connect to WMV
Video Decode DMO, using graphedt as my test driver.
I modified the IPin implementation to support MEDIATYPE_Video, and
subtype WMVP, which are types the receive pin I'm trying to connect to
supports.
I'm getting error code 8004022A (VFW_E_TYPE_NOT_ACCEPTED) from the
receive pin's ReceiveConnection method.This seems odd, since the pin
advertises accepting MEDIATYPE_Video, and subtype WMVP..
I stepped into wmvdmod.dll to try and see where the error is coming
from, and it looks like the receive pin is also expecting a format
type of FORMAT_VideoInfo, and a VIDEOINFOHEADER, which I also send,
but don't initialize (since I have no idea what's expected there)
I haven't had time yet to dive any deeper, and was hoping someone
could tell me straight off what I'm doing wrong.
I really don't want to reverse wmvdmod.dll if I don't have to...
.
- Follow-Ups:
- Prev by Date: Re: Feed frames to graph in a simple way
- Next by Date: Re: When should use CAutoLock()?
- Previous by thread: Error 0x80040241 suddenly - files used to work, but sort of stopped recently..
- Next by thread: Re: directShow samples don't build and/or regsvr32
- Index(es):
Relevant Pages
|