What is the exact relevance of a Provider.?
We have a package org.dvb.spi in MHP 1.1.3.
Who is going to implement this package ?
Should this be included under middleware implementation ? If yes can it be done as a part of java tv module.
Thanks in Advance.
Providers are basically implemented by... well, both the receiver and the interactive application to some degree. this is kind of a plugin mechanism, but it differst from the other "Plugin" API present in mhp 113. the other plugins (org.dvb.application.plugins) are used to present applications which are normally not supported by the receiver, but they dont affect how system works. Providers however (which are installed by Xlets), impact the system behavior - for example the selection provider will change how JavaTV service selection works within the context of one or more Xlets.
(thinking of an example: let's say we have some Xlets from satellite network, which use DvbLocators and service selection API, are multiplexed into terrestrial TS without being changed; even though same services may be present in the terrestrial network, transport stream IDs will be different, so selection with hardcoded locators will fail - unless a Provider is installed which changes transport IDs in the locators during the service selection process performed by the receiver).
Therefore use of Providers is limited to what Providers are supported by the receiver's middleware. There are 2 providers defined in mhp 113 and i think one more in mhp 1.2. they're all optional, so dont expect any to be supported by an STB on a horizontal market's network.
A provider is explicitly installed by an Xlet using the API. After that, receiver's middleware will use the installed provider in the manner specific to that provider (as decribed in the provider's interface documentation). That means Xlet can only install providers that are known and supported by the receiver.
What exactly is the use of Providers?
Why are they included as part of the MHP applications?
After installing the Provider,how does the application or middleware make use of it?
It would be very helpful if someone can provide some clarity on these.