[Live-devel] Separating Transport Stream IDs from PES IDs

Ross Finlayson finlayson at live555.com
Fri Jun 20 14:17:51 PDT 2014


This patch won't work, because it defines a member variable "fStreamId" in the abstract base class ("MPEG2TransportStreamMultiplexor"), but that member variable is never assigned - except in the implementation of *one particular* subclass: "MPEG2TransportStreamFromESSource".  Note that other subclasses of "MPEG2TransportStreamMultiplexor" are possible, and in fact the supplied code includes another subclass - "MPEG2TransportStreamFromPESSource" - which you haven't changed at all.

I also have a problem with your use of the term "PES ID".  Note that "MPEG2TransportStreamMultiplexor" works by taking as input 'PES_packets' (as defined in ISO+IEC+13818-1).  Each 'PES_packet' (again, according to the definition) includes (as its 4th byte; i.e., byte[3]) a "stream_id".  That's what it's called in the specification: A "stream_id", not a "PES ID", and so that's what our code should continue to call it.

What we do, however, is choose to use this "stream_id" value to be the Transport Stream's 'Program ID' (i.e., PID) - called "fCurrentPID" in our code.  It sounds like *that's* what you want to make it possible to change - i.e., you want to be able to make it possible to change the 'Program ID', not the 'stream_id'.

So, you should change your proposed modifications (and consequent patch files) accordingly (and also be sure that it works for all possible subclasses of "MPEG2TransportStreamMultiplexor" - not just "MPEG2TransportStreamFromESSource".


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20140620/af7abed6/attachment.html>


More information about the live-devel mailing list