Opened 13 years ago

Closed 13 years ago

#2425 closed defect (invalid)

DVB tuning failure

Reported by: rob@… Owned by: Stuart Auchterlonie
Priority: minor Milestone: 0.21
Component: dvb Version: 0.20
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I'm having trouble getting myth 0.2 (release) to play ball with my DVB-C cable feed. I think the problem is down to the way myth interprets the PAT/PMT tables.

For example, there is a program number 8102 on a particular mux. When myth tunes it I get:

2006-09-19 13:21:17.906 PAT in input stream
2006-09-19 13:21:17.906 Program Association Table
 PSIP tableID(0x0) length(49) extension(0x51)
      version(6) current(1) section(0) last_section(0)
         tsid: 81
 programCount: 10
  program number 0 has PID 0x  10   data  0x0 0x0 0x224 0x16
  program number 8101 has PID 0x  20   data  0x31 0x165 0x224 0x32
  program number 8102 has PID 0x  20   data  0x31 0x166 0x224 0x32
  program number 8104 has PID 0x  20   data  0x31 0x168 0x224 0x32
  program number 8105 has PID 0x  20   data  0x31 0x169 0x224 0x32
  program number 8106 has PID 0x  20   data  0x31 0x170 0x224 0x32
  program number 8107 has PID 0x  20   data  0x31 0x171 0x224 0x32
  program number 8108 has PID 0x  20   data  0x31 0x172 0x224 0x32
  program number 8109 has PID 0x  20   data  0x31 0x173 0x224 0x32
  program number 8110 has PID 0x  20   data  0x31 0x174 0x224 0x32

2006-09-19 13:21:17.907 desired_program(8102) pid(0x20)
2006-09-19 13:21:17.907 pmt_pid(0x20)
2006-09-19 13:21:17.907 PAT for output stream
2006-09-19 13:21:17.907 Program Association Table
 PSIP tableID(0x0) length(13) extension(0x51)
      version(6) current(1) section(0) last_section(0)
         tsid: 81
 programCount: 1
  program number 1 has PID 0x  20   data  0x0 0x1 0x224 0x32

2006-09-19 13:21:17.907 DVBSM(0)::AddPIDFilter(0x20):
2006-09-19 13:21:17.958 SM(0)::AddFlags: Seen(PMT,) Match() Wait()
2006-09-19 13:21:17.958 DTVSM(0) Error: Wrong PMT; pmt->pn(8101) desired(8102)
2006-09-19 13:21:17.958 SM(0)::AddFlags: Seen(PMT,) Match() Wait()
2006-09-19 13:21:17.958 DTVSM(0) Error: Wrong PMT; pmt->pn(8107) desired(8102)
2006-09-19 13:21:18.009 SM(0)::AddFlags: Seen(PMT,) Match() Wait()
2006-09-19 13:21:18.010 DTVSM(0) Error: Wrong PMT; pmt->pn(8106) desired(8102)
2006-09-19 13:21:18.010 SM(0)::AddFlags: Seen(PMT,) Match() Wait()
2006-09-19 13:21:18.010 DTVSM(0) Error: Wrong PMT; pmt->pn(8104) desired(8102)
2006-09-19 13:21:18.010 SM(0)::AddFlags: Seen(PMT,) Match() Wait()
2006-09-19 13:21:18.010 DTVSM(0) Error: Wrong PMT; pmt->pn(8105) desired(8102)
2006-09-19 13:21:18.010 SM(0)::AddFlags: Seen(PMT,) Match() Wait()
2006-09-19 13:21:18.010 SM(0)::AddFlags: Seen() Match(PMT,) Wait()
2006-09-19 13:21:18.011 CreatePMTSingleProgram()
2006-09-19 13:21:18.011 PMT in input stream
2006-09-19 13:21:18.011 Program Map Table ver(24) pid(0x20) pnum(8102) len(29)

 Stream #0 pid(0xda2) type(audio-mp2-layer[1,2,3]  0x4)
  ISO-639 Language: code(eng) canonical(eng) eng(English)
 Stream #1 pid(0xd02) type(video-mpeg2  0x2)

