Prev: why my DispatchCreate( ) doesn't responds the IRP_MJ_CREATE ( I mean createfile( ) )
Next: Parsing devices from setup classes
From: Marc L. on 13 Apr 2010 13:53 Dear all I am working on a video conferencing application. Right now I implementing desktop sharing on windows platform. Doing so I will need to capture some part of the desktop (monitor, window, region). I was trying first with a java desktop capture, but on vista and win7 I had bad capturing times on big screens. Then I thought I need to move to C++ showing me that the capturing time improvement is not that big - compared to java. Finally a member of the Remote Desktop Services (Terminal Services) Team Blog pointed me to the direction of mirror drivers. I found a sample inside the window driver toolkit: http://msdn.microsoft.com/en-us/library/ff568319%28v=VS.85%29.aspx Are there any other samples? What are the major steps I need to take to take care of, what are the pitfalls I need to avoid? Thanks for in advance for sharing your experience! Regards, Marc
From: Marc L. on 14 Apr 2010 09:29 Well on my test systems on windows xp on a 1600x1080 screen, I have capture times of about 50ms and faster. On my Win7 machine between 150 to 250ms on a 1920x1080. the difference cannot be explained only with bigger screens. As a mechanism of desktop sharing I think it is good to slice the window that is needed to capture into many parts and capture these parts very quickly. Then compare these parts against the screen capture before and only send the changes. But one part of the story why a remote desktop app is not that much responding as a real monitor is that capturing only happens twice to four a second. If it is lets say 10 times a second, Changes will be broadcast faster lowering the delay. Regards, Marc
From: Marc L. on 14 Apr 2010 09:31 Thanks for the links I will have a look into it. Regards, Marc
From: Tim Roberts on 16 Apr 2010 02:09 Marc L. <rombooth(a)community.nospam> wrote: > >Well on my test systems on windows xp on a 1600x1080 screen, I have capture >times of about 50ms and faster. That's hard for me to believe. Where were you copying the image to? >On my Win7 machine between 150 to 250ms on a 1920x1080. the difference cannot >be explained only with bigger screens. No, it could be a different graphics card, or perhaps DWM using up more bandwidth. The numbers you are seeing there seem much more realistic. >As a mechanism of desktop sharing I think it is good to slice the window >that is needed to capture into many parts and capture these parts very >quickly. Then compare these parts against the screen capture before and only >send the changes. Have you looked at the source code for VNC to see how they do it? -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: Marc L. on 16 Apr 2010 11:16
Hi Tim, Right now I am analiying the UVNC mirror driver. Thanks for this link. After doing this I will look into how UltraVNC is using this driver. Thanks! Marc |