DoRenderSample never called in DirectShow video renderer

0

I built a DirectShow Video renderer to capture Frames with a VIDEOINFOHEADER2 as video format (which is not possible with the built-in grabber). The class is derived from CBaseVideoRenderer and implements the basic method required. CheckMediaType and SetMediaType are called, as well as OnStartStreaming. However DoRenderSample is never called, because the stream immediately ends. Interestingly, the audio is rendered by the DirectSound renderer in my graph, ie there are data.

I should add that my graph has a "live source", namely BDA DVB-S. If I add an EVR instead of my renderer, everything works, ie the sound and the video are played.

What is the problem here? Are there special requirements for renderers to receive data from live sources?

Update 1: I should add that if I run my graph in GraphEdit, it also plays the Sound, but issues an error message (only with my renderer, not with EVR): "The graph could not Change state. At least one of the Pins involved in the Operation is already connected. (Return code: 0x80040204)" I think this is part of the problem, but I unfortunately do not understand what it means or what I should change in my code.

Update 2: As requested, the ROT entry for my graph (click to enlarge):

Graph from the ROT

c++
directshow
bda
asked on Stack Overflow Jun 25, 2014 by Christoph • edited Jul 7, 2014 by Roman R.

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0