Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#10712 closed Bug Report - General (fixed)

HD Homerun Prime in Digital Cable mode fails Live TV and recording

Reported by: Gern Blanston <mythtv@…> Owned by: danielk
Priority: minor Milestone: 0.25.1
Component: MythTV - Recording Version: 0.25-fixes
Severity: medium Keywords: hdhomerun tuning
Cc: Ticket locked: no

Description

HD Homerun Prime in "Digital Cable" mode (not Cable Card mode -- don't have one so I have not been able to try), fails to tune channel when trying Live TV and also fails scheduled recordings.

Channels are bit funky -- in the format "X-Y" (e.g. 68-513).

A DVB card in the same machine works fine with the funky channels (DVB card uses a separate Video Source from the HDHR).

HD Homerun worked in 0.24 from atrpms.

My install of mythtv is from the 0.25-286 rpms from atrpms

Part of backend log file during failed LiveTV:

2012-05-10 11:59:21.186066 I [5008/5022] TVRecEvent tv_rec.cpp:1014 (HandleStateChange) - TVRec(6): Changing from None to WatchingLiveTV
2012-05-10 11:59:21.186117 I [5008/5022] TVRecEvent tv_rec.cpp:4155 (ClearFlags) - TVRec(6): ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,
2012-05-10 11:59:21.186154 I [5008/5022] TVRecEvent tv_rec.cpp:3367 (HandleTuning) - TVRec(6): HandleTuning Request: Program(NULL) channel() input() flags(LiveTV,)
2012-05-10 11:59:21.187582 I [5008/5022] TVRecEvent tv_rec.cpp:1636 (GetStartChannel) - TVRec(6): Start channel: 68-513.
2012-05-10 11:59:21.193092 I [5008/5022] TVRecEvent tv_rec.cpp:3456 (TuningCheckForHWChange) - TVRec(6): HW Tuner: 6->6
2012-05-10 11:59:21.193137 I [5008/5022] TVRecEvent tv_rec.cpp:4155 (ClearFlags) - TVRec(6): ClearFlags(PENDINGACTIONS,) -> RunMainLoop,
2012-05-10 11:59:21.193159 I [5008/5022] TVRecEvent tv_rec.cpp:3389 (HandleTuning) - TVRec(6): No recorder yet, calling TuningFrequency
2012-05-10 11:59:21.193860 I [5008/5022] TVRecEvent hdhrchannel.cpp:57 (Open) - HDHRChan(1311AE11-2): Opening HDHR channel
2012-05-10 11:59:21.197364 I [5008/5022] TVRecEvent dtvchannel.cpp:181 (SetChannelByString) - DTVChan(1311AE11-2): SetChannelByString(68-513): 
2012-05-10 11:59:21.204571 E [5008/5022] TVRecEvent dtvmultiplex.cpp:323 (ParseTuningParams) - DTVMux: ParseTuningParams -- Unknown tuner type
2012-05-10 11:59:21.204698 E [5008/5022] TVRecEvent dtvchannel.cpp:308 (SetChannelByString) - DTVChan(1311AE11-2): SetChannelByString(68-513): Failed to initialize multiplex options
2012-05-10 11:59:21.204710 I [5008/5022] TVRecEvent dtvchannel.cpp:332 (SetChannelByString) - DTVChan(1311AE11-2): SetChannelByString(68-513): failure
2012-05-10 11:59:21.204736 E [5008/5022] TVRecEvent tv_rec.cpp:3642 (TuningFrequency) - TVRec(6): Failed to set channel to 68-513. Reverting to kState_None
2012-05-10 11:59:21.204800 I [5008/5022] TVRecEvent tv_rec.cpp:1014 (HandleStateChange) - TVRec(6): Changing from WatchingLiveTV to None
2012-05-10 11:59:21.204848 I [5008/5022] TVRecEvent tv_rec.cpp:4155 (ClearFlags) - TVRec(6): ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,
2012-05-10 11:59:21.204878 I [5008/5022] TVRecEvent tv_rec.cpp:3367 (HandleTuning) - TVRec(6): HandleTuning Request: Program(NULL) channel() input() flags(KillRec,KillRingBuffer,)
2012-05-10 11:59:21.204914 I [5008/5022] TVRecEvent tv_rec.cpp:4155 (ClearFlags) - TVRec(6): ClearFlags(PENDINGACTIONS,) -> RunMainLoop,
2012-05-10 11:59:21.205086 I [5008/5041] ProcessRequest tv_rec.cpp:4146 (SetFlags) - TVRec(6): SetFlags(CancelNextRecording,) -> RunMainLoop,CancelNextRecording,
2012-05-10 11:59:21.205170 I [5008/5041] ProcessRequest mythsocket.cpp:345 (writeStringList) - MythSocket(2793f00:49): write -> 49 2       ok
2012-05-10 11:59:21.207121 I [5008/5040] Socket mythsocketthread.cpp:163 (ReadyToBeRead) - MythSocketThread(sock 0x2793f00:49): socket closed
2012-05-10 11:59:21.207438 I [5008/5040] Socket mythcorecontext.cpp:1190 (dispatch) - MythEvent: LOCAL_SLAVE_BACKEND_ENCODERS_OFFLINE

mythbackend --version:

MythTV Version : v0.25
MythTV Branch : 
Network Protocol : 72
Library API : 0.25.20120408-1
QT Version : 4.8.1
Options compiled in:
 linux release use_hidesyms using_alsa using_jack using_oss using_pulse using_pulseoutput using_backend using_bindings_perl using_bindings_python using_bindings_php using_crystalhd using_dvb using_firewire using_frontend using_hdhomerun using_ceton using_hdpvr using_iptv using_ivtv using_joystick_menu using_libcrypto using_libdns_sd using_libfftw3 using_libxml2 using_lirc using_mheg using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_v4l2 using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_bindings_php using_mythtranscode using_opengl using_vaapi using_vdpau using_ffmpeg_threads using_live using_mheg using_libass using_libxml2

Attachments (1)

mythtv-10712-use_OCUR_only_with_CableCARD.patch (1.8 KB) - added by simon.sinister@… 12 years ago.
This patch adds support for an HdHomerun? Prime without a Cable Card

Download all attachments as: .zip

Change History (13)

comment:1 Changed 12 years ago by sphery

Did you "Delete all capture cards" and re-create the card/re-connect inputs using the 0.25 mythtv-setup (which supports configuration of HDHR Prime and other CableCARD tuners)?

comment:2 Changed 12 years ago by Gern Blanston <mythtv@…>

Yes multiple times. run mythtv-setup. Deleted all cards. Exit mythtv-setup. Run mythtv-setup add card. Same result.

comment:3 Changed 12 years ago by captainbaldric@…

I ran into the same issue. In my backend log, I found ...

mythbackend.20120413210155.15620.log:2012-04-13 21:05:55.865706 E [15620/15630] TVRecEventdtvmultiplex.cpp:323 (ParseTuningParams?) - DTVMux: ParseTuningParams? -- Unknown tuner type

which I found disappointly vague, so I made the following change.

mythtv-0.25/libs/libmythtv/dtvmultiplex.cpp
323c323
<     LOG(VB_GENERAL, LOG_ERR, LOC + "ParseTuningParams -- Unknown tuner type");
---
>     LOG(VB_GENERAL, LOG_ERR, LOC + QString("ParseTuningParams -- Unknown tuner type = 0x%1").arg(type, 8, 16, QChar('0')));

After rebuilding and restarting the backend, the updated log file showed ...

mythbackend.20120413212337.15926.log:2012-04-13 21:23:38.034919 E [15926/15926] CoreContext? dtvmultiplex.cpp:324 (ParseTuningParams?) - DTVMux: ParseTuningParams? -- Unknown tuner type = 0x00002000

I tracked down this tuner type value to be kTunerTypeOCUR.

When running the HDHomerun Prime with a CableCard?, the OCUR tuner type would be appropriate, but when running without a CableCard?, it operates as an ATSC tuner (and supports multiplexing).

To fix the problem, I made the following change ...

diff mythtv-0.25.orig/libs/libmythtv/hdhrstreamhandler.cpp mythtv-0.25/libs/libmythtv/hdhrstreamhandler.cpp.new
274c274,287
<             _tuner_types.push_back(DTVTunerType::kTunerTypeOCUR);
---
>             hdhomerun_tuner_status_t t_status;
> 
>             hdhomerun_device_get_oob_status(_hdhomerun_device, NULL, &t_status);
>             LOG(VB_GENERAL, LOG_ERR, LOC + QString("Cable card OOB channel is '%1'").arg(t_status.channel));
>             if (strcmp(t_status.channel, "none") == 0)
>             {
>                 _tuner_types.push_back(DTVTunerType::kTunerTypeATSC);
>                 LOG(VB_GENERAL, LOG_ERR, LOC + "Cable card is not present");
>             }
>             else
>             {
>                 _tuner_types.push_back(DTVTunerType::kTunerTypeOCUR);
>                 LOG(VB_GENERAL, LOG_ERR, LOC + "Cable card is present");
>             }

Note: I added several log messages to help debug my change. LOG_ERR may not be the right logging level, since these are not really errors. It's perfectly valid to run the HDHomerun Prime with or without a CableCard?.

I briefly had access to a CableCard?, and verified that the tuner type would be set to OCUR by the above code, but I never got the CableCard? to work (due to incompentence at Comcast customer service). The HDHomerun Prime is working very well as an ATSC tuner.

comment:4 Changed 12 years ago by Gern Blanston <mythtv@…>

@captainbaldric -- thank you so much! I suspected this was the issue (OCUR vs ATSC) but wanted to see if it was a known issue before setting up a build environment for myth. Many many thanks. I'll go and make your suggested changes for myself for the short term. THANKS!

Is it reasonable to expect that your patch (or similar) will be accepted into the myth source soon?

Changed 12 years ago by simon.sinister@…

This patch adds support for an HdHomerun? Prime without a Cable Card

comment:5 Changed 12 years ago by xirtama@…

I can confirm this bug with my setup. I've recently purchased a HDHomeRun Prime to use with ATSC with the eventually possibility of renting a CableCard?. I'd very much like to see this patch get incorporated.

comment:6 Changed 12 years ago by mitchell.gore@…

well add me to the list of being burned by this bug. It worked in .24 before but then i got cable and upgraded to .25. Now that I want to cancel cable for the summer I wanted to go back to QAM. Cant get prime to work! ARG!

comment:7 Changed 12 years ago by Simon Sinister <simon.sinister@…>

Resolution: fixed
Status: newclosed

In 810b3afcca9b0b18a9b76b6f2df51be404678df3/mythtv:

Fixes #10712. Add support for HDHR Prime without CableCard?.

comment:8 Changed 12 years ago by Daniel Kristjansson <danielk@…>

In 98d02dbe1e6a58ea18fbdb97659a52129c8529a4/mythtv:

Refs #10712. Add error checking, proper formatting, and improve debugging of previous commit.

comment:9 Changed 12 years ago by Raymond Wagner

Milestone: unknown0.25.1

comment:10 Changed 12 years ago by mitchell.gore@…

Will this get pushed into -fixes?

comment:11 Changed 12 years ago by Simon Sinister <simon.sinister@…>

In 18e0f2fd2d6b5b7724e8df0ee893817e192a4903/mythtv:

Fixes #10712. Add support for HDHR Prime without CableCard?.

comment:12 Changed 12 years ago by Daniel Kristjansson <danielk@…>

In 3a9dea901cd46ac240c022bbeee79841f738042d/mythtv:

Refs #10712. Add error checking, proper formatting, and improve debugging of previous commit.

Note: See TracTickets for help on using tickets.