2006-09-19 13:21:18.011 PMT for output stream
2006-09-19 13:21:18.011 Program Map Table ver(24) pid(0x20) pnum(1) len(23)

 Stream #0 pid(0xd02) type(video-mpeg2  0x2)
 Stream #1 pid(0xda2) type(audio-mp2-layer[1,2,3]  0x4)

2006-09-19 13:21:18.011 SM(0)::AddFlags: Seen(PMT,) Match() Wait()
2006-09-19 13:21:18.011 DTVSM(0) Error: Wrong PMT; pmt->pn(8108) desired(8102)

To me, this suggests that all the PMTs are on PID 0x20. Myth seems to be getting confused that it is seeing PMTs for more than one program on the same PID. It does see the correct PMT after reading all the unexpected ones and appears to proceed, but then again sees the unexpected PMTs and gets stuck in a loop. This contrasts with my DVB-T feed, where I find that the PMTs are all on separate PIDS equal to the program number, and this works ok.

Is this is myth getting confused, or is this stream is non-compliant? Should all the PMTs be on separate PIDs? Regardless, would a plausable fix be to have myth filter out any PMTs that it is not expecting to see, and only generate an error state if it does not see the one that it is expecting?

Regards,

Rob

Attachments (1)

si_error.log (37.4 KB) - added by rob@… 13 years ago.

Download all attachments as: .zip

Change History (12)

comment:1 in reply to:  description Changed 13 years ago by anonymous

Replying to rob@robjones.org:

I'm having trouble getting myth 0.2 (release) to play ball with my DVB-C cable feed.

I'd suggest upgrading to a more recent version. :)

comment:2 Changed 13 years ago by rob@…

Still does it under 0.2-fixes. Will try again under SVN.

comment:3 Changed 13 years ago by anonymous

I think the comment is actually a joke about your use of 0.2 rather than 0.20!

It's not a decimal, it's a version number, and therefore needs the trailing zero.

comment:4 Changed 13 years ago by rob@…

Quite right - it's been a long day!

Anyway, apparently, yes it is legal to have more than one PMT per PID.

comment:5 Changed 13 years ago by rob@…

also fails to tune under current SVN (11252)

comment:6 Changed 13 years ago by Stuart Auchterlonie

Component: mythtvdvb
Milestone: unknown0.21
Owner: changed from Isaac Richards to Stuart Auchterlonie
Priority: majorminor

comment:7 Changed 13 years ago by Janne <janne-mythtv@…>

Summary: Error tuning dvb when more than one PMT on a PIDDVB tuning failure

MythTV has no problem with more than one PMT on one PID. The tuning failure is somewhere else.

Please attach further parts from your log. The part you posted looks fine.

comment:8 Changed 13 years ago by Stuart Auchterlonie

Lets see the whole log file please.

And can you be a little more specific than "having trouble getting myth to play ball"

what do you see when you try to tune to the channel? etc etc

Changed 13 years ago by rob@…

Attachment: si_error.log added

comment:9 Changed 13 years ago by rob@…

ok, added the log.

The item of issue is the recording on dvb encoder 0. As far as I can see, it gets as far as PSI/SI parsing, and sees the PMT for the service, but never gets as far as recording; there is no mpeg data written to disk. The recording was started as a manual recording, remotely, from mythweb. Recordings attempted in the same way on encoders 2/3 (DVB-T cards) are successful.

Hope that helps,

Rob

comment:10 Changed 13 years ago by rob@…

Sorry, please close this ticket - not a fault. I saw that the message:

2006-09-19 13:21:18.011 SM(0)::AddFlags?: Seen(SDT,) Match() Wait()

kept recurring - this pointed me to look whether the correct network/transport ids were set for the channel. They were not, hence the parser kept looking for them.

comment:11 Changed 13 years ago by Stuart Auchterlonie

Resolution: invalid
Status: newclosed

Closing, incorrect setup.

Note: See TracTickets for help on using tickets.