BTW,

On 01.12.2010 7:18, Ross Finlayson wrote:
>while(true)
>{
>       fWatchVariable = 0;
>       dummyTask(NULL); // 100ms
>       env->taskScheduler().doEventLoop(&fWatchVariable);
>       if (fWatchVariable = 1)
This statement looks very strange: is it still assignment instead of comparison in your code? What is it supposed to be?
>       {
>             printf("\nIn While fWatchVariable=%d,",fWatchVariable);
>             if (!mP4LiveSms->mpeg4LiveSource != NULL)
> mP4LiveSms->mpeg4LiveSource->deliverFrame();
>       }
>}

[...]

1) How should I call deliverFrame() from the Main thread(DS Graph in a Filter) in order to signal my FramedSource that a new frame is arrived.

You don't! "deliverFrame()" - being a LIVE555 library operation - should be called only from the LIVE555 event loop thread - not from some other thread.

However, what you *can* do in the non-LIVE555 thread (i.e., your 'DirectShow' thread) is set "fWatchVariable" to 1. If you do this, then the LIVE555 event loop (your code above) will notice this, and do the right thing, calling "deliverFrame()".


3) Question about the parameters : fPresentationTime, fDurationInMicroseconds what exactly they mean. fPresentationTime Is the different between sample(frame) start and Stop - in my received filter -> pSample->GetTime(&tStart, &tStop);?

In most situations, you can just set "fPresentationTime" by calling "gettimeofday()". You should do this inside your "deliverFrame()" function (which is called from the LIVE555 event loop thread, of course).


  fDurationInMicroseconds - How do I set this parameter?

In principle, it should be set to the duration between successive frames (that you deliver using "deliverFrame()").

However, because you are streaming from a live source, rather than from a file, it's probably OK to leave this variable unset (in which case, it'll get a default value of 0).

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to