Microsoft DirectX 8.1 (C++) |
In the context of MPEG-2, a component is an elementary stream within a program stream, for example video, audio 1, audio 2, audio 3, data, Program Service Information (PSI) and so on. In the Microsoft Unified Tuning Model, this information is encapsulated in the Component and ComponentType objects. Each Component is associated with a ComponentType that contains information such as which language is being spoken on an audio elementary stream.
The raw component information may be present in the PSI tables, in which case the loader can retrieve it from the TIF and insert it into the tune request that it creates for a schedule entry. After the tuning device has tuned to a program, the stream starts to be processed and the BDA MPEG-2 Transport Information filter starts to receive PSI information that contains information about the current stream’s components. This information is passed back to the Network Provider filter, which fills in the tune request's Component list and compares that information to the preferred component types for the current user. The Network Provider can then instruct the device to tune to the appropriate elementary streams if any are available that match the user's preferences. After this initial tune request has been submitted, the application may obtain the current active tune request, and access the newly populated Components list. This tune request can be re-submitted with an updated Components list as user preferences dictate. An example of this would be changing the audio track to a different language than the default preference. The preferred components are only used if the tune request's Components list is empty or invalid. This is necessary because the tune request can be resubmitted multiple times with different components activated or disabled.