> Mjpeg streaming and encoding  is done in separate thread and the output 
> AVPackets are stored in a que
> 
> FramedSource::doGetNextFrame check if there is any packet in the que and 
> deliver it, otherwise schedule a delayed call on 
> FramedSource::doGetNextFrameStatic to do frame checking again.

This is inefficient.  A much better solution is to use 'event triggers', and 
whenever a new encoded frame has been completed, have the encoding thread call 
"triggerEvent()" (the only LIVE555 function that can be called from a 
non-LIVE555 thread) to tell the LIVE555 thread that a new frame is available 
for delivery.

For an illustration of how to do this, see the model code in 
"liveMedia/DeviceSource.cpp".


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

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

Reply via email to