[mythtv] Current SVN DVB-S zapping problems (diseqc?)

Yeasah Pell yeasah at schwide.com
Thu Aug 31 12:43:23 UTC 2006


Lukas Kasprowicz wrote:
> Am Donnerstag, 31. August 2006 14:00 schrieb Yeasah Pell:
>   
>> Lukas Kasprowicz wrote:
>>     
>>> With no double lines it does work. How to add the delay prior to the
>>> first tune?
>>>       
>> Excellent!
>>
>> You'll want to do this change to version 10132 (the broken one), in
>> hopes that it will make it work without retuning.
>>
>> All you need to do is to put a sleep in on line 731 of dvbchannel.cpp --
>> right before the block of code that does the tuning command (i.e. where
>> the comment "// Adjust for Satelite recievers which offset the
>> frequency." is)
>>
>> Start with "usleep( 10000 * 1000 );" -- that will be 10 seconds, an
>> eternity, but it's the same as the retune timer so it has the best
>> chance of working.
>>     
>
> This does not work with 10132. Same like before changes.
>
> Only to check if we were doing the same things:
>
> --- libs/libmythtv/dvbchannel.cpp       2006-08-31 14:20:47.000000000 +0200
> +++ libs/libmythtv/dvbchannel.cpp.new   2006-08-31 14:19:04.000000000 +0200
> @@ -713,7 +713,8 @@
>      drain_dvb_events(fd_frontend);
>
>      // Send DisEq commands to external hardware if we need to.
> -    if (has_diseq && !handle_diseq(tuning, diseqc, reset))
> +    //if (has_diseq && !handle_diseq(tuning, diseqc, reset))
> +    if (!force_reset && has_diseq && !handle_diseq(tuning, diseqc, reset))
>   
Well, you don't need that change in 10132, it was just to disable the 
diseqc on retunes in 10131 (there's no retunes at all in 10132) -- but 
it shouldn't really hurt either.
>      {
>          VERBOSE(VB_IMPORTANT, LOC_ERR + "Tune(): "
>                  "Failed to transmit DisEq commands");
> @@ -728,6 +729,7 @@
>
>      if (reset || !prev_tuning.equal(info.type, tuning, 500000))
>      {
> +       usleep( 10000 * 1000 );
>          // Adjust for Satelite recievers which offset the frequency.
>          params.frequency = tuned_frequency(tuning, info.type, NULL);
>   
Hmm... try adding "params.frequency -= 10;" right after this last line. 
I totally missed the fact that the older of the two retune 
implementations diddles with the frequency slightly. It goes either 
+/-10 (that's kHz, not much at all), and I confirmed from your working 
log that it's on the minus phase when it works. That amount of 
deflection shouldn't really have an impact given the searching 
capabilities your card/driver should have, but if it's a very marginal 
frequency it could be just the extra edge you need to put you within 
range of the acquisition loop.

You could also just adjust the frequency in your dtv_multiplex table of 
course.


More information about the mythtv-dev mailing list