- September 1, 2008
- 21,577
- 8,224
- Home Country
- New Zealand
Ahhh. This is unexpected, unintended and not really desirable from TV library's (my) perspective.Filter is starting to receive stream
TV library doesn't intend for the filter to try to receive the stream until the graph is started. From TV library's perspective, IMediaControl (graph control) is used for stream start, stop and pause; IFileSourceFilter is only used to provide the URL (tuning parameters). Unless the graph is running when Load() is called, the library doesn't expect the filter to do anything except record/cache the parameters and prepare to connect/stream.
One reason for this expectation is that tuning can be cancelled. It is possible that Load() could be called without IMediaControl.Run() (due to tune cancellation from the user), and it is expected that the filter should have no problem with that.
It is also expected that IMediaControl.Run() + Stop() + Run() might be called without Load(). The filter would just use the existing URL, and control the connection/streaming as required.
Okay. Such an error would be completely unexpected, because TV library didn't intend for the filter to try to open any connection or receive data. Only parse the URL and apply the required configuration.If error happens, filter returns error (if it can't handle it). The most common case is no data received within specified timeout or can't open connection.
-32 (0xFFFFFFE0) is defined as E_CONNECTION_LOST_CANNOT_REOPEN, but while opening connection it means that no data are received within specified timeout.
Seems like the filter implementation is currently incompatible with TV library.