[Live-devel] Non Blocking doGetNextFrame

Drew Ostheimer d_osthei at ece.concordia.ca
Thu Mar 30 13:25:37 PST 2006


Hello All,

In a current school project I am using FFMPEG and LIVE to stream an 
MPEG-4 stream. As each component is connected with Buffers, the 
doGetNextFrame retrieves the next frame to send from there. If no frame 
exists NULL is returned.

If within the doGetNextFrame function there is a loop such that it 
waits for a non null value (Polling the buffer), everything streams 
okay with high CPU loads. What I would like to do is make this a non 
Blocking piece of code as is suggested by the comments in FramedSource. 
If i check if the received data is null and only call deliverFrame() if 
it is not null, I do not get a stream being sent.

I beleive i have to reschedule the call to doGetNextFrame however can't 
seem to find the one line of code similar to that at the end of 
deliverFrame, being

nextTask() = envir().taskScheduler().scheduleDelayedTask(0, 
(TaskFunc*)afterGetting,this);

It would be a great help if anyone could suggest the correct method of 
doing this. Thanks.
___________________________________________
Drew Ostheimer
Computer Engineering Undergraduate Student,
Concordia University,
Montreal, Canada,
___________________________________________







More information about the live-devel mailing list