Architecture Overview

The following diagram illustrates the architecture of iTV applications:

iTV architecture

As the diagram shows, you need to build two components to interact with the iTV runtime. The managed component will interact with all iTV runtime classes and events except the data interfaces. For the data interfaces, iTV applications use a native dynamic-link library (DLL). The platform does not prescribe communications between the two components, and they can use any of the .NET interoperability technologies including platform invoke and COM interop.

Code in both of these components runs in the ehexthost.exe process.

The following table summarizes the major functional areas of the iTV Runtime shown in the architecture diagram:

Functional Area Implemented By
Rendering OverlaySurface class

VideoSurface class

FrameFormat class

RenderingMode class

ZoomMode enumeration

Session PlaybackSession class

KeyCommandEventArgs class

CommandCode enumeration

KeyboardCommandEventState enumeration

KeyCommandState enumeration

KeyHandlerKey enumeration

InputModifiers enumeration

KeyCommandEventHandler delegate

Stream Manipulation StreamInfo class

StreamSelector class

StreamType enumeration

Tuning Tuning class

ChannelState enumeration

TuningFormatException exception

TuningInProgressException exception

TuningSameChannelException exception

Miscellaneous TVVMbase class
Data (C++) GetITVDataSource function

IiTvDataAttribute interface

IiTvDataReceiver interface

IiTvDataSource interface

IiTvDataStreamControl interface

ITV_PBDA_TAG_ATTRIBUTE structure

ITV_TRANSPORT_PROPERTIES structure

ITVDATA_FILTERING_METHOD_PID constant

ITVDATA_FILTERING_METHOD_TAG_TABLE_UUID constant

See Also