Sign in to follow this  
Minase

DirectShow overlay problem with some cards

Recommended Posts

Minase    122
I'm quite new to DirectShow programming, and haven't gone too deep yet. This particular problem, though, i've been struggling with for a few days now on and off, so i thought it was time to ask for some help. Basically, i have an application that uses the colour-key based overlay function of a lot of graphics cards for a certain feature. It displays graphics and text with the background set to the value of the colour key (usually 0x100010), so that the video shows through. (I'd like to do it in a more elegant manner with proper blending and such, but unfortunately i don't have access to the way a lot of the foreground stuff is rendered to the screen.) This is tested and working fine on ATI and nVidia cards. However, yesterday i got the chance to try my application on some Intel graphics cards, and it doesn't work - it doesn't seem to be using a colour-key at all. The cards *claim* in the specs to support this same kind of overlay feature... so what i'm guessing, is that when DirectShow completes my filter graph on these particular cards, it chooses a different video mixing method. All machines are XP with DirectX9, so i wrote the program to use the VideoMixingRenderer, as recommended on MSDN. However, as far as i can see the VMR doesn't let me choose the actual method by which the video is drawn on the screen. So, for testing on these Intel cards, i wrote a version with the old IVideoWindow interface, and manually inserted the OverlayMixer into the filter graph. After doing this, it seems no different at all. Something else to note about the differences between ATI/Intel: on the ATI card, when resizing the video window the aspect is kept and borders are added around the image. Using the *exact* same code on the Intel card, the image is stretched (using both VMR and the old interface). Neither of these is a problem, it's just a difference i thought may help in diagnosing it. Being new to DirectShow, i have a feeling maybe i'm missing out a step when trying to force overlay mode... basically, all i'm doing is this: - Create the filter graph - Create an OverlayMixer filter - AddFilter the OverlayMixer to the filter graph - Call RenderFile on the filter graph. - Do the various crap with IVideoWindow to hook it up to my app. Does anyone have any idea how i can force the Intel cards to use colour-key based overlay? :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this