Project

General

Profile

Bug #3591

No Way To Detect Occasional Failed Bulk Transfers

Added by xloem about 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
09/25/2018
Due date:
% Done:

0%


Description

The libusb callback ( http://git.osmocom.org/rtl-sdr/tree/src/librtlsdr.c?id=a854ae8b48d42e8dad514c75d3a4c6cfb62707da#n1697 ) detects when a transfer is failed, and increments a count. It presumes a failed transfer indicates the device has been removed, and waits for all transfers to fail.

There is no accommodation for intermittent failures, which I'm assuming are theoretically possible. In such a case, the number of buffers active would drop by the number of failures, and after enough failures had accumulated, the device would be assumed missing when it was actually still there. Most notably, the callback is never informed in the case of failed transfers, which are important for stream integrity.

I think it would be good to at least inform the callback when a buffer was not received, perhaps by passing a length of 0. This behavior could be toggled with an option.

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)