From: Nicholas Hart <[EMAIL PROTECTED]>
Subject: Re: Seek problem in rendering plugin
It sounds like you have a reentrancy problem. Where are you calling Seek()
from? Inside OnPacket? That is likely confusing the player's timeline or
some other internal mechanism. I know of one customer that called Stop()
on the player from his OnPacket() and this wreaked all sort of havoc. As a
general rule of thumb you are not supposed to call back into the player
when you receive a callback.
I suggest that you use the player's IRMAScheduler and schedule a callback
for 0ms. The player will call back into your renderer when it is safe for
you to do a seek.
Try implementing the IRMACallback interface on your renderer and inside
Func() call Seek() on the player. Then when you want to do a seek, query
the IRMAPlayer for IRMAScheduler and call RelativeEnter(this, 0) to
schedule a callback. It should call back into you almost immediately.
Also, be sure to store the handle it returns and set it to NULL in your
Func(). If your renderer is stopped or destroyed before you receive your
callback (not likely... but it never hurts to write clean code) you'll need
this handle so you can call RemoveCallback() on the scheduler.
At 08:45 AM 4/28/00 -0700, you wrote:
>From: "Alexander M. Graham" <[EMAIL PROTECTED]>
>Subject: Seek problem in rendering plugin
>
>I have written a rendering plugin which works just fine. If I seek within
>the player using the realplayer buttons everything is fine. But if the
>plugin itself advises the player to seek (using m_pPlayer->Seek()) then it
>will receive the right packets - but won't get another OnTimeSync() call.
>Is this a bug or do I have to do something else to let the player seek
>correct?
>
>Alexander Graham
*******************************************************
The RealForum is an email discussion group focused on using RealNetworks
products. The RealForum is a place to post messages about the best methods
for creating content using RealNetworks technologies and the planning and
implementation of streaming-media web sites. Archives of RealForum can
be found at http://realforum.real.com
If you ever want to remove yourself from this mailing list,
you can send mail to <[EMAIL PROTECTED]> with the following
command in the body of your email message:
unsubscribe realforum
or from another account, besides the address you subscribed with:
unsubscribe realforum <[EMAIL PROTECTED]>