Fast forwarding


  • Using ImediaPosition::set_rate()

    the max rate supported seems to be only 2.0. I believe this is due to a limitation in the audio renderer. A video without audio, set_rate doesn't seem to work at all. I was thinking of disconnecting the audio renderer whilst the graph was running (dynamic reconnection) to remove the 2.0 limitation but I am not even sure this would work, as the clock is connected to the audio renderer.

    How can we set a rate faster than 2.0 ?

    The dvd navigator seems to do it somehow. You can get 16x fast forward speeds using


    Montag, 13. Februar 2012 14:06

Alle Antworten

  • There are 2 ways to fast forward: increase the rate or cheat with the timestamps and delivered frames in the splitter. I believe the DVD navigator uses the second trick, which however is fornat- and filter-specific.

    Since the limitation is indeed in the audio renderer, disconnecting it works. Hooking its SetRate() method to fake an S_OK return works, too, but it's a hack.


    Samstag, 18. Februar 2012 17:50
  • Thanks for the reply, messing with the time stamps is not an option. Is there any documention or blogs or anything on the hooking set rate and disconnecting the audio renderer ? There must be a better solution somehow. If i disconnect the audio renderer, what happens to the clock ?
    • Bearbeitet dukeeeey Sonntag, 19. Februar 2012 23:59
    Sonntag, 19. Februar 2012 23:41
  • I haven't investigated what happens to the clock, but it seems to work, so I assume either the renderer or the graph falls back to the system clock.

    I have written several posts about API hooking (just search Google Groups) and I have some info in FAQ.


    Donnerstag, 1. März 2012 22:29