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