Archived

This topic is now archived and is closed to further replies.

Looking for a DirectShow guru

This topic is 5625 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

My classmates and I are working on a game project for one of our classes and we are having a problem with direct show. Well, not them just me (hehe). My friends wrote this wrapper class for DirectShow and it works very well on his and everyone elses computers but not on mine. We all have the exact same laptops and are all running the same directx sdk 8.1 ver. The error I am getting is on the pGraphBuilder->Render(pPin); IGraphBuilder::Render(IPin); my error is an assert failed error on line 3652 of d:\xpclient\multimedia\published\dxmdev\dshowdev\base\ampfilter.cpp |Actual <= GetSize(); this is followed by anoter assert error on line 6002 of d:\xpclient\multimedia\dshow\filters\core\filgraph\filgraph\filgraph.cpp g_cFGObjects == 0; this is strange enough as is however, my d: drive is a smart media bay on my laptop that doesn''t have anythign in it? I was just wondering if anyone has experienced this error before and maybe debugged it. Sorry to make this post so long but I wanted to give you guys the details. NextGenGamer oh my specs are: 1ghz pIII 256mb ram geforce2go 16mb vram win XP

Share this post


Link to post
Share on other sites
quote:
Original post by nextgengamer
this is strange enough as is however, my d: drive is a smart media bay on my laptop that doesn''t have anythign in it?


that path doesn''t have anything to do with your computer. it''s where the failing code is located on dshow developers'' machine.

it''s hard to say what your problem is given only the information you provided, but some general ideas would be:

- what does that method return for the error code?
- are you rendering pins that are not connected?
- are those pins actually output pins?

if you are sure that your code is right, compare it with the PlayWnd and PlayWndASF samples.

it''s also possible that your computer has some codec installed that doesn''t play well with the debug runtime and messes stuff up. does that call actually succeed or not?

---
Come to #directxdev IRC channel on AfterNET

Share this post


Link to post
Share on other sites
That's the location of the DirectShow baseclasses on the computer that compiled them (your buddy that wrote the wrapper?)

Need a stack trace to get a bette idea of what really happened.
Also, are you guy running the debug build of DirectX? It will give you lots more information about what's going wrong.
Go look at the code as well, the file & line are right there. You just need to go to where you have the DirectX SDK installed, instead of D:\xpclient\...

DirectShow is god-awfully buggy as well. It's such a complicated & diametrically opposed task to write a robust & efficient codec filter, that no one fully implements them nor writes them correctly.

Futher development of the filters that come with Windows has ceased, because the more complicated filters were not coded at Microsoft, but by contractors with expertise with the given media type.

quote:

We all have the exact same laptops...


Ha! I don't think they make two laptops exactly the same Dell & Compaq constantly make running changes to thier production lines. The vast majority of the time, it's compatible hardware... They still might not all have the same drivers installed, or particular to this case, you or your buddies may have additional DirectShow filters installed.


[edited by - Magmai Kai Holmlor on July 25, 2002 2:25:21 AM]

Share this post


Link to post
Share on other sites
I have tried to figure out what the return value is but it crashes in the function. I''m leaning more towards the codec idea because it the mp3''s play fine on my friends'' laptops. But I thought with mp3''s there really isn''t that many codecs for them.

With the pins stuff wouldn''t that be a problem that all of us would have with the code?

NextGenGamer

Share this post


Link to post
Share on other sites
quote:
Original post by nextgengamer
I'm leaning more towards the codec idea because it the mp3's play fine on my friends' laptops. But I thought with mp3's there really isn't that many codecs for them.


I know of about six filters that decode mp3's...

Go find GrphEdit, and drop an mp3 into it. It will show you the resultant graph that DirectShow makes when Render is called on a mp3 source pin.

[edited by - Magmai Kai Holmlor on July 25, 2002 2:27:56 AM]

Share this post


Link to post
Share on other sites
quote:
Original post by Magmai Kai Holmlor
That''s the location of the DirectShow baseclasses on the computer that compiled them (your buddy that wrote the wrapper?)


methinks those aren''t included in the dshow sample base classes, at least i can''t find them there.

the call stack might help.

does windows (or any other) media player play those files right?

what if you use RenderFile?

also try rendering that file with the graph builder utility. it will even let you render individual pins for individual filters. play with it.

---
Come to #directxdev IRC channel on AfterNET

Share this post


Link to post
Share on other sites
i highly doubt they are exactly the same unless you guys never install software on them, heh.

most likly the code does not handle errors as it should and you are missing something they have installed. the code probably makes assumptions and this causes problems for you. you need to supply the error codes and what is actually occering. you have the source code, you have the sdk, you have a compiler. compile a debug version and see where it crashes. step through the code if you have to. use the ROT viewer of filter graph and register a ROT object so you can see how the graph looks.

do your friends run the debug version and you the release version? possibly the code is faulty with asserts which dont get compiled in the release build.

dshow is not too buggy, but it is damn complex.

dont base workingness of dshow install on whether other media players work. if media play 6.4 (ie mplayer2) dont work nor does filter graph then something is amiss with your install.

Share this post


Link to post
Share on other sites