I've also posted this on the Microsoft directshow forum but it might be an Intel specific issue so I'll post here too...
I have a simple graph to save a short video clip from a larger one...
async file source -> intel mp4 demuxer -> intel h264 decoder -> intel h264 encoder -> intel mp4 muxer -> file writer
I can build the graph ok and set the reference clock to null. Checked all hr return values as S_OK.
I call IMediaSeeking::SetPositions(&startpos, AM_SEEKING_AbsolutePositioning, &endpos, AM_SEEKING_AbsolutePositioning) and E_INVALIDARG is returned. The reference time values I am passing in are ok (set to 10000000 and 50000000 for testing). I can seek ok when just setting the start time, it's only when the end time is set that I get the E_INVALIDARG.
I have also tried using the IMediaSeeking interface from the video output pin of the demuxer. I have also tried removing the decoder and encoder from the graph so that the demuxer is connected to the muxer.
I'm at a loss as to why SetPositions doesn't work.