Opened 17 years ago

Closed 17 years ago

#2780 closed defect (fixed)

HDTV (ATSC) tuning is not working

Reported by: james.meyer@… Owned by: danielk
Priority: minor Milestone: unknown
Component: mythtv Version: head
Severity: low Keywords:
Cc: Ticket locked: no

Description

Using a fresh database and SVN HEAD version 12194, Tuning of ATSC channels does not work correctly.

The Channel scan is able to pick up the correct channels and add them to the database, but when I go to watch live tv I get a blank screen. Also EIT information does not seem to be collected.

This looks similiar to ticket #2726 so I have included the debugging information that ticket asked for. Just as another data point, if I update the sistandard fileds to 'atsc' then everything works as expected. Both live tv and EIT work.

[root@Xcube ~]# mythbackend --version Library API version: 0.20.20061204-1 Source code version: 12194 Options compiled in:

linux release using_xvmcw using_v4l using_oss using_alsa using_ivtv using_dbox2 using_hdhr using_iptv using_live using_lirc using_joystick_menu using_dvb using_x11 using_xv using_xrandr using_xvmc using_xvmc_vld using_opengl_vsync using_opengl using_frontend using_backend



mysql> SELECT
    -> channel.mplexid,serviceid,atscsrcid,atsc_major_chan,atsc_minor_chan,sistandard
    -> FROM channel,dtv_multiplex WHERE channel.mplexid = dtv_multiplex.mplexid;
+---------+-----------+-----------+-----------------+-----------------+------------+
| mplexid | serviceid | atscsrcid | atsc_major_chan | atsc_minor_chan | sistandard |
+---------+-----------+-----------+-----------------+-----------------+------------+
|       1 |         1 |      NULL |              10 |               1 |            |
|       1 |         2 |      NULL |              10 |               2 |            |
|       1 |         3 |      NULL |              10 |               3 |            |
|       1 |         4 |      NULL |              10 |               4 |            |
|       1 |         5 |      NULL |              10 |               5 |            |
|       1 |         6 |      NULL |              10 |               6 |            |
|       1 |         7 |      NULL |              10 |               7 |            |
|       2 |         3 |      NULL |              30 |               1 |            |
|       3 |         3 |      NULL |              24 |               1 |            |
|       3 |         4 |      NULL |              24 |               2 |            |
|       4 |         1 |      NULL |               4 |               1 |            |
|       4 |         2 |      NULL |               4 |               2 |            |
|       5 |         3 |      NULL |               6 |               1 |            |
|       6 |         1 |      NULL |              36 |               1 |            |
|       7 |         3 |      NULL |              55 |               1 |            |
|       7 |         4 |      NULL |              55 |               2 |            |
|       7 |         5 |      NULL |              55 |               3 |            |
|       7 |         6 |      NULL |              55 |               4 |            |
+---------+-----------+-----------+-----------------+-----------------+------------+
18 rows in set (0.00 sec)




[root@Xcube ~]# mythbackend -v record,channel
2006-12-05 16:26:44.917 Using runtime prefix = /usr/local
2006-12-05 16:26:44.927 New DB connection, total: 1
2006-12-05 16:26:44.933 Connected to database 'mythconverg' at host: 127.0.0.1
2006-12-05 16:26:44.935 Current Schema Version: 1171
Starting up as the master server.
2006-12-05 16:26:44.939 mythbackend: MythBackend started as master server
2006-12-05 16:26:44.941 New DB connection, total: 2
2006-12-05 16:26:44.942 Connected to database 'mythconverg' at host: 127.0.0.1
2006-12-05 16:26:44.943 EITHelper: localtime offset -6:00:00
2006-12-05 16:26:44.947 DVBChan(0): Opening DVB channel
2006-12-05 16:26:44.947 DVBChan(0): Using DVB card 0, with frontend 'LG Electronics LGDT3303 VSB/QAM Frontend'.
2006-12-05 16:26:44.948 New DB connection, total: 3
2006-12-05 16:26:44.949 Connected to database 'mythconverg' at host: 127.0.0.1
2006-12-05 16:26:44.952 ChannelBase(1): Input #1: 'DVBInput' schan(10_1) sourceid(1) ccid(1)
2006-12-05 16:26:44.952 ChannelBase(1): Current Input #1: 'DVBInput'
2006-12-05 16:26:44.952 DVBChan(0): SetChannelByString(10_1):
2006-12-05 16:26:44.954 DVBChan(0): 183000000 8vsb a auto auto a a auto a v
2006-12-05 16:26:44.954 DVBChan(0): Old Params: 0 auto a auto auto a a auto a v
                        DVBChan(0): New Params: 183000000 8vsb a auto auto a a auto a v
