1

I'm a neebie to dshow and I'm facing a problem using/understanding infinite tee filter in graphedit. I wanted to try experimenting the tee-filter in a simple graph.

  • So, I have a simple graph with Integrated-Webcam-source and a render-sync. I can see that live webcam feed is rendered in a windows smoothly.
  • Next I add a infinite tee filter in between the source and sync. I'm greeted with pin-compatibility/filter-agreement error message.

enter image description here

Question: Can anyone suggest what could be the reasons the compatibility issue and is there a way to debug this within graph-edit?

Note:

  • I have tried this for experimenting/understanding tee-filter. Ideally I would like to use it for relaying h.264 decode( hardware accelerated) into multiple renders.

Thanks,

Arjun

Arjun
  • 379
  • 2
  • 12
  • same question in msdn forum: https://social.msdn.microsoft.com/Forums/Windowsdesktop/en-US/0d359937-6990-4da8-a720-6c8399bb982d/feed-hardware-accelerated-h264-decode-output-into-multiple-evr-rendererswindows-within-dshow?forum=windowsdirectshowdevelopment – Arjun May 13 '19 at 03:31

1 Answers1

1

Specific to Infinite Pin Tee Filter functionality is that it does not copy data between input and output and just forwards the high level IMediaSample object, and shares it between multiple outputs as needed. This is intentional in order to reduce processing overhead.

Video renderers are on the other hand special filters as well as unlike most other they insist on using their own memory allocator.

This makes these two unable to connect one to another directly and you need an additional filter between them, typically "Color Space Converter" serves the purpose.

Roman R.
  • 68,205
  • 6
  • 94
  • 158
  • Hi Roman, thanks for your input. We are using Microsoft DTV-DVD decoder (h264 with dxva 2.0) that does not seem to output in the format that color converter expects. So, should I write my own filter that mediates between tee filter and EVR render? Or is there any other option? - thanks in advance! – Arjun May 12 '19 at 17:23
  • I don't have 100% confidence here, but I would assume that Infinite Tee is not compatible with DXVA2. I don't have an answer whether it is at all possible to create a filter that shares DXVA2 enabled frames between 2+ instances of video renderer filter. I would say that in order to duplicate such video feed you would have to use two decoder instances and tee the data before decoding (even though it has an obvious performance impact). – Roman R. May 12 '19 at 19:08