I read in the FAQ section that it is possible to modify the test*Streamer application to stream from an Mpeg encoder. Doing that change will switch the library from a pulling to pushing streaming model.

No. The library always works by having each downstream object call its upstream object, asking for data. However, when you're streaming from a live source (such as an encoder), the key point to note is that the arrival of data from the live source is best handled as an event in the event loop (rather than a synchronous read). In any case, the live source is encapsulated in a subclass (that you would write) of "FramedSource", and new data is delivered to the downstream object in your implementation of the virtual function "doGetNextFrame()".


I'm also concerned by the fact that a hardware encoder might have a different system clock (hardware based) than the library which seems to be CPU based?

This should not be a problem. If - in your "FramedSource" subclass - you *don't* set the "fDurationInMicroseconds" field. By not setting this field, it remains at its default value of 0, and the (RTP) sink object will ask for new data immediately after it sends a packet.
--

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