Proposed Answer Fast forwarding

  • lunedì 13 febbraio 2012 14:06
     
     

    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

    IDvdControl2::PlayForwards()

Tutte le risposte

  • sabato 18 febbraio 2012 17:50
     
     Risposta suggerita

    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.


    <http://www.riseoftheants.com/mmx/faq.htm>

  • domenica 19 febbraio 2012 23:41
     
     
    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 ?
    • Modificato dukeeeey domenica 19 febbraio 2012 23:59
    •  
  • giovedì 1 marzo 2012 22:29
     
     

    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.


    <http://www.riseoftheants.com/mmx/faq.htm>