[mythtv] DVB Patch 2.0, DVB-S, segfault while tuning
Michael Krax
mk-mythtv at krax.net
Tue Nov 16 17:22:30 UTC 2004
Hi everybody,
these days I went through installing mythtv on my machines -- great
software. While reading up on the developers mailing list, I discovered
the DVB Patch by Taylor Jacob et al. and decided to give it a try.
My setup: master backend running on my general server, without a tuner
card; tuner card in second machine (K6 400) is a Hauppauge Nova S PCI
(sold here as a special edition in our local hardware 'outlet') with a
Philips Semiconductors SAA7146; kernel is 2.4.27 (debian out of the
box), the card works well with mythtv 0.16. It was also recognized by
CVS+DVB-Patch-2.0. (To watch, I use a third machine -- this is my test
setup.)
Result: mythbackend starts, tries to tune to startchan, which is done
successfully. If I start to watch TV on the third machine (only on this
machine), mythtv segfaults. This is with mythtv out of cvs (yesterday)
and DVB-Patch 2.0 (http://www.digitalregime.com/mythdvb/)
Debug: mythbackend crashes in dvbchannel.cpp:TuneTransport (around line
1270, see diff attached), because siparser is NULL (which is set to NULL
in DVBChannel::CloseDVB, called after the initial tuning). I added the
lines as in the attached patch, and now it works. Perhaps those should
be put in a specific method.
I'm puzzled 'cause the debug line I inserted never appears. -- I hope
it's not complete bs I'm telling you (or perhaps it is called only one
time, and I overlooked it?).
Other problem, which I didn't investigate further on: full scanning
works, but does not find all channels (perhaps I aborted too early?)
Being in Germany, my setup is the general Astra 19E setup. I can provide
some of the frequencies which were apparently not searched ... but
manually adding those by scanning a specific transporter worked.
'Cause this is my first posting to the mailing list: a big thank you to
all of you who contributed to make mythtv what it is ...
Michael
BTW : To gather epg data, I run a backgrounded process combination of
tv_grab_dvb and mythfilldatabase, which works just fine (till
mythtv+DVB-Patch can do this...)
-------------- next part --------------
--- dvbchannel.cpp~ 2004-11-15 17:43:27.000000000 +0100
+++ dvbchannel.cpp 2004-11-16 10:10:49.000000000 +0100
@@ -1266,6 +1266,13 @@
}
// Reset the SIParser class, and request the new Program Map
+ if (!siparser) {
+ /* in DVB channel close siparser is deleted */
+ siparser = new DVBSIParser(cardnum);
+ pthread_create(§ionreader_thread, NULL, SpawnSectionReader, siparser);
+ pthread_create(&siparser_thread, NULL, SpawnSIParser, siparser);
+ CHANNEL("DVB SI Parser created (mk)");
+ }
siparser->Reset();
if (channel.sistandard == "ATSC")
siparser->SetSIStandard(SI_STANDARD_ATSC);
More information about the mythtv-dev
mailing list