[mythtv] Ticket #8979: LiveTV changing channels cause fe crash

Warpme warpme at o2.pl
Fri Oct 8 10:37:04 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:
(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

I know my case might be irrelevant to mythtv as I'm using soft-cam (legally) - but for sure I'm not alone...

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/407e3b9d/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/407e3b9d/attachment.vcf>


More information about the mythtv-dev mailing list