Question

I am using GMFBridge for smooth transition between videos. My tests have two monitor, I am using EVR to play a video stretched on all monitors and two VMR's to display different videos on each monitor.

The transition between VMR to VMR and EVR to EVR run very smooth. The problem is when I have an EVR playing and need to change to the two VMR's. If I don't stop the EVR, it continue displaying on the screen, even after the call to GmfBridgeController.BridgeGraphs(null, null).

When switching from VMR to EVR, I don't have to stop the renderers, but I got some 1 second flickering at the start.

How could I solve this?

Was it helpful?

Solution

At some point video renderers allocate resources on hardware, esp. Direct3D devices, and this initialization is not instant, and causes some delay or flickering. When you bridge, your strategy should be to keep video renderer and its hosting graph, and switch stuff behind it. This gets you smooth and flicker-less operation.

Switching VMR to EVR (reason?) is unlikely to be smooth. Or, just keep both running at all times and just put one in front of the other as needed.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top