All data from a particular stream has been rendered.



(HRESULT) Status of the stream on completion. If no errors occurred during playback, the value is S_OK.


(IUnknown*) Zero, or a pointer to the renderer's IBaseFilter interface.

Default Action

By default, the filter graph manager does not forward this event to the application. However, after all the streams in the graph report EC_COMPLETE, the filter graph manager posts a separate EC_COMPLETE event to the application.

If the default action is disabled for this event, the application receives all of the EC_COMPLETE events from the renderers.


A renderer filter sends this event when it receives an end-of-stream notice. (End-of-stream is signaled through the IPin::EndOfStream method.) The filter sends exactly one EC_COMPLETE event for each stream. The filter must process any pending samples before it sends the event. Stopping a renderer resets any end-of-stream state that was cached.

If the renderer is paused, it does not send EC_COMPLETE until the IMediaFilter::Run method is called. Furthermore, it continues to send EC_COMPLETE events for each transition from pause to run, until the filter is either stopped or flushed.

Filters set the lParam2 parameter to an IBaseFilter pointer. If the default action is enabled, the filter graph manager sets this parameter to zero.


Requirement Value

See also

Event Notification Codes

Event Notification in DirectShow

Alternative Video Renderers