The clock about Presenter of EVR

Hi, all:

I wrote a presenter to overwrite the composition of evr. In vista beta 2, I get a clock in InitServicePointers function. I use the clock to syncronize video frame, but the video and audio is not syncronized. But when I try again with Vista RC1, the clock always return 0. I am very confused. So

1. Should I use IMFPresentationClock or IMFClock for syncronization

2. Why the clock is freezed in vista RC1

Thanks




Answer this question

The clock about Presenter of EVR

  • Raulsassaa

    Thanks for Becky.

    My problem is caused by we do not send any video samples at start time. That is because the first scene is a menu. When users click a item then we will start sending sample to evr. But without first video frame, it looks like the clock will not be fired. so I always get a 0 time. If we send a video frame to evr, then the clock will not be frozen.

    Thanks again



  • ramneek

    The IMFClock that you get in InitServicePointers should be the same presentation clock that the EVR sink is using, which in turn is the same one that the application sees (assuming that you are not using the Protected Media Path). Whether you use IMFClock or IMFPresentationClock to get the times shouldn't make a difference, since they'll return the same time.

    A couple ideas to help get your started in figuring out why your clock time seems to be frozen:

    1) Verify that the content you are trying to play works correctly if you use the EVR with its default presenter (i.e. not yours)

    2) Verify that the Media Session (if you are using the Media Session) has returned MESessionStarted after you called IMFMediaSession::Start. You won't see the clock move until the start operation has completed. Verify also that your presenter is getting IMFClockStateSink::OnClockStarted.

    Hopefully that will help you get started...



  • The clock about Presenter of EVR