device.c: cDevice::GetDevice

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

 



Klaus Schmidinger wrote:
> syrius.ml@xxxxxxxxxx wrote:
> 
>> Anssi Hannula <anssi.hannula@xxxxxxxxx> writes:
>>
>>>> in cDevice::GetDevice (device.c):
>>>>          imp <<= 1; imp |= !device[i]->Receiving() || ndr;
>>>
>>> This is the problem. Devices in transfer-mode return false from
>>> device->Receiving(), so the impact gets increased even with already
>>> tuned devices.
>>>
>>> Attached is a patch that takes transfer-moded devices into account.
>>> Please try it.
>>
>>
>> it seems it corrects it.
> 
> 
> Can you please test whether this also works with
> 
>   imp <<= 1; imp |= !device[i]->Receiving(true) || ndr;
> 
> instead of
> 
>   imp <<= 1; imp |= !device[i]->Receiving() && device[i] !=
> cTransferControl::ReceiverDevice() || ndr;
> 
> 
> @Anssi: is there a particular reason why you have limited this to
>         devices in Transfer-Mode? With Receiving(true) it would check
>         if there is _any_ receiver attached to that device. This would also
>         cover other streaming clients.

Not really, I just didn't think of Receiving(true) at the time :/
Yep, it is probably better to use Receiving(true), so that all priority
-1 receivers will match.

Note that streaming clients are already caught with Receiving() as afaik
their priority is >= 0, so this modification will only affect
transfer-mode and other receivers with priority -1.


-- 
Anssi Hannula



[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux