[mythtv] DVB debugging results

Leandro Dardini ldardini at tiscali.it
Mon May 19 23:53:07 EDT 2003


Debugging dvb code, I found two main reasons of why dvb is not playing.

First, in tvrec.cpp, in CheckChannel, read the last line. The
chan->GetCurrentInput(); return "" instead of Television (or what you have
as cardinput in your database). Following GetCurrentInput, it seems
currentcapchannel is -1. I am sorry, but I don't know what is the meaning of
currentcapchannel and where it is initialized (or maybe __not__
initialized).

I forced this assigning "Television" to channelinput. Isaac, don't flame me,
this is __only__ to get past this point.

bool TVRec::CheckChannel(ChannelBase *chan, const QString &channum,
                         QSqlDatabase *&a_db_conn, pthread_mutex_t
&a_db_lock)
{
    if (!db_conn)
        return true;

    a_db_conn = db_conn;
    a_db_lock = db_lock;

    pthread_mutex_lock(&db_lock);
    MythContext::KickDatabase(db_conn);

    bool ret = false;

    QString channelinput = chan->GetCurrentInput();


Second. The polarization value is a string, not an int. Here the patch...

Index: libs/libmythtv/dvbchannel.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/dvbchannel.cpp,v
retrieving revision 1.1
diff -u -d -r1.1 dvbchannel.cpp
--- libs/libmythtv/dvbchannel.cpp       14 May 2003 02:43:29 -0000      1.1
+++ libs/libmythtv/dvbchannel.cpp       19 May 2003 20:45:34 -0000
@@ -258,10 +258,10 @@
     QString option;
     if (dvb_type == DVBChannel::DVB_S)
     {
-        int opt_int = query.value(1).toInt();
-        if (opt_int == 'V' || opt_int == 'v')
+        QString opt_int = query.value(1).toString();
+        if (opt_int == "V" || opt_int == "v")
             s.pol_v = true;
-        else if (opt_int == 'H' || opt_int == 'h')
+        else if (opt_int == "H" || opt_int == "h")
             s.pol_v = false;
         else
             return false;

However, with this patch applied I get:

linux:/usr/local/src/mythtv-cvs/mythtv# mythbackend
Starting up as the master server.
trying to change to channel 1
channel exists
Option:160,80
got tuning parameters
trying to change to freq 11766
Using DVB card "STV0299/TSA5059/SL1935 based"
tuning DVB-S to L-Band:1083107177, Pol:v Srate=27500, 22kHz=on
polling....
Getting frontend event
FE_STATUS: FE_HAS_SIGNAL FE_HAS_CARRIER
polling....
Getting frontend event
FE_STATUS: FE_HAS_SIGNAL FE_TIMEDOUT FE_HAS_CARRIER
Not able to lock to the signal on the given frequency
Tune freq result: -1
tuning failed

I go to bed...

Leandro



More information about the mythtv-dev mailing list