[mythtv] Ticket #8979: LiveTV changing channels cause fe crash
Warpme
warpme at o2.pl
Fri Oct 8 10:06:16 UTC 2010
Hi,
#8979 is resolved. Thx for that.
It looks like it was symptom of my other problem: failed LiveTV if
browsing next program within the same mplex.
Situation:
I have 2xDVB-S2 and paid, legal subscription to sat. I'm using soft-cam.
For having reliable multirecord (scenario when myth records prog1/mplex1
and I want to watch prog2/mplex1), my soft-cam needs tune every time
when LiveTV starts (even if it is tuning to already tuned transponder).
Code change is following:
diff -Naur mythtv-0.24-26493-old/mythtv/libs/libmythtv/dvbchannel.cpp
mythtv-0.24-26493-new/mythtv/libs/libmythtv/dvbchannel.cpp
--- mythtv-0.24-26493-old/mythtv/libs/libmythtv/dvbchannel.cpp
2010-09-24 19:24:56.000000000 +0200
+++ mythtv-0.24-26493-new/mythtv/libs/libmythtv/dvbchannel.cpp
2010-09-26 16:55:26.000000000 +0200
@@ -827,11 +827,10 @@
if (reset || !prev_tuning.IsEqual(tunerType, tuning, 500 * freq_mult))
{
- VERBOSE(VB_CHANNEL, LOC + QString("Tune(): Tuning to %1%2")
+ VERBOSE(VB_CHANNEL, LOC + QString("New Tune(): Tuning to %1%2")
.arg(intermediate_freq ? intermediate_freq :
tuning.frequency)
.arg(suffix));
-#if DVB_API_VERSION >=5
if (DTVTunerType::kTunerTypeDVBS2 == tunerType)
{
struct dtv_property p_clear;
@@ -880,7 +879,6 @@
}
}
else
-#endif
{
struct dvb_frontend_parameters params =
dtvmultiplex_to_dvbparams(
tunerType, tuning, intermediate_freq, can_fec_auto);
@@ -902,6 +900,46 @@
prev_tuning = tuning;
first_tune = false;
}
+ else
+ {
+ VERBOSE(VB_CHANNEL, LOC + QString("ReTune(): Tuning to %1%2")
+ .arg(intermediate_freq ? intermediate_freq :
tuning.frequency)
+ .arg(suffix));
+
+ if (DTVTunerType::kTunerTypeDVBS2 == tunerType)
+ {
+ struct dtv_properties *cmds = dtvmultiplex_to_dtvproperties(
+ tunerType, tuning, intermediate_freq, can_fec_auto);
+
+ if (!cmds) {
+ VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to convert "
+ "DTVMultiplex to DTV_PROPERTY sequence");
+ return false;
+ }
+
+ if (VERBOSE_LEVEL_CHECK(VB_CHANNEL|VB_EXTRA))
+ {
+ for (uint i = 0; i < cmds->num; i++)
+ {
+ VERBOSE(VB_CHANNEL, QString("prop %1: cmd = %2,
data %3")
+ .arg(i).arg(cmds->props[i].cmd)
+ .arg(cmds->props[i].u.data));
+ }
+ }
+
+ int res = ioctl(fd_frontend, FE_SET_PROPERTY, cmds);
+
+ free(cmds->props);
+ free(cmds);
+
+ if (res < 0)
+ {
+ VERBOSE(VB_IMPORTANT, LOC_ERR + "Tune(): " +
+ "Setting Frontend retuning parameters failed."
+ ENO);
+ return false;
+ }
+ }
+ }
SetSIStandard(tuning.sistandard);
Now what is interesting about failed LiveTV with browsing next program
within the same mplex:
(assume myth recording prog1/mplex1)
1.it is reliable when I jump from none->liveTv prog2/mplex1
(prog1/mplex1 is recording in background)
2.it crashes when I change from prog2/mplex1->prog3/mplex1 (prog1/mplex1
is recording in background)
Above shows me that tuning to already tuned transponder shouldn't be
root cause (as 1 is really reliable).
Reliability in case 2 is little correlated to tuning aspect - as with
original myth tuning code reliability is better (failed 1 per 5..10)
while with mod it is almost every time.
I'm attaching fe/be logs from scenario:
-livetv prog1/mplex1 plays
-change livetv prog1/mplex1->prog2/mplex1
br
On 10/8/10 11:31 AM, MythTV wrote:
> #8979: LiveTV changing channels cause fe crash
> -------------------------------------+--------------------------------------
> Reporter: warpme@… | Owner: markk
> Type: defect | Status: assigned
> Priority: minor | Milestone: unknown
> Component: MythTV - Video Playback | Version: Trunk Head
> Severity: medium | Resolution:
> Keywords: | Ticket locked: 0
> -------------------------------------+--------------------------------------
>
> Comment (by warpme@…):
>
> Robert, Mark
>
> Thx. No more FE crashes. We can close ticket. Unfortunately Mark is right:
> FE crash is a symptom more general problem with my LiveTV. I'll move to
> commits mailing-list for details.
> thx
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log.tar.gz
Type: application/gzip
Size: 22420 bytes
Desc: not available
URL: <http://mythtv.org/pipermail/mythtv-dev/attachments/20101008/547beb95/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: warpme.vcf
Type: text/x-vcard
Size: 89 bytes
Desc: not available
URL: <http://mythtv.org/pipermail/mythtv-dev/attachments/20101008/547beb95/attachment.vcf>
More information about the mythtv-dev
mailing list