Question about event from MFT RRS feed

  • Question

  • Hi.


    I have few question about event sent form MFT. 
    1)If MFT send event from ProcessOutput() who can receive those event? and how?

    2)Is it posible to send event to aplication layer from MFT? if it posible which interface or method should I use?

    3)Can CPlayer::Invoke()of PlaybackFX sample receive event sent form MFT_Grayscale?




    Thursday, September 7, 2006 7:34 AM


  • When an MFT generates an event through ProcessOutput, this event is passed, in-band with the samples, to the next node downstream (see IMFTransform::ProcessEvent).  This next node will either propagate the event itself, or if it cannot do that, MF will propagate the event. 

    This process continues downstream until the event arrives at the output node (Stream Sink).  The Stream Sink receives this event through IMFStreamSink::PlaceMarker (marker type = MFSTREAMSINK_MARKER_EVENT; marker value will be a VT_UNKNOWN pointer to the IMFMediaEvent), and this is where the event ends up.

    So at no point is this event forwarded to the application. 

    If you're trying to get the MFT to send an event that the application will see, you could try implementing a custom Media Sink that is somewhere downstream of your MFT.  This Media Sink could just ignore the samples it receives, and watch for PlaceMarker calls for your custom MFT events.  Since the Media Sink "belongs" to the application, it can tell the application.


    Thursday, September 7, 2006 3:47 PM