avstream render filter issue

Hello

I have been writing an avsteam driver with one capture filter and one render filter base avshws example using common buffer.

It work fine that capture filter is connected with VMR filter.

when capture filter is connected with the render filter and play, the process dispatch of render filter is called only one, when stop, the process dispatch of render filter is called again.

I write the process dispatch like follow:

Common Buffer DMA in AVStream

  1. Call KsPinGetLeadingEdgeStreamPointer:
  2. KSSTREAM_POINTER *Leading = KsPinGetLeadingEdgeStreamPointer (
    Pin,
    State
    );
  3. Copy frame data to Leading->StreamHeader->Data and set the necessary flags and time stamp information in the appropriate KSSTREAM_HEADER.
  4. Call KsStreamPointerUnlock with Eject set to TRUE. (This value of Eject causes the stream pointer to advance.)
  5. Return STATUS_PENDING.

please tell me the reason and how to do it

I need your help ,thanks

pccq_2002@126.com wrote:

I have been writing an avsteam driver with one capture filter and one render filter base avshws example using common buffer.

It work fine that capture filter is connected with VMR filter.

when capture filter is connected with the render filter and play, the process dispatch of render filter is called only one, when stop, the process dispatch of render filter is called again.

As an experiment, have you tried connecting inserting a user-mode filter
into the graph to see if that changes the behavior? Maybe you could put
an Infinite Tee in there.

I write the process dispatch like follow:

Common Buffer DMA in AVStream

  1. Call KsPinGetLeadingEdgeStreamPointer:
  2. KSSTREAM_POINTER *Leading = KsPinGetLeadingEdgeStreamPointer ( Pin, State );
  3. Copy frame data to Leading->StreamHeader->Data and set the necessary flags and time stamp information in the appropriate KSSTREAM_HEADER.
  4. Call KsStreamPointerUnlock with Eject set to TRUE. (This value of Eject causes the stream pointer to advance.)
  5. Return STATUS_PENDING.

OK, this is the capture filter’s Process routine. What about the render
filter? What does that code look like? Are you returning
STATUS_PENDING from that as well? What if you return STATUS_SUCCESS?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.