A file can contain one or more programs. Programs contain data that is not related to data from another program. Each program can contain one or more elementary streams. Streams contain data that is somewhat related to data from another stream. For example, the audio and video streams are from the same movie and are meant to be played together.
Currently, only MPEG2 Transport files can contain multiple programs. These files are usually coming from HDTV capture cards and each program corresponds to a TV channel. A typical such file would look like this:
To avoid confusions between TV channels and audio channels, we used the term "Program" to refer to this logical grouping of elementary streams.
So, as a recap:
LEADTOOLS will play or convert only one program at a time. You can select which program to play or convert by setting the program index. The program index is 0-based, so the allowed values are between 0 and ProgramCount - 1, where ProgramCount is the total number of programs.
You get the number of programs using these properties:
You set and get the current program using these properties:
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms