Mailing List archive

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

[vdr] Re: VDR 1.2.3 stops playback when a new timer is hit



Klaus Schmidinger wrote:
> 
> Javier Marcet wrote:
> >
> > I've updated my VDR to 1.2.3 (preview or rc at he moment, isn't it?),
> 
> It was a pre-release, but it won't be released officially due to
> several problems.
> 
> > and I have come across an ugly issue.
> > I have a single FF DVB-s 1.3, and until vdr 1.2.2 when I was watching a
> > recording, nothing disturbed it, unless I implicitly stopped the
> > playback. With 1.2.3, however, if a new recording begins (a timer which
> > is started), the playback stops at the same time the channel change for
> > the new recording takes place.
> >
> > Yes, I have a few plugins & patches, but the only thing I changed on my
> > VDR machine this week is the update to 1.2.3, and this never happened
> > with 1.2.2
> > I'll try vanilla if you deem it necessary, though.
> 
> I guess this is a side effect of the change
> 
> - Fixed freezing replay if a timer starts while in Transfer Mode from the device
>   used by the timer, and the timer needs a different transponder
> 
> I'll take another look at this.

I believe this patch against VDR 1.2.3 should fix it.
Could you (or anybody else) please try this out before I pre-release
version 1.2.4 (which I would like to do tonight)?
The modification in dvbdevice.c is not immediately related to
this, but during my tests I saw that there was an unnecessary
stop of an ongoing Transfer Mode, which I figure should be
avoided by this.

Klaus

--- menu.c      2003/08/17 08:52:07     1.268
+++ menu.c      2003/08/24 14:28:44
@@ -25,6 +25,7 @@
 #include "sources.h"
 #include "status.h"
 #include "timers.h"
+#include "transfer.h"
 #include "videodir.h"

 #define MENUTIMEOUT     120 // seconds
@@ -3102,7 +3103,7 @@
      if (device) {
         if (NeedsDetachReceivers) {
            Stop(device);
-           if (device == cDevice::ActualDevice())
+           if (device == cTransferControl::ReceiverDevice())
               cControl::Shutdown(); // in case this device was used for Transfer Mode
            }
         if (!device->SwitchChannel(channel, false)) {
--- dvbdevice.c 2003/08/15 13:03:41     1.61
+++ dvbdevice.c 2003/08/24 14:23:12
@@ -613,13 +613,12 @@
 {
   bool result = false;
   bool hasPriority = Priority < 0 || Priority > this->Priority();
-  bool needsDetachReceivers = true;
+  bool needsDetachReceivers = false;

   if (ProvidesSource(Channel->Source()) && ProvidesCa(Channel->Ca())) {
      result = hasPriority;
      if (Receiving()) {
         if (dvbTuner->IsTunedTo(Channel)) {
-           needsDetachReceivers = false;
            if (!HasPid(Channel->Vpid())) {
 #ifdef DO_MULTIPLE_RECORDINGS
               if (Channel->Ca() > CACONFBASE)
@@ -636,6 +635,8 @@
            else
               result = !IsPrimaryDevice() || Priority >= Setup.PrimaryLimit;
            }
+        else
+           needsDetachReceivers = true;
         }
      }
   if (NeedsDetachReceivers)


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index