[mythtv-commits] Ticket #2541: HDHomeRun segfaults on invalid channels

MythTV mythtv at cvs.mythtv.org
Fri Oct 13 16:25:07 UTC 2006


#2541: HDHomeRun segfaults on invalid channels
------------------------------+---------------------------------------------
 Reporter:  dab at dab-tech.com  |        Owner:  danielk
     Type:  patch             |       Status:  new    
 Priority:  minor             |    Milestone:  0.21   
Component:  mythtv            |      Version:  head   
 Severity:  medium            |   Resolution:         
------------------------------+---------------------------------------------
Comment (by dab at dab-tech.com):

 This patch does indeed fix the segfault, but as you say the recording is
 invalid.  The channels for this source were imported from a channels.conf
 produced by a scan from my Avermedia A180 card, which is able to tune
 them.  I do not get that error message when recording from the same
 channel with that card, here is a small excerpt from the mythbackend log
 when a recording starts on this channel using the A180 (no cracks about
 recording Pokemon, I was just testing ;):

 {{{
 2006-10-13 10:42:04.789 TVRec(1): StartRecording(Pok<E9>mon: Destiny
 Deoxys)
 2006-10-13 10:42:04.790 TVRec(1): ClearFlags(AskAllowRecording,) ->
 RunMainLoop,
 2006-10-13 10:42:04.885 TVRec(1): StartedRecording(0x84f95a0)
 fn(/mnt/storage/3535_20061013104200.mpg)
 2006-10-13 10:42:04.888 TVRec(1): ClearFlags(CancelNextRecording,) ->
 RunMainLoop,
 2006-10-13 10:42:04.890 TVRec(1): Changing from None to RecordingOnly
 2006-10-13 10:42:04.891 TVRec(1):
 ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,
 2006-10-13 10:42:04.892 TVRec(1): SetFlags(AskAllowRecording,) ->
 RunMainLoop,AskAllowRecording,
 2006-10-13 10:42:04.893 TVRec(1): Request: Program(yes) channel() input()
 flags(Recording,)
 2006-10-13 10:42:04.896 TVRec(1): HW Tuner: 1->1
 2006-10-13 10:42:04.897 TVRec(1): ClearFlags(PENDINGACTIONS,) ->
 RunMainLoop,AskAllowRecording,
 2006-10-13 10:42:04.898 DVBChan(0): Opening DVB channel
 2006-10-13 10:42:04.900 DVBChan(0): Using DVB card 0, with frontend
 'Nextwave NXT200X VSB/QAM frontend'.
 2006-10-13 10:42:04.924 ChannelBase(1): Input #1: 'DVBInput' schan(58)
 sourceid(3) ccid(1)
 2006-10-13 10:42:04.925 ChannelBase(1): Current Input #1: 'DVBInput'
 2006-10-13 10:42:04.926 DVBChan(0): SetChannelByString(58):
 2006-10-13 10:42:04.932 DVBChan(0): Frequency: 627000000 Modulation: QPSK
 2006-10-13 10:42:04.933 DVBChan(0): Old Params: Frequency: 627000000
 Modulation: QPSK
                         DVBChan(0): New Params: Frequency: 627000000
 Modulation: QPSK
 2006-10-13 10:42:04.934 DVBChan(0): Tune(): Tuning to 627000000Hz
 2006-10-13 10:42:04.935 dvbchannel.cpp:wait_for_backend: Status:
 2006-10-13 10:42:04.936 DVBChan(0): Tune(): Frequency tuning successful.
 2006-10-13 10:42:04.937 DVBChan(0): SetChannelByString(58): Tuned to
 frequency.
 2006-10-13 10:42:04.938 TVRec(1): Starting Signal Monitor
 2006-10-13 10:42:04.939 TVRec(1): SetupSignalMonitor(1, 0)
 2006-10-13 10:42:04.941 DVBChan(0): Opening DVB channel
 2006-10-13 10:42:06.064 SM(0)::AddFlags: Seen() Match()
 Wait(Sig,SNR,BER,UB,)
 2006-10-13 10:42:06.065 DVBSM(0)::constructor(): initial flags 0x7400000
 2006-10-13 10:42:06.078 TVRec(1): Signal monitor successfully created
 2006-10-13 10:42:06.086 TVRec(1): Setting up table monitoring.
 2006-10-13 10:42:06.095 TVRec(1): MPEG program number: 4507
 2006-10-13 10:42:06.104 DTVSM(0)::SetProgramNumber(4507):
 2006-10-13 10:42:06.111 SM(0)::RemoveFlags: Seen(PMT,) Match(PMT,) Wait()
 2006-10-13 10:42:06.120 SM(0)::AddFlags: Seen() Match() Wait(PMT,)
 2006-10-13 10:42:06.121 SM(0)::AddFlags: Seen() Match() Wait(PAT,PMT,)
 2006-10-13 10:42:06.122 SM(0)::AddFlags: Seen() Match() Wait()
 2006-10-13 10:42:06.123 TVRec(1): Successfully set up MPEG table
 monitoring.
 2006-10-13 10:42:06.125 SM(0)::Start: begin
 2006-10-13 10:42:06.136 SM(0)::Start: end
 2006-10-13 10:42:06.145 TVRec(1): SetFlags(SignalMonitorRunning,) ->
 RunMainLoop,AskAllowRecording,SignalMonitorRunning,
 2006-10-13 10:42:06.153 TVRec(1): ClearFlags(WaitingForSignal,) ->
 RunMainLoop,AskAllowRecording,SignalMonitorRunning,
 2006-10-13 10:42:06.161 TVRec(1): SetFlags(WaitingForSignal,) ->
 RunMainLoop,AskAllowRecording,WaitingForSignal,SignalMonitorRunning,
 2006-10-13 10:42:06.173 TVRec(1): ClearFlags(NeedToStartRecorder,) ->
 RunMainLoop,AskAllowRecording,WaitingForSignal,SignalMonitorRunning,
 2006-10-13 10:42:06.178 TVRec(1): SetFlags(NeedToStartRecorder,) ->
 RunMainLoop,AskAllowRecording,WaitingForSignal,NeedToStartRecorder,SignalMonitorRunn
 ing,
 2006-10-13 10:42:06.182 Started recording: Pok<E9>mon: Destiny Deoxys:
 channel 3535 on cardid 1, sourceid 3
 2006-10-13 10:42:06.188 scheduler: Started recording: Pok<E9>mon: Destiny
 Deoxys: channel 3535 on cardid 1, sourceid 3
 2006-10-13 10:42:06.332 DVBSM(0)::UpdateValues: Signal Locked
 2006-10-13 10:42:06.340 DVBSM(0)::UpdateValues: Waiting for table monitor
 to start
 2006-10-13 10:42:06.342 DVBSM(0)::UpdateValues: Table monitor started
 2006-10-13 10:42:06.341 DVBSM(0)::AddPIDFilter(0x0):
 2006-10-13 10:42:06.346 DVBSM(0)::RemovePIDFilter(0x0):
 2006-10-13 10:42:06.377 DVBSM(0): RunTableMonitorTS(): begin (# of pids 1)
 2006-10-13 10:42:06.379 DVBSM(0)::AddPIDFilter(0x0):
 2006-10-13 10:42:06.491 SM(0)::AddFlags: Seen(PAT,) Match() Wait()
 2006-10-13 10:42:06.492 SM(0)::AddFlags: Seen() Match(PAT,) Wait()
 2006-10-13 10:42:06.494 CreatePATSingleProgram()
 }}}

 Here are the relevant database rows for channel 58 and it's associated
 dtv_multiplex entry:


 {{{
 mysql> select * from channel where channum = '58' and sourceid =3\G
 *************************** 1. row ***************************
          chanid: 3535
         channum: 58
          freqid: NULL
        sourceid: 3
        callsign: TOON
            name: TOON
            icon: /home/dab/.mythtv/channels/cartoonnetwork_30.jpg
        finetune: NULL
    videofilters:
         xmltvid: 12131
     recpriority: 0
        contrast: 32768
      brightness: 32768
          colour: 32768
             hue: 32768
        tvformat: Default
        commfree: 0
         visible: 1
   outputfilters:
   useonairguide: 0
         mplexid: 51
       serviceid: 4507
       atscsrcid: NULL
        tmoffset: 0
 atsc_major_chan: 0
 atsc_minor_chan: 0
 1 row in set (0.00 sec)

 mysql> select * from dtv_multiplex where mplexid = 51\G
 *************************** 1. row ***************************
           mplexid: 51
          sourceid: 3
       transportid: NULL
         networkid: NULL
         frequency: 627000000
         inversion: a
        symbolrate: 0
               fec: auto
          polarity: v
        modulation: qam_256
         bandwidth: a
      lp_code_rate: auto
 transmission_mode: a
    guard_interval: auto
           visible: 0
     constellation: auto
         hierarchy: a
      hp_code_rate: auto
        sistandard: atsc
    serviceversion: 33
   updatetimestamp: 20060912174359
 1 row in set (0.00 sec)

 }}}

 Is there anything else I can provide to try and figure out why I would get
 that error message when attempting to record with the hdhomerun and this
 source?  I'm testing this remotely from work, I will try to see if I can
 use the live tv editor on the newly scanned channels from a mythtv-setup
 scan I performed using the hdhomerun this evening.

 Thanks for looking into this,
 Dwayne

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/2541#comment:9>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list