- From: Steve Morris via GitHub <sysbot+gh@w3.org>
- Date: Wed, 09 Nov 2016 09:29:57 +0000
- To: public-tvcontrol@w3.org
@JPEvain I don't think that there is a good mapping between the objects in the API at the moment and DVB-SI (apart from DVB Service -> TVChannel and DVB Event -> TVProgram). I think we need to clarify the definitions used in the API - I'm not sure that the descriptions of those objects are precise enough at the moment for us to have a shared understanding of the API. Based on the interface posted by @chrisn above that was discussed at TPAC, here are the descriptions that I've been working with in my head: - **TVSource**: a logical source of TV/Radio channels. This may represent a physical tuner or a "virtual" tuner for IP multicast. The TVSource exposes the list of TVChannel objects available through that source. For devices with more than one type of tuner (e.g. cable and terrestrial), each tuner type may be represented by a different TVSource. A TVSource is **not** a physical tuner - it is a way of discovering channels, getting the corresponding TVChannel objects and obtaining the resources to present them. Because there is not a one-to-one mapping between a TVSource and a tuner, more than one channel from a given TVSource may be presented at the same time if the device has enough resources. - **TVChannel**: represents a single TV or radio channel and provides metadata about it. Each TVChannel object represents a single channel that is available through one TVSource. If the same channel (e.g. VH1) is available through two different sources (e.g. over cable and terrestrial) then each TVSource will return a different TVChannel object. - **TVMediaStream**: represents the stream data for all components within a channel. This can be passed to an HTML5 media element to play the channel. Obtaining a TVMediaStream object means that all of the resources needed to receive and present that channel have been allocated. I'm not sure how closely this aligns with your view, @JPEvain. - **TVTuner**: I'm really not sure about this. The obvious solution is for this to represent a physical tuner, where a TVSource object may have one or more TVTuner instances associated with it (one per physical tuner). However, this has a number of problems. First, it doesn't accurately represent modern tuner hardware that supports full-band capture, where a single tuner can act as the source for multiple streams and you're no longer limited to one transport stream per physical tuner. Second, it also fails to represent cases such as channels delivered via IP. Third, it doesn't represent all of the other resources that are needed to decode and present a stream. While we could change the semantics of this object to represent "the end to end decoder chain", I'm not sure that's appropriate. That would be a way of exposing what we discussed at TPAC (and which @paulhiggs mentioned elsewhere) about exposing the capabilities of a device in terms of the number and type of services that it can decode simultaneously. Thoughts and comments on this are welcome. -- GitHub Notification of comment by stevem-tw Please view or discuss this issue at https://github.com/w3c/tvcontrol-api/issues/4#issuecomment-259369602 using your GitHub account
Received on Wednesday, 9 November 2016 09:30:03 UTC