Skip to content

Interfaces exposed by the filter

All the interfaces below are obtained with QueryInterface on the IBaseFilter of the source filter, using the IID given in the table. They are declared in the include files listed in Filter configuration through IDatasteadRtspSourceConfig.

Interface IID Purpose
IDatasteadRTSPSourceConfig {D7557B82-3FA4-4F4F-B7CF-96108202E4AF} Main configuration interface: GetBool, GetDouble, GetInt, GetStr, SetBool, SetDouble, SetInt, SetStr, Action. See Filter configuration.
IDatasteadRTSPSourceConfig2 {932C369A-3335-45BB-B5F4-A6CF77F9B40C} Derives from IDatasteadRTSPSourceConfig and adds GetIntPtr, needed by the ..._intptr parameters.
IDatasteadRTSPSourceConfig3 {6FCA28BE-7F96-467A-BB08-0611FC8162B7} Derives from IDatasteadRTSPSourceConfig2 and adds GetInt64 and SetInt64, needed by the ..._int64 parameters.
IDatasteadRTSPSourceConfig4 {2F87DB2E-981B-4AB8-BB21-A419FF820986} Decoding statistics: GetStats. See Decoding statistics.
IDatasteadONVIFPTZ {B7773ACC-7990-4965-A0E8-E22BAF0ABA81} PTZ, presets, focus and IR-cut control. See ONVIF PTZ, Focus and IR-Cut filter.
IDatasteadONVIFDiscovery {B703BB29-7A74-4FB0-A248-DADAF58A5CFB} Discovery of the ONVIF cameras on the network. See Camera information and discovery.
IDatasteadRTSPSourceCallbackConfig {58D66E77-B19C-4F9A-8B47-DFE1CA87B642} Registers the asynchronous connection callback: SetAsyncOpenURLCallback. See Callbacks.
IDatasteadRTSPSampleCallback {799485B3-0DA1-4F74-90E2-5684C9CD949B} Raw, RGB and PCM sample callbacks. See Callbacks.
IDatasteadRTSPSampleCallback2 {845F8BAF-A774-4C46-A17A-F037613B9FC2} Adds SetVideoRGBOverlayCallback, which lets the application draw over the decoded frames.
IDatasteadRTSPSampleCallback3 {0359EBD6-8FF7-4138-A899-7BE318624432} Adds SetFileWriteCallback, the file writer callback. See Callbacks.
IDatasteadRTSP_NTPTimeStampCallback {913C0C5E-8555-4BAE-A1EB-E9567DD4BAE9} RTCP / NTP timestamp callback. See Callbacks.
IDatasteadONVIFProbingCompleteCallback {AC54B329-6D12-4055-BBA1-FCC464BB8FF9} Notifies the application when the background ONVIF probing is complete: SetONVIFProbingCallback.
IDatasteadRTSPSourceStreamInterface {2A0BB863-975D-4C45-B9CD-E4C12E76A892} Advanced: PushData (BYTE *pData, int DataLen) feeds the filter with source data coming from the application instead of from a URL.
IDatasteadRendererCursor {47C5633C-C7C6-45C3-AACB-1A6B0107A2A2} Exposed by the Datastead Video Renderer (CLSID {C7CC1A23-8B8A-4BFD-A96C-B5E735E055BA}): SetCursorHandle sets the mouse cursor used over the video window. See the FAQ.
IFileSourceFilter standard DirectShow Loads the URL without the Datastead interfaces. See Filter configuration through IFileSourceFilter.

Source state

GetInt (RTSP_Source_GetState_int, &Value) returns the current state of the source:

enum TSourceState {
    state_disconnected, state_connecting_async, state_connecting_sync, state_reconnecting,
    state_connected, state_previewing, state_recording_paused, state_recording_active
};

Decoding statistics

IDatasteadRTSPSourceConfig4 returns the decoding counters of the running graph, which is useful to diagnose dropped frames, a growing queue or an oversized buffer:

HRESULT GetStats (int     *Stats_FramesDecoded,
                  int     *Stats_FramesDelivered,
                  int     *Stats_FramesDropped,
                  int     *Stats_FramesInQueue,
                  int64_t *Stats_QueueDuration,
                  int64_t *Stats_BufferDuration);
Value Meaning
Stats_FramesDecoded number of frames decoded since the graph started
Stats_FramesDelivered number of frames delivered to the output pin
Stats_FramesDropped number of frames dropped. A number that keeps growing usually means the renderer or the recorder cannot keep up
Stats_FramesInQueue number of frames currently waiting in the queue
Stats_QueueDuration duration currently held in the queue
Stats_BufferDuration duration currently held in the buffer (see RTSP_Source_BufferDuration_int)