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