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) |