MF_TOPOLOGY_TEE_NODE, DisconnectOutput on one output, the other output stops too RRS feed

  • Question

  • Given a tee node with two output sinks, the first uses no CPU (render) and the second uses a lot of CPU (sample grabber).  To selectively enable the second (sample grabber) I thought I could


    but that also stops the render output.  If I follow the DisconnectOutput(1) with a

    m_IteeNodePtr->ConnectOutput(1, m_IsampleGrabberTopologyNodePtr, 0);

    then the render sink works (renders in the view window as always), but then of course so does the sample grabber (sucks up lots of CPU -- 99.99% of the time I don't need that output).  The sample grabber media type doesn't matter (NV12, YUY2 is about the same CPU use) so I presume most of  the CPU is for copying from video memory to system memory (about 3.1 MB per NV12 frame for full HD, so 90+ MB/sec).

    Q: How do I selectively enable and disable an output on a tee node, so that disconnecting one output does not affect the other output?

    Friday, October 31, 2014 7:53 AM