K. Tessman
June 21st, 2007, 12:00 AM
Is there any CF-specific reason why frame-stepping using the DirectShow interface seems inconsistent? I don't have a great deal of experience with frame-level vagaries, but (for instance) IVideoFrameStep::Step() will sometimes return error-free and properly increment the graph position, but the rendered frame will not change. Calling it again will properly display the next frame after (i.e., the frame two frames after the initial frame).
And whether it's related or not, since IVFS::Step() doesn't support backward-stepping and it's necessary to implement this using some other method, a sequence of IMediaSeeking::GetCurrentPosition(), adjusting it, and then repositioning with IMS::SetPositions(AM_SEEKING_AbsolutePositioning) has sort of the same effect: that is, getting the graph to apparently the right position, but not always rendering the new frame.
Anyway, like I said, this particular black magic isn't my forte, but I was just wondering if there was something intrinsic to CFHD, or if this is merely the hairshirt (http://en.wikipedia.org/wiki/Cilice) that is DirectShow. I'm usually willing to put my money on the latter.
(Aspect HD, latest.)
And whether it's related or not, since IVFS::Step() doesn't support backward-stepping and it's necessary to implement this using some other method, a sequence of IMediaSeeking::GetCurrentPosition(), adjusting it, and then repositioning with IMS::SetPositions(AM_SEEKING_AbsolutePositioning) has sort of the same effect: that is, getting the graph to apparently the right position, but not always rendering the new frame.
Anyway, like I said, this particular black magic isn't my forte, but I was just wondering if there was something intrinsic to CFHD, or if this is merely the hairshirt (http://en.wikipedia.org/wiki/Cilice) that is DirectShow. I'm usually willing to put my money on the latter.
(Aspect HD, latest.)