I think I'm running into a bug in TVHeadend. Here is everything I have at this time.
Tvheadend detects my HDHomeRun PRIME tuners and can tune channels from the device, but it does not create any services. This happens with both the native CableCARD Network path and with the same channel added manually as an IPTV Automatic Network mux using the HDHomeRun streaming URL.
The scan result shows OK, but the Services tab remains empty. The Tvheadend log shows:
==============================================
tbl-base: pat: <mux name> in <network name>: TSID zero value detected, ignoring
==============================================
The same HDHomeRun PRIME works correctly with Plex and Jellyfin. ffprobe can also read the stream successfully and detects a valid program, video PID, and audio PIDs.
This appears to be a Tvheadend service discovery issue when the incoming MPEG-TS stream has a transport stream ID of 0.
==============================================
OS: Ubuntu 24.04.4 LTS
Tvheadend version: HTS Tvheadend 4.3-2744gc0cbd1455
Previous Tvheadend version tested: HTS Tvheadend 4.3-2738g15515d784
Tvheadend install source: Cloudsmith Tvheadend Ubuntu repository
Server LAN IP: 192.168.1.11
Tvheadend web UI: 192.168.1.11:9981
==============================================
Device: HDHomeRun PRIME
Model: HDHR3-CC
IP address: 192.168.1.40
DeviceID: 13170471
Tuner count: 3
CableCARD device: yes
==============================================
{
"FriendlyName": "HDHomeRun PRIME",
"ModelNumber": "HDHR3-CC",
"DeviceID": "13170471",
"BaseURL": "http://192.168.1.40",
"LineupURL": "http://192.168.1.40/lineup.json",
"TunerCount": 3,
"ConditionalAccess": 1
}
==============================================
{
"GuideNumber": "213",
"GuideName": "KCPQ HD 11",
"VideoCodec": "MPEG2",
"AudioCodec": "AC3",
"HD": 1,
"Favorite": 1,
"URL": "http://192.168.1.40:5004/auto/v213"
}
==============================================
Expected behavior
When a CableCARD mux or IPTV mux is scanned successfully, Tvheadend should create a service under:
==============================================
Configuration → DVB Inputs → Services
==============================================
For example, scanning channel 213 should create a service using the program/PID information present in the stream.
Actual behavior
Tvheadend tunes the channel and completes the scan, but no service is created.
The mux scan result becomes:
Scan result: OK
Scan status: IDLE / PEND
Services: 0
Reproduction steps
Method 1: Native HDHomeRun CableCARD Network
Start from a clean Tvheadend configuration.
Open the Tvheadend setup wizard.
Tvheadend detects the three HDHomeRun CableCARD tuners:
HDHomeRun CableCARD Tuner #0
HDHomeRun CableCARD Tuner #1
HDHomeRun CableCARD Tuner #2
Assign each tuner to a CableCARD Network.
Complete the wizard.
Tvheadend scanning reports:
Found muxes: 0
Found services: 0
Manually add a mux to the CableCARD Network:
Network: CableCARD Network
Channel: 213
Character set: AUTO
Force scan the mux.
Result:
==============================================
Scan result: OK
Services created: 0
==============================================
Relevant Log Entries:
==============================================
Jul 28 06:22:58 pi-hole tvheadendmpegts: 213 in CableCARD Network - tuning on HDHomeRun CableCARD Tuner #0 (192.168.1.40)
Jul 28 06:22:58 pi-hole tvheadendtvhdhomerun: tuning to 213
Jul 28 06:22:58 pi-hole tvheadendepggrab: 213 in CableCARD Network - registering mux for OTA EPG
Jul 28 06:22:58 pi-hole tvheadendsubscription: 0001: "scan" subscribing to mux "213", weight: 5, adapter: "HDHomeRun CableCARD Tuner #0 (192.168.1.40)", network: "CableCARD Network", service: "Raw PID Subscription"
Jul 28 06:22:58 pi-hole tvheadendtbl-base: pat: 213 in CableCARD Network: TSID zero value detected, ignoring
Jul 28 06:23:13 pi-hole tvheadendmpegts: 213 in CableCARD Network scan complete
Jul 28 06:23:13 pi-hole tvheadendsubscription: 0001: "scan" unsubscribing
==============================================
Method 2: IPTV Automatic Network using HDHomeRun stream URL
Create an IPTV Automatic Network.
Add a mux with:
URL: http://192.168.1.40:5004/auto/v213
Mux name: KCPQ FOX
Channel number: 213
Force scan the mux.
Relevant Log Entries:
==============================================
Jul 28 06:25:16 pi-hole tvheadendmpegts: KCPQ FOX in IPTV Automatic Network - tuning on IPTV #1
Jul 28 06:25:16 pi-hole tvheadendepggrab: KCPQ FOX in IPTV Automatic Network - registering mux for OTA EPG
Jul 28 06:25:16 pi-hole tvheadendsubscription: 0002: "scan" subscribing to mux "KCPQ FOX", weight: 5, adapter: "IPTV #1", network: "IPTV Automatic Network", service: "Raw PID Subscription"
Jul 28 06:25:16 pi-hole tvheadendtbl-base: pat: KCPQ FOX in IPTV Automatic Network: TSID zero value detected, ignoring
Jul 28 06:25:21 pi-hole tvheadendmpegts: KCPQ FOX in IPTV Automatic Network scan complete
Jul 28 06:25:21 pi-hole tvheadendsubscription: 0002: "scan" unsubscribing
==============================================
ffprobe confirms the stream is readable
Command:
==============================================
ffprobe -show_programs http://192.168.1.40:5004/auto/v213
==============================================
Result:
==============================================
Input #0, mpegts, from 'http://192.168.1.40:5004/auto/v213':
Duration: N/A, start: 60212.698689, bitrate: N/A
Program 4
Stream #0:0Video: mpeg2video (Main), yuv420p(tv, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 59.94 fps
Stream #0:1eng: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:2spa: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s (visual impaired)
==============================================
Program Details:
==============================================
[PROGRAM]
program_id=4
program_num=4
nb_streams=3
pmt_pid=83
pcr_pid=6763
[STREAM]
index=0
codec_name=mpeg2video
codec_type=video
id=0x1a6b
width=1280
height=720
[/STREAM]
[STREAM]
index=1
codec_name=ac3
codec_type=audio
id=0x1a6c
TAG:language=eng
[/STREAM]
[STREAM]
index=2
codec_name=ac3
codec_type=audio
id=0x1a6d
TAG:language=spa
[/STREAM]
[/PROGRAM]
==============================================
This suggests the stream contains usable PAT/PMT/program information, and other clients can identify the video and audio streams.
Additional observations
Plex can use the HDHomeRun PRIME successfully.
Jellyfin can use the HDHomeRun PRIME successfully.
ffprobe can read the same HDHomeRun stream successfully.
Tvheadend detects all three HDHomeRun CableCARD tuners.
Tvheadend can tune channel 213.
Tvheadend scan result reports OK.
Tvheadend does not create services.
The failure is identical whether using:
the native HDHomeRun CableCARD tuner path, or
a direct IPTV mux using http://192.168.1.40:5004/auto/v213.
Because both CableCARD and IPTV paths produce the same TSID zero value detected, ignoring message, this appears to be related to Tvheadend's MPEG-TS table handling rather than HDHomeRun tuner discovery or network assignment.