[mythtv-commits] Ticket #2425: Error tuning dvb when more than one PMT on a PID
MythTV
mythtv at cvs.mythtv.org
Tue Sep 19 12:43:42 UTC 2006
#2425: Error tuning dvb when more than one PMT on a PID
------------------------------+---------------------------------------------
Reporter: rob at robjones.org | Owner: ijr
Type: defect | Status: new
Priority: major | Milestone: unknown
Component: mythtv | Version: 0.20
Severity: medium |
------------------------------+---------------------------------------------
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
--
Ticket URL: <http://cvs.mythtv.org/trac/ticket/2425>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list