DirectShow within Direct3D render loop

I am developing a 2D/3D interface using Direct3D. I am trying to also include a video window within the interface to display live TV from a tuner card. I am using VMR9. The problem I have is that the video is flickering, seemingly caused by the drawing loop. After I call D3D Present(), I have to tell the VMR9 window to repaint itself using RepaintVideo(), otherwise the video does not show at all.

I am very new to DirectShow and any help would be greatly appreciated.

Thanks.



Answer this question

DirectShow within Direct3D render loop

  • Tigerwood2006

    Yeah, that's really helpful. I've spent hours trying to fight my way through a rediculously inaccurate search engine only to come up with SetScissorRect() function. I don't know if this is what I'm supposed to use, but it doesn't work. It says scissor test must be enabled, but nowhere in the msdn does it say how to do this. It also does not tell me WHERE to call this function.

    Could you please just take 5 seconds to answer my question, since you obviously know how to do it, rather than trying to make me waste my time searching msdn whch is neither helpful nor fast.

    Thank You,

    Dustin


  • Ranal

    By using clipping regions.

  • WinFormsUser13232

    Great, how do I specify a clipping region on a 2D interface. For example, I don't want anything to draw in RECT(100,50,420,290).
  • esamsalah

    Excuse my ignorance, but how do you exclude an area(RECT) from drawing Please be as specific as possible.

    Thanks greatly for your help.


  • Kendal Walton

    So your 2D/3D drawing is also drawing in the same area as the video Exclude this area from drawing and VMR9 will update as needed.

  • Aleniko29139

    Setup ClipPlanes outside of your loop as part of the init of the Device.

  • kcm kumar

    Look it up, msdn.microsoft.com



  • Motsamai

    As stated in the title I am using Direct3D. Could you please let me know what the clipping function for Direct3D is and where to call it. Do I call it on initialization of Direct3D, between BeginScene() and EndScene(), or after EndScene() before Present().

    Thank You,

    Dustin


  • Unmesh Gundecha

    Dustin, without knowing the methods you are using to generate your drawing I cannot sugguest which method to use.  Searching was the only thing that could be sugguested.  Drawings can be generated with GDI, GDI+, Direct3D or DirectDraw and each has specific clipping functions.

  • DirectShow within Direct3D render loop