Hey everyone, I am doing overlays onto a live TV broadcast and
have written a custom VMR Allocator-presenter to do the job. I render my overlay ( bitmaps and/or text ) onto a DIrectDraw surface and blit it over the video within the 'PresentImage' routine.
Recently I tested my program with
full screen playback on the TV output from our units ( they only have
basic onboard video cards) and the CPU usage jumped to 100% with choppy
playback. With full screen on the primary monitor I get CPU usage of 20% with
great playback even with overlays. I have also tried playing the capture feed in
a window, and as soon as any part of the window hits the second monitor the CPU
again jumps to 100%.
I ran the DirectX Diagnostics tools to check the capabilities of the
second monitor, and found that ¡®AGP Texture Acceleration¡¯ is unsupported. This
is the only difference I can find between the two monitors. Could this be the
cause of the problem
I have also tried
setting the default monitor to the secondary monitor through the
IVMRMonitorConfig interface and performance didn¡¯t
improve.
Finally I get good performance on the second monitor when I remove my all my code used to perform overlays and call the standard VMR presentation routine, which may suggest that the video card does not like when I use the DirectDraw surfaces to perform overlays on the secondary monitor.
Has anybody here experience anything like this
before I was thinking that perhaps the DirectDraw surfaces may not be handled
by hardware for TV output, although I hope this is not the case.
Any suggestions would be greatly appreciated.I hope this makes sense, if anyone would like more detail juat let me know.
(and hello to Michel R, you will recognise this question im sure!)