views:

28

answers:

1

Let me specify little background.

I currently use an open source program to run my TV Tuner (DScaler). The final version for the software has some support for Direct3D output, the problem with this is that it lags. I have been going through the code and reading through DirectX documentation trying to find a place to optimize the code so that rendering is as smooth of DirectX as it is on DirectDraw. Because the software has built in profiling for the critical display routines (lock buffer, unlock, flip, etc.) I know that when using Direct3D the point where it runs into trouble is in the overlay flipping part. I've come to the conclusion that Presenting to the D3Device is just too slow to keep up with the Tv tuner's capture and as a result I'm losing frames and not displaying them at the 29fps.

Since I don't know DirectX very well, my question is: Is Direct3d just not an optimal option for displaying video capture or is the problem simply that the code probably isn't the best it could be for it? I ask because I'm still interested in trying to find a way to make it work so I can display my capture on some streams (ie: Xfire).

Thanks.

A: 

I wouldn't personally use DirectDraw because it has been deprecated, which means it is scheduled for removal and is no longer being maintained.

Here's the Wikipedia article on it: http://en.wikipedia.org/wiki/DirectDraw

Tim Čas
I see. Well as it stands, the use of DirectDraw surfaces appears to be faster than Direct3D, in this particular kind of setup. Unless they remove it from the libraries, I don't see it being a problem since the development on this piece of software has stopped. Thanks for input.
Vix
Well, that's pretty much the definition of deprecation - it means it is going to be removed from the libraries =/
Tim Čas