I am trying to force the MPEG2TransportStreamMultiplexor class to send a PAT, 
then an PMT and then a keyframe then the diff frames, exactly in that order. In 
Contrast to the default once per 100 and once per 500frames. I think this is 
what I will need to simplify my HLS segmenter flter that follows.

I have made a copy of this class and am modifying it for use. But I keep 
getting the frames out of order and I don't understand why.

Inside MPEG2TransportStreamMultiplexor::doGetNextFrame when I detect the first 
keyframe. I call deliverPATPacket(); then deliverPMTPacket(); then the frames 
deliverDataToClient.  I have had to put aftergetting(this) after each call to 
keep it progressing but when I look at the output I end up with the PAT packet, 
then a whole bunch of video packets, then the PMT packet, the PMT gets delayed.

It seems like I need to put all 3 in the buffer then call afterGetting(this) 
but it just stops on the PMT packet.

The muxer is slightly different from the other filters because of the one to 
many frame flow and the buffer recycling and I am a bit lost.  (I need to draw 
a sequence diagram :( )

Any ideas what I may be  missing here?  How can the frames seem to get out of 
order? Is it per programID because of the sourceRec and that makes them 
independent?
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to