First, rather than 'polling' (with a 50 ms delay) to check whether new data can be read, it is better to use the new 'event trigger' mechanism. See "liveMedia/DeviceSource.cpp" for a model on how to do this.

Ø       For MPEG2 we are using this class MPEG1or2VideoStreamDiscreteFramer.
So when I see this code I observe that a lot of manipulation is done to the presentation time. So is it possible that the time stamp values are getting jumbled here?

"MPEG1or2VideoStreamDiscreteFramer" assumes that its input frames are in 'decoding order' - i.e., the order in which frames should be fed into a decoder (at the receiving end). This is the same order in which frames should be sent across the network (via RTP).

The 'preentation time' for each frame, however, will be different - it corresponds to the time that each frame will be displayed on the (receiver's) screen. Therefore, the "MPEG1or2VideoStreamDiscreteFramer" code adjusts the presentation times as appropriate (if the stream contains "B" frames).

To summarize: If your input data frames are being delivered in decoding order, then everything should be OK; any 'jittery' behavior that you see must be due to something else (unrelated to our code). However, if your input data frames are *not* being delivered (to "MPEG1or2VideoStreamDiscreteFramer") in decoding order, then you will need to fix this.
--

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to