2006-12-05 16:26:44.954 DVBChan(0): Tune(): Tuning to 183000000Hz
2006-12-05 16:26:44.954 dvbchannel.cpp:wait_for_backend: Status:
2006-12-05 16:26:44.954 DVBChan(0): Tune(): Frequency tuning successful.
2006-12-05 16:26:44.954 DVBChan(0): SetChannelByString(10_1): Tuned to frequency.
2006-12-05 16:26:44.960 TVRec(1): SetFlags(RunMainLoop,) -> RunMainLoop,
2006-12-05 16:26:44.960 TVRec(1): ClearFlags(ExitPlayer,FinishRecording,) -> RunMainLoop,
2006-12-05 16:26:44.961 New DB scheduler connection
2006-12-05 16:26:44.961 Connected to database 'mythconverg' at host: 127.0.0.1
2006-12-05 16:26:44.965 Main::Starting HttpServer
2006-12-05 16:26:44.967 Main::Registering HttpStatus Extension
2006-12-05 16:26:44.972 mythbackend version: 0.20.20061204-1 www.mythtv.org
2006-12-05 16:26:44.972 Enabled verbose msgs:  important general record channel
2006-12-05 16:26:44.972 AutoExpire: Found max recording rate of 138 MB/min
2006-12-05 16:26:44.973 AutoExpire: CalcParams(): Required Free Space: 4.0 GB w/freq: 10 min

