Patent ID: 8218560

Claim:
A demultiplexer for demultiplexing a multiplexed stream, obtained on time division multiplexing a plurality of elementary streams, comprising a ring buffer for sequentially storing data of said multiplexed stream; data leading end storage means for storing a data leading end pointer specifying a location in said ring buffer where the oldest data of said multiplexed stream has been stored; write pointer storage means for storing a data write pointer specifying a location where the latest data of said multiplexed stream is to be stored; buffer control means for writing said multiplexed stream, when said multiplexed stream is supplied thereto, beginning from a location in said ring buffer specified by said data write pointer, and for updating said data write pointer depending on the write size; readout pointer storage means for storing a readout pointer, specifying a location in said ring buffer which becomes a starting point of readout processing of said elementary streams, from every said elementary stream which is to be read out; and readout control means for taking out said readout pointer concerning said elementary stream, requested to be read out, retrieving and reading out targeted said elementary stream from a location of said ring buffer specified by said readout pointer as a start point, updating said readout pointer depending on the readout size and for updating said data leading end pointer, wherein said readout control means substitutes one of a plurality of said readout pointers, specifying a location where the oldest data is stored, into said data leading end pointer, wherein said readout control means compares a readout pointer of said elementary stream as read out to a readout pointer of another elementary stream, forming said multiplexed stream, and wherein said readout control means in case the readout pointer of said elementary stream as read out points to a location of storage of data with the oldest readout pointer substitutes the readout pointer of said elementary stream as read out into said data leading end pointer.