CableCARD Network support
This branch/patchset adds a CableCARD network type to Tvheadend. When adding muxes, the "Channel" field is used for the channel number as assigned by your cable provider and present in the CableCARD. After a mux has been tuned at least once (including for the discovery of the service carried on that channel), two read-only options are present as well: Callsign, which is the channel name as provided by your cable provider; and Frequency, which is the actual frequency/mux that the channel is carried on.
Because cable providers do not often populate the transport stream metadata fields, information such as a service's channel number, name and provider name are filled at creation time by information present in the mux (channel number and name) or in your network settings (in the case of the provider name).
Presently, support for CableCARD networks is only exposed to the HDHomeRun driver. The new functionality in this patchset allows HDHomeRun Prime devices to be recognized as CableCARD tuners, to allow them to be set as the adapter/tuner for CableCARD networks.
Because of the way that these devices tune virtual channels as mapped by the CableCARD, each mux will only have a single service discovered on it. The reason for this is that the hardware device itself performs the PID filtering and program selection when it decrypts a channel's stream. To ensure that the PID filter is not set when using a CableCARD, all calls to PID filtering/resets have been skipped for that particular network type.
I still want to add the ability to use a device's
file to create an initial set of muxes much in the same way that pre-defined muxes are used for other network types.
Also, because there is no guide data carried on the network itself, perhaps the ability to use SiliconDust's limited 24 hour guide data provided with their device's could be implemented as a type of internal/OTA EPG grabber type.
I have created forks on GitHub for both the master development (4.3) branch, as well as a branch for the current stable/release (4.2) branch. Also, attached are the patchsets for either master or release/4.2 branches.