Re: [vdr] [PATCH] re-use devices in transfer mode

2007-04-29 Thread Klaus Schmidinger
On 04/21/07 16:26, Anssi Hannula wrote:
 Udo Richter wrote:
 Anssi Hannula wrote:
 However, the usual use-already-tuned-devices check in GetDevice() only
 checks for device-Receiving(), which does not report transfer-moded
 device, resulting in the new receiver being started on second device,
 thus both devices being reserved for receiving data from the same
 transponder.
 Without taking a deeper look into it right now, I think there was some
 trap with detecting transfer mode in case that some streams are received
 additionally to live mode, for example teletext with osdteletext plugin.
 You may want to double-check this. Changes to GetDevice tend to have
 strange side effects.
 
 I proposed this same patch previously, but it was suggested to instead
 of the check for transfer mode to just change the Receiving() to
 Receiving(true). I didn't see any caveats back then, so I agreed.
 Unfortunately, that resulted in problems with situations that you describe.
 
 However, this original version of the patch does explicitely check for a
 device in transfer-mode, and does not care about osdteletext receivers.
 
 What could happen is that this would match the transfer modes whose
 receiverdevice() is the primary device itself (some situations related
 to the ca or ac3, I guess), thus starting the new receiver in the
 primary device, which could cause side-effects if the card's bandwidth
 is not wide enough. However, even without this patch, when a recording
 is already taking place on the primary device, this rule matches and
 another recording could be started on the primary device. I don't know
 if we should be preventing these from happening, but if we do, I think
 we could make the rule as
 imp |= !device[i]-Receiving()  (device[i] !=
 cTransferControl::ReceiverDevice() || device[i]-IsPrimaryDevice()) ||
 ndr // prevents matching local-transfer-moded primary-device
 or
 imp |= !device[i]-Receiving()  device[i] !=
 cTransferControl::ReceiverDevice() || device[i]-IsPrimaryDevice() ||
 ndr // addidtionally prevents matching recording primary-devices

I'm not sure about changing anything in that area in any 1.4 maintenance patch.

If this gets changed at all, it will be in the 1.5 developer version.
So please provide a patch for that version, possibly including all the
thoughts that have come up in this thread.

Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [PATCH] re-use devices in transfer mode

2007-04-21 Thread Udo Richter

Anssi Hannula wrote:

However, the usual use-already-tuned-devices check in GetDevice() only
checks for device-Receiving(), which does not report transfer-moded
device, resulting in the new receiver being started on second device,
thus both devices being reserved for receiving data from the same
transponder.


Without taking a deeper look into it right now, I think there was some 
trap with detecting transfer mode in case that some streams are received 
additionally to live mode, for example teletext with osdteletext plugin. 
You may want to double-check this. Changes to GetDevice tend to have 
strange side effects.


Cheers,

Udo


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [PATCH] re-use devices in transfer mode

2007-04-21 Thread Stone

Anssi Hannula wrote:
 However, the usual use-already-tuned-devices check in GetDevice() only
 checks for device-Receiving(), which does not report transfer-moded
 device, resulting in the new receiver being started on second device,
 thus both devices being reserved for receiving data from the same
 transponder.



Can this patch also be applied to vdr-1.5.1 with a little manual fixing?
Thanks.
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [PATCH] re-use devices in transfer mode

2007-04-21 Thread Anssi Hannula
Udo Richter wrote:
 Anssi Hannula wrote:
 However, the usual use-already-tuned-devices check in GetDevice() only
 checks for device-Receiving(), which does not report transfer-moded
 device, resulting in the new receiver being started on second device,
 thus both devices being reserved for receiving data from the same
 transponder.
 
 Without taking a deeper look into it right now, I think there was some
 trap with detecting transfer mode in case that some streams are received
 additionally to live mode, for example teletext with osdteletext plugin.
 You may want to double-check this. Changes to GetDevice tend to have
 strange side effects.

I proposed this same patch previously, but it was suggested to instead
of the check for transfer mode to just change the Receiving() to
Receiving(true). I didn't see any caveats back then, so I agreed.
Unfortunately, that resulted in problems with situations that you describe.

However, this original version of the patch does explicitely check for a
device in transfer-mode, and does not care about osdteletext receivers.

What could happen is that this would match the transfer modes whose
receiverdevice() is the primary device itself (some situations related
to the ca or ac3, I guess), thus starting the new receiver in the
primary device, which could cause side-effects if the card's bandwidth
is not wide enough. However, even without this patch, when a recording
is already taking place on the primary device, this rule matches and
another recording could be started on the primary device. I don't know
if we should be preventing these from happening, but if we do, I think
we could make the rule as
imp |= !device[i]-Receiving()  (device[i] !=
cTransferControl::ReceiverDevice() || device[i]-IsPrimaryDevice()) ||
ndr // prevents matching local-transfer-moded primary-device
or
imp |= !device[i]-Receiving()  device[i] !=
cTransferControl::ReceiverDevice() || device[i]-IsPrimaryDevice() ||
ndr // addidtionally prevents matching recording primary-devices


-- 
Anssi Hannula


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [PATCH] re-use devices in transfer mode

2007-04-21 Thread Anssi Hannula
Stone wrote:
 
 Anssi Hannula wrote:
  However, the usual use-already-tuned-devices check in
 GetDevice() only
  checks for device-Receiving(), which does not report transfer-moded
  device, resulting in the new receiver being started on second device,
  thus both devices being reserved for receiving data from the same
  transponder.
 
 
 Can this patch also be applied to vdr-1.5.1 with a little manual
 fixing?  Thanks.

I think so, by modifying line 330:
 imp = 1; imp |= !device[i]-Receiving() || ndr;
to
 imp = 1; imp |= !device[i]-Receiving()  device[i] !=
cTransferControl::ReceiverDevice() || ndr;

-- 
Anssi Hannula


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr