|
|||||||||
|
Thread Tools | Search this Thread |
June 21st, 2007, 12:00 AM | #1 |
Regular Crew
Join Date: Jun 2005
Posts: 66
|
CFHD frame-stepping w/DirectShow
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 that is DirectShow. I'm usually willing to put my money on the latter. (Aspect HD, latest.) |
June 21st, 2007, 07:51 AM | #2 |
CTO, CineForm Inc.
Join Date: Jul 2003
Location: Cardiff-by-the-Sea, California
Posts: 8,095
|
I don't think Step is fully implemented, we didn't think anyone would be directly using it. It could be added. How are you using this feature?
__________________
David Newman -- web: www.gopro.com blog: cineform.blogspot.com -- twitter: twitter.com/David_Newman |
June 21st, 2007, 08:24 AM | #3 |
Regular Crew
Join Date: Jun 2005
Posts: 66
|
For preview/positioning functionality for an application that expects to be able to locate and extract/work on a given frame or series of frames, so the frame-accuracy is necessary. Basically the equivalent of AE's or Premiere's frame-forward and frame-back.
I'm getting the impression that, regardless, Step() isn't the way to be doing this, so I was considering doing everything with IMediaSeeking, although the above-noted problem arises there, as well. |
| ||||||
|
|