I'm working on a bug with a custom audio mixer filter (I have the source) where the input audio streams seem to get out of sync after any seeking with some input sources (I don't have the source for these) when more than one input is connected.
After seeking the timestamps etc look correct but the actual data in the streams is out of sync with the timestamps.
The audio mixer has a custom IMediaSeeking implementation that passes on IMediaSeeking::SetPositions calls to each input pin. This would seem to be the correct approach. If there's more than one source filter the SetPosition calls need to be passed on to each source. It's then up to the source filter to only implement seeking on only one of its pins (as documented in MSDN).
Would it be better to inherit a pass through implementation from CPosPassThru so that it supports IMediaPosition too? Some filters seem to use IMediaPosition calls rather than IMediaSeeking.
Is there anything specific a muxer filter has to do to pass on seeking calls to multiple input pins. Any good example source code out there? The Monogram blog on writing a muxer filter doesn't seem to cover seeking.