A method and
system are provided for remultiplexing program bearing data. The remultiplexing method and
system are applicable to MPEG-2 compliant transport streams carrying video programs. A descriptor based
system is used for scheduling the timely output of transport packets wherein each descriptor records a dispatch time as well as a
receipt time for each transport packet. The
receipt time is used for estimating
program clock reference adjustments, but final
program clock reference adjustment is performed in hardware in relation to the precise output timing of each transport packets. A descriptor and transport packet caching technique is used for decoupling the synchronous
receipt and transmission of transport packets from any
asynchronous processing performed thereon. The descriptors can also be used for managing scrambling and descrambling control words (
encryption and decryption keys). Remultiplexing functions may be distributed across a network. The remultiplexer can furthermore optimize the bandwidth of transport streams by replacing null transport packets with transport packet data to be inserted into the output transport
stream. Program data transmitted via
asynchronous communication links is re-timed and assistance is provided for outputting program data on such
asynchronous communication links to reduce a variation in end-to-end
delay incurred by the program data. Remultiplexing and
program specific information can be searnlessly dynamically varied without stopping, or introducing a discontinuity in, the flow of outputted transport packets. A technique is also provided for locking multiple internal reference
clock generators.