Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: second language is not recorded



Klaus Schmidinger wrote:
André Weidemann wrote:

Klaus Schmidinger wrote:


Check your log file ...

Klaus


Taking a look at the log files I can see the pids being changed:

Aug 24 23:19:59 video vdr[1586]: changing pids of channel 59 from
2047+2047:2048=deu:0 to 2047+2047:2048=deu,2049=deu:0

But I cannot see the recording beeing restarted.

This code in VDR/vdr.c is supposed to do this in the call to
cRecordControls::ChannelDataModified(Channel):

        // Handle channel modifications:
        if (!Channels.BeingEdited() && Channels.Modified()) {
           if (Channels.Lock(false, 100)) {
              Channels.Save(); //XXX only after user changes???
              Timers.Save();
              for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
                  if (Channel->Modification(CHANNELMOD_RETUNE)) {
                     cRecordControls::ChannelDataModified(Channel);
                     if (Channel->Number() == cDevice::CurrentChannel()) {
                        if (!cDevice::PrimaryDevice()->Replaying() || cTransferControl::ReceiverDevice()) {
                           if (cDevice::ActualDevice()->ProvidesTransponder(Channel)) { // avoids retune on devices that don't really access the transponder
                              isyslog("retuning due to modification of channel %d", Channel->Number());
                              Channels.SwitchTo(Channel->Number());
                              }
                           }
                        }
                     }
                  }
              Channels.Unlock();
              }
           }

You could add some debug output here to see what's going wrong.


PS: I can send you the logs if you like to.

Well, if there is no entry like

  stopping recording due to modification of channel ...

apparently the above code didn't do what it's supposed to.
I don't think I would see anything else in the logs...

Klaus


I dug a little bit more today to figure out the cause of the problem.

And I belive that this method in device.c is causing it:

bool cDevice::ProvidesTransponder(const cChannel *Channel) const
{
return false;
}

So this line:
"if (cDevice::ActualDevice()->ProvidesTransponder(Channel)) {"
in vdr.c makes no sense at all.

Is this ment to be so or is the method ProvidesTransponder(const cChannel *Channel) still to be written?

Have a nice weekend.
André




Home | Main Index | Thread Index