It appears that Splitter::SetTimePosition does not completely flush the video frame pipeline. I observe that GetNextData after SetTimePosition obtains at least one more video frame from the time sequence prior to the SetTimePosition change. The next call to GetNextData gets a video frame correct for the SetTimePosition change.
Is this indeed how SetTimePosition and GetNextData are expected to behave?
Is there any way to completely flush out of sequence data after calling SetTimePosition?
This is not an academic problem. My application implements synchronization of multiple concurrent streams. If a reposition is requested, but an out of sequence frame is obtained, the code will sleep until the master synchronization clock catches up to the out of sequence frame. This is undesirable behavior. But there appears to be no way to tell which video frames originated before SetTimePosition and which originated after.
Thanks for your time.