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/

_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to