Patent ID: 8731053

Claim:
A method for multiplexing high definition video elementary streams that do not have timing information coded to create a transport stream (TS), the method comprising the steps of: constructing ‘n’ number of access units (AU) in a list, each AU capable of looking ahead to obtain information on timing for the next AU, including reading the elementary stream from the start while converting elementary streams to packetized elementary streams (PES) until it forms a single AU and noting its start and end points, pushing the just formed single AU into the list, checking primary picture type coded in the AU pushed into the list, calculating the timing information including a presentation time stamp (PTS), a decode time stamp (DTS), and deriving variable frame rate (tc) for the elementary streams, calculating dts(n)=dts(n−1)+tc, and pts(n)=dts(n) if the primary picture type coded is a B frame, and decoding B frames and presenting at the same time without including any offset between pts and dts of the B frames, calculating dts(n)=dts(n−1)+tc, and pts(n)=dts(n)+pts_offset*tc if the primary picture coded type is an I or P frame, and checking next access units for the number of B frames (pts_offset) that precede before the next I or P frames occurs, and constructing a next AU and pushing the next AU into the list for repeating the steps of calculating timing information; initiating a pointer to indicate start of an AU from the list; iteratively checking start of an AU from the list; constructing a header by calculating timing information from the topmost AU of the list; writing the header in the TS; and filling the remaining bytes of TS with data from an elementary stream.