2006-12-05 16:26:46.965 Reschedule requested for id -1.
2006-12-05 16:26:46.976 Scheduled 0 items in 0.0 = 0.00 match + 0.01 place
2006-12-05 16:26:46.977 scheduler: Scheduled items: Scheduled 0 items in 0.0 = 0.00 match + 0.01 place
2006-12-05 16:26:46.979 Seem to be woken up by USER
2006-12-05 16:26:47.111 MainServer::HandleAnnounce Monitor
2006-12-05 16:26:47.111 adding: Xcube as a client (events: 0)
2006-12-05 16:26:47.111 MainServer::HandleAnnounce Monitor
2006-12-05 16:26:47.111 adding: Xcube as a client (events: 1)
2006-12-05 16:26:47.112 Getting next free recorder after : -1
2006-12-05 16:26:47.113 Card 1 is local.
2006-12-05 16:26:47.114 MainServer::HandleAnnounce Playback
2006-12-05 16:26:47.114 adding: Xcube as a client (events: 0)
2006-12-05 16:26:47.115 TVRec(1): Changing from None to WatchingLiveTV
2006-12-05 16:26:47.116 TVRec(1): ClearFlags(FrontendReady,CancelNextRecording,) -> RunMainLoop,
2006-12-05 16:26:47.116 TVRec(1): SetFlags(AskAllowRecording,) -> RunMainLoop,AskAllowRecording,
2006-12-05 16:26:47.116 TVRec(1): Request: Program(no) channel() input() flags(LiveTV,)
2006-12-05 16:26:47.116 TVRec(1): HW Tuner: 1->1
2006-12-05 16:26:47.116 TVRec(1): ClearFlags(PENDINGACTIONS,) -> RunMainLoop,AskAllowRecording,
2006-12-05 16:26:47.116 DVBChan(0): Opening DVB channel
2006-12-05 16:26:47.116 DVBChan(0): SetChannelByString(10_1):
2006-12-05 16:26:47.117 DVBChan(0): SetChannelByString(10_1): Already on channel
2006-12-05 16:26:47.117 TVRec(1): CreateLiveTVRingBuffer()
2006-12-05 16:26:47.117 TVRec(1): GetProgramRingBufferForLiveTV()
2006-12-05 16:26:47.148 TVRec(1): StartedRecording(0x821c4d0) fn(/data/media/video/recordings/1101_20061205162647.mpg)
2006-12-05 16:26:47.154 Chain: Appended@0 '1101_20061205162647'
2006-12-05 16:26:47.155 TVRec(1): Starting Signal Monitor
2006-12-05 16:26:47.155 TVRec(1): SetupSignalMonitor(1, 1)
2006-12-05 16:26:47.155 DVBChan(0): Opening DVB channel
2006-12-05 16:26:47.157 SM(0)::AddFlags: Seen() Match() Wait(Sig,SNR,BER,UB,)
2006-12-05 16:26:47.157 DVBSM(0)::constructor(): initial flags 0x7400000
2006-12-05 16:26:47.157 TVRec(1): Signal monitor successfully created
2006-12-05 16:26:47.157 TVRec(1): Setting up table monitoring.
2006-12-05 16:26:47.157 TVRec(1) Error: No valid DTV info, ATSC maj(10) min(1), MPEG pn(-1)
2006-12-05 16:26:47.157 TVRec(1) Error: Failed to setup digital signal monitoring
2006-12-05 16:26:47.157 TVRec(1) Error: Failed to setup signal monitor
2006-12-05 16:26:47.157 DVBSM(0)::Stop: begin
2006-12-05 16:26:47.157 SM(0)::Stop: begin
2006-12-05 16:26:47.157 SM(0)::Stop: end
2006-12-05 16:26:47.158 DVBSM(0)::Stop: end
2006-12-05 16:26:47.158 TVRec(1): SetFlags(SignalMonitorRunning,) -> RunMainLoop,AskAllowRecording,SignalMonitorRunning,
2006-12-05 16:26:47.158 TVRec(1): ClearFlags(WaitingForSignal,) -> RunMainLoop,AskAllowRecording,SignalMonitorRunning,
2006-12-05 16:26:47.158 TVRec(1): SetFlags(DummyRecorderRunning,) -> RunMainLoop,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,
2006-12-05 16:26:47.158 DummyDTVRecorder -- started
2006-12-05 16:26:47.158 TVRec(1): SetFlags(RingBufferReady,) -> RunMainLoop,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,RingBufferReady,
2006-12-05 16:26:47.158 TVRec(1): SetFlags(CancelNextRecording,) -> RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,RingBufferReady,
2006-12-05 16:26:47.772 TVRec(1): SetFlags(FrontendReady,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,RingBufferReady,
2006-12-05 16:26:54.943 mythbackend: Running housekeeping thread
2006-12-05 16:27:07.084 ChannelBase(1): Failed to find channel() on current input (DVBInput) of card (1).
2006-12-05 16:27:07.084 ChannelBase(1): Failed to find channel() on any input of card (1).
2006-12-05 16:27:07.088 TVRec(1): PauseRecorder() called with no recorder
2006-12-05 16:27:07.089 TVRec(1): SetChannel() -- begin
2006-12-05 16:27:07.089 TVRec(1): ClearFlags(RingBufferReady,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,
2006-12-05 16:27:07.089 TVRec(1): Request: Program(no) channel(10_5) input() flags(LiveTV,)
2006-12-05 16:27:07.090 TVRec(1): ClearFlags(SignalMonitorRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,DummyRecorderRunning,
2006-12-05 16:27:07.090 TVRec(1): ClearFlags(PENDINGACTIONS,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,DummyRecorderRunning,
2006-12-05 16:27:07.090 DVBChan(0): Opening DVB channel
2006-12-05 16:27:07.090 DVBChan(0): SetChannelByString(10_5):
2006-12-05 16:27:07.092 DVBChan(0): 183000000 8vsb a auto auto a a auto a v
2006-12-05 16:27:07.092 DVBChan(0): Old Params: 183000000 8vsb a auto auto a a auto a v
                        DVBChan(0): New Params: 183000000 8vsb a auto auto a a auto a v
2006-12-05 16:27:07.092 DVBChan(0): Tune(): Frequency tuning successful.
2006-12-05 16:27:07.092 DVBChan(0): SetChannelByString(10_5): Tuned to frequency.
2006-12-05 16:27:07.092 TVRec(1): SwitchLiveTVRingBuffer(discont 1, set_rec 0)
2006-12-05 16:27:07.092 TVRec(1): GetProgramRingBufferForLiveTV()
2006-12-05 16:27:07.105 TVRec(1): StartedRecording(0x8217768) fn(/data/media/video/recordings/1105_20061205162707.mpg)
2006-12-05 16:27:07.115 TVRec(1): FinishedRecording(Unknown) in recgroup: LiveTV
2006-12-05 16:27:07.116 Chain: Updated endtime for '1101_20061205162647' to 20061205162707
2006-12-05 16:27:07.122 Finished recording Unknown: channel 1101
2006-12-05 16:27:07.122 scheduler: Finished recording: Unknown: channel 1101
2006-12-05 16:27:07.124 Preview: '1101_20061205162647.mpg' is not local,
                        replacing with '/data/media/video/recordings/1101_20061205162647.mpg', which is local.
2006-12-05 16:27:07.126 Chain: Appended@1 '1105_20061205162707'
2006-12-05 16:27:07.126 TVRec(1): ClearFlags(DummyRecorderRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,
2006-12-05 16:27:07.127 TVRec(1): Starting Signal Monitor
2006-12-05 16:27:07.127 TVRec(1): SetupSignalMonitor(1, 1)
2006-12-05 16:27:07.127 DVBChan(0): Opening DVB channel
2006-12-05 16:27:07.128 SM(0)::AddFlags: Seen() Match() Wait(Sig,SNR,BER,UB,)
2006-12-05 16:27:07.128 DVBSM(0)::constructor(): initial flags 0x7400000
2006-12-05 16:27:07.128 TVRec(1): Signal monitor successfully created
2006-12-05 16:27:07.128 TVRec(1): Setting up table monitoring.
2006-12-05 16:27:07.129 TVRec(1) Error: No valid DTV info, ATSC maj(10) min(5), MPEG pn(-1)
2006-12-05 16:27:07.129 TVRec(1) Error: Failed to setup digital signal monitoring
2006-12-05 16:27:07.129 TVRec(1) Error: Failed to setup signal monitor
2006-12-05 16:27:07.129 DVBSM(0)::Stop: begin
2006-12-05 16:27:07.129 SM(0)::Stop: begin
2006-12-05 16:27:07.129 SM(0)::Stop: end
2006-12-05 16:27:07.129 DVBSM(0)::Stop: end
2006-12-05 16:27:07.129 TVRec(1): SetFlags(SignalMonitorRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,
2006-12-05 16:27:07.129 TVRec(1): ClearFlags(WaitingForSignal,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,
2006-12-05 16:27:07.129 TVRec(1): SetFlags(DummyRecorderRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,
2006-12-05 16:27:07.129 DummyDTVRecorder -- started
2006-12-05 16:27:07.129 TVRec(1): SetFlags(RingBufferReady,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,RingBufferReady,
2006-12-05 16:27:07.129 TVRec(1): SetChannel() -- end
2006-12-05 16:27:07.135 Preview Error: Previewer file '/data/media/video/recordings/1101_20061205162647.mpg' is not valid.
2006-12-05 16:27:20.850 ChannelBase(1): Failed to find channel() on current input (DVBInput) of card (1).
2006-12-05 16:27:20.851 ChannelBase(1): Failed to find channel() on any input of card (1).
2006-12-05 16:27:20.855 TVRec(1): PauseRecorder() called with no recorder
2006-12-05 16:27:20.855 TVRec(1): SetChannel() -- begin
2006-12-05 16:27:20.855 TVRec(1): ClearFlags(RingBufferReady,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,
2006-12-05 16:27:20.855 TVRec(1): Request: Program(no) channel(10_7) input() flags(LiveTV,)
2006-12-05 16:27:20.856 TVRec(1): ClearFlags(SignalMonitorRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,DummyRecorderRunning,
2006-12-05 16:27:20.856 TVRec(1): ClearFlags(PENDINGACTIONS,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,DummyRecorderRunning,
2006-12-05 16:27:20.856 DVBChan(0): Opening DVB channel
2006-12-05 16:27:20.856 DVBChan(0): SetChannelByString(10_7):
2006-12-05 16:27:20.859 DVBChan(0): 183000000 8vsb a auto auto a a auto a v
2006-12-05 16:27:20.859 DVBChan(0): Old Params: 183000000 8vsb a auto auto a a auto a v
                        DVBChan(0): New Params: 183000000 8vsb a auto auto a a auto a v
2006-12-05 16:27:20.859 DVBChan(0): Tune(): Frequency tuning successful.
2006-12-05 16:27:20.859 DVBChan(0): SetChannelByString(10_7): Tuned to frequency.
2006-12-05 16:27:20.859 TVRec(1): SwitchLiveTVRingBuffer(discont 1, set_rec 0)
2006-12-05 16:27:20.859 TVRec(1): GetProgramRingBufferForLiveTV()
2006-12-05 16:27:20.872 TVRec(1): StartedRecording(0x8252a70) fn(/data/media/video/recordings/1107_20061205162720.mpg)
2006-12-05 16:27:20.879 TVRec(1): FinishedRecording(Unknown) in recgroup: LiveTV
2006-12-05 16:27:20.880 Chain: Updated endtime for '1105_20061205162707' to 20061205162720
2006-12-05 16:27:20.886 Finished recording Unknown: channel 1105
2006-12-05 16:27:20.887 scheduler: Finished recording: Unknown: channel 1105
2006-12-05 16:27:20.888 Preview: '1105_20061205162707.mpg' is not local,
                        replacing with '/data/media/video/recordings/1105_20061205162707.mpg', which is local.
2006-12-05 16:27:20.890 Chain: Appended@2 '1107_20061205162720'
2006-12-05 16:27:20.890 TVRec(1): ClearFlags(DummyRecorderRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,
2006-12-05 16:27:20.891 TVRec(1): Starting Signal Monitor
2006-12-05 16:27:20.891 TVRec(1): SetupSignalMonitor(1, 1)
2006-12-05 16:27:20.891 DVBChan(0): Opening DVB channel
2006-12-05 16:27:20.892 SM(0)::AddFlags: Seen() Match() Wait(Sig,SNR,BER,UB,)
2006-12-05 16:27:20.892 DVBSM(0)::constructor(): initial flags 0x7400000
2006-12-05 16:27:20.892 TVRec(1): Signal monitor successfully created
2006-12-05 16:27:20.892 TVRec(1): Setting up table monitoring.
2006-12-05 16:27:20.893 TVRec(1) Error: No valid DTV info, ATSC maj(10) min(7), MPEG pn(-1)
2006-12-05 16:27:20.893 TVRec(1) Error: Failed to setup digital signal monitoring
2006-12-05 16:27:20.893 TVRec(1) Error: Failed to setup signal monitor
2006-12-05 16:27:20.893 DVBSM(0)::Stop: begin
2006-12-05 16:27:20.893 SM(0)::Stop: begin
2006-12-05 16:27:20.893 SM(0)::Stop: end
2006-12-05 16:27:20.893 DVBSM(0)::Stop: end
2006-12-05 16:27:20.893 TVRec(1): SetFlags(SignalMonitorRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,
2006-12-05 16:27:20.894 TVRec(1): ClearFlags(WaitingForSignal,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,
2006-12-05 16:27:20.894 TVRec(1): SetFlags(DummyRecorderRunning,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,
2006-12-05 16:27:20.894 DummyDTVRecorder -- started
2006-12-05 16:27:20.894 TVRec(1): SetFlags(RingBufferReady,) -> FrontendReady,RunMainLoop,CancelNextRecording,AskAllowRecording,SignalMonitorRunning,DummyRecorderRunning,RingBufferReady,
2006-12-05 16:27:20.894 TVRec(1): SetChannel() -- end
2006-12-05 16:27:20.907 Preview Error: Previewer file '/data/media/video/recordings/1105_20061205162707.mpg' is not valid.

Change History (4)

comment:1 Changed 17 years ago by danielk

Owner: changed from Isaac Richards to danielk

It looks like you are missing the sistandard.

What kind of channel scan did you do?

comment:2 Changed 17 years ago by danielk

Resolution: fixed
Status: newclosed

(In [12214]) Fixes #2780. Fix for DVBChannel::ProbeTuningParams?().

The dvbparams_to_dtvmultiplex() function does not set the mplex or sistandard. So on hardware that actually returned the tuned frequency, like the Air2PC rev 2 with 2.6.18 drivers, we would reset the sistandard and this would throw off SIScan's multiplex creation rutine.

comment:3 Changed 17 years ago by newbury@…

Resolution: fixed
Severity: mediumhigh
Status: closedreopened

This not the only problem with ATSC tuning/scanning. The code which completes the channel table (at the least) is broken.

SVN 12265, PVR500 and HD3000, start from scratch by removing ALL cards and sources and re-starting (including recreating zap2it lineups). Scanning produces no watcheable channels for the HD3000, although listing encrypted channels. PVR scan is correct. Channel lock is reported promptly at each tuning step for the HD3000. (the S/N ratio is still reported as zero...I thought I saw that that was fixed..not in 12265, maybe later?). End result NO channels listed for the HD3000... Import of channels.conf also does not work. It does not matter which type of scan or cable type is selected. Note, scanning with atscscan, tuning with azap and cat'ing output to a file, produces output perfectly playable by mplayer: this is NOT a hardware problem. It's just that Myth does not properly parse the stream to create the information needed. AND the channels.conf import is ALSO broken so even the OLD methods will not work.

Capturecard and cardinput appear correct. Dtv_multiplex is now correct: sistandard is filled in as atsc..As noted it was improperly filled in as something else as of SVN11850 or so.

Channel is NOT completed correctly. Here are 2 lines, sourceid 1 is for a PVR500, and sourceid 2 is the HD3000. Note that mplexid as 32768 and serviceid is '0'. Since I have a printout of how the channels were before I tried the scan which busted things, I will try poking the correct mplexid values into the table and see whether it will then find the serviceid....And doesn't the atsc_minor_chan equal the serviceid now???

1015 15 15 1 CKXT CKXT - Sun TV NULL 34227 0 32768 32768 32768 32768 Default 0 1 0 32767 0 NULL 0 15 0

2119 119 119 2 CHAN Global BC NULL 10050 0 32768 32768 32768 32768 Default 0 1 0 32767 0 NULL 0 119 0

Looking at those 2 lines, you would not know that sourceid 2 is an ATSC tuner (fourth entry, each line). The xmltvid's are 34227 and 10050. The 32767 number is supposed to be the mplexid, and the zero following that is the serviceid...Interesting that it is 32767 == -1 ?

What other information would you like to see to help parse this problem?

Geoff Newbury

comment:4 Changed 17 years ago by danielk

Resolution: fixed
Severity: highlow
Status: reopenedclosed

new bug => new ticket, see my message in mythtv dev mailing list.

Note: See TracTickets for help on using tickets.