Hi, I have another problem with streaming of MPEG transport stream. When chaining an MPEG2TransportStreamFromESSource (but actually any FramedSource object producing mpeg ts packets) with a SimpleRTPSink, the SimpleRTPSink will wait to have a full packet before sending data (with my settings 6 mpeg ts packets). This is a problem for "low latency" video applications where we want a video frame to be sent ASAP: if a frame generates a number of ts packets which is not a multiple of 6, the last remaining ts packets will remain stuck in SimpleRTPSink buffer until SimpleRTPSink gets enough data to send another packet, so at minimum until the next frame (but it can in fact be much worse if frames are, say, 8 bytes H264 black frames).
I understand that this usage is a bit specific, so I have tried to solve this by deriving from live555 classes. I derived from SimpleRTPSink an RTP sink class which implements a frameCanAppearAfterPacketStart method, that, if its source object is of MPEG2TransportStreamMultiplexor, return true only if that object has data ready, namely if the next call to doGetNextFrame() would not call awaitNewBuffer(), that is if: fInputBufferBytesUsed < fInputBufferSize. The reason why I am contacting this list is that I did not find a way to do this without modifying the MPEG2TransportStreamMultiplexor class. Do you see any? Thanks in advance. Regards. -- Gilles. https://click-hack.org _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel