The RI Platform can be configured to emulate the presence of multiple tuners. Additionally, the RI Platform has support for 3 different types of tuners.
Configuring the tuner count
RI Platform
The platform gets all of its tuner information from the file $PLATFORMROOT/platform.cfg file at runtime. To adjust the number of tuners provided by the platform, modify the following value in platform.cfg:
RI.Platform.numTuners
Tuner Types
The RI Platform currently supports 3 different technologies for tuner emulation. The platform's media pipelines all retrieve MPEG-2 transport streams over UDP network connections. The following streaming technologies provide the ability to stream MPEG-2 over the network.
VLC
VLC is an open source media player and media streaming framework. We use VLC to read an MPEG-2 transport stream file and stream that file over UDP. The platform will launch a VLC process and then use the VLM interface to control that process via telnet. To instruct the platform to use VLC for tuner emulation, set the following parameter in the platform.cfg file:
RI.Headend.tunerType = VLC
If not set (commented out) the RI will use the default tuner type per tuner.c (GST for Linux and VLC for win32)
Additionally, the following platform.cfg values control the behavior of VLC tuner emulation in the RI:
Config File Property | Value Type | Description |
---|---|---|
RI.Headend.tuner.x.TunerRxPort | Integer | The UDP port on which VLC will stream transport stream data |
RI.Headend.tuner.x.StreamerPort | Integer | The telnet port on which the Platform will command and control VLC |
RI.Headend.tuner.x.StreamerIp | Dotted Numerical IP Address | The IP address to which VLC will stream transport stream data |
x is an integer starting with 0, indicating the tuner to which the properties apply. Ensure that you have tuner descriptions for the correct number of tuners as indicated by RI.Platform.numTuners.
You can configure the VLC "carrier map" to play out a specific MPEG transport stream file based on a tune request to a specific frequency and modulation mode. To configure the carrier map, add 1 or more of the following entries to platform.cfg:
RI.Headend.vlc.frequency.freq_<64|256>QAM = full_path_to_mpeg_file
where freq is the center carrier frequency (in Hz) designated to the given MPEG transport stream file. For example, to designate the 477MHz frequency (64QAM modulation mode) to the MPEG transport stream file c:/streams/stream1.mpg, add the following line to platform.cfg:
RI.Headend.vlc.frequency.477000000_64QAM = c:/streams/stream1.mpg
GST
GStreamer is a multimedia framework solution for processing audio and video content. The CableLabs Reference Implementation (RI) makes use of GStreamer infrastructure for handling MPEG transport data, see this for more details. To instruct the platform to use GST for tuner emulation, set the following parameter in the platform.cfg file:
RI.Headend.tunerType = GST
If not set (commented out) the RI will use the default tuner type per tuner.c (GST for Linux and VLC for win32)
Additionally, the following platform.cfg values control the behavior of GST tuner emulation in the RI:
Config File Property | Value Type | Description |
---|---|---|
RI.Headend.tuner.x.TunerRxPort | Integer | The UDP port on which GST will stream transport stream data |
RI.Headend.tuner.x.StreamerPort | Integer | The telnet port on which the Platform will command and control GST |
RI.Headend.tuner.x.StreamerIp | Dotted Numerical IP Address | The IP address to which GST will stream transport stream data |
x is an integer starting with 0, indicating the tuner to which the properties apply. Ensure that you have tuner descriptions for the correct number of tuners as indicated by RI.Platform.numTuners.
HDHomerun
HDHomerun is a hardware device that contains two QAM tuners and is capable of demodulating MPEG-2 transport streams and streaming them over UDP. To instruct the platform to use HDHomerun for tuner emulation, set the following parameter in the platform.cfg file:
RI.Headend.tunerType = HDHR
Additionally, the following platform.cfg values control the behavior of HDHomerun tuner emulation in the RI:
Config File Property | Value Type | Description |
---|---|---|
RI.Headend.tuner.x.tunerNum | Integer (0 or 1) | The HDHomerun tuner number (as indicated on the back of the device) |
RI.Headend.tuner.x.TunerRxPort | Integer | The UDP port on which HDHomerun will stream transport stream data |
RI.Headend.tuner.x.StreamerPort | Integer (hex format starting with 0x) | The HDHomerun device ID (indicated on the bottom of the device) |
x is an integer starting with 0, indicating the tuner to which the properties apply. Ensure that you have tuner descriptions for the correct number of tuners as indicated by RI.Platform.numTuners.