Patent ID: 7882510

Claim:
A computer-readable storage medium having computer-executable instructions, that when executed on a computing system, perform a method comprising: implementing an interface for communication with a demultiplexer object, the interface taking multiplexed multimedia data as input and outputting demultiplexed elementary media streams, the interface comprising: an Initialize method configuring the demultiplexer object; a GetPendingPresentationDescriptor method retrieving a next pending presentation; a SetPresentationDescriptor method dynamically setting an active presentation descriptor of the demultiplexer object to the next pending presentation when an active presentation exists only if all output associated with the active presentation has been serviced, wherein the active presentation descriptor describes media types of an elementary stream, and facilitates selection of streams to be extracted by the demultiplexer object; wherein if the SetPresentationDescriptor method is called attempting to set the active presentation descriptor to the next pending presentation when the active presentation exists and not all output associated with the active presentation has been serviced, the SetPresentationDescriptor method indicates that the active presentation descriptor cannot be set to the next pending presentation because not all output associated with the active presentation has been serviced, wherein the SetPresentationDescriptor method includes a pointer to a presentation descriptor object; a ProcessInput method providing a new input muxed stream to the demultiplexer object; a ProcessOutput method retrieving at least one elementary stream from the active presentation determined based on the dynamically set active presentation descriptor; and a Flush method flushing currently queued input and output samples.