Revert "Use the calculated max iso packet size."
The libusb_get_max_iso_packet_size ignores the endpoint information and
will return the same size for all endpoints, even if the current
alternative configuration does not support given size.
This reverts commit a6e284610b
.
This commit is contained in:
19
usb/iso.go
19
usb/iso.go
@@ -37,8 +37,10 @@ func iso_callback(cptr unsafe.Pointer) {
|
||||
}
|
||||
|
||||
func (end *endpoint) allocTransfer() *Transfer {
|
||||
// Use libusb_get_max_iso_packet_size ?
|
||||
const (
|
||||
iso_packets = 8 // 128 // 242
|
||||
iso_packets = 8 // 128 // 242
|
||||
packet_size = 2 * 960 // 1760
|
||||
)
|
||||
|
||||
xfer := C.libusb_alloc_transfer(C.int(iso_packets))
|
||||
@@ -46,22 +48,11 @@ func (end *endpoint) allocTransfer() *Transfer {
|
||||
log.Printf("usb: transfer allocation failed?!")
|
||||
return nil
|
||||
}
|
||||
handle := end.Device.handle
|
||||
dev := C.libusb_get_device(handle)
|
||||
packet_size := C.libusb_get_max_iso_packet_size(dev, C.uchar(end.Address))
|
||||
switch packet_size {
|
||||
case C.LIBUSB_ERROR_NOT_FOUND:
|
||||
log.Printf("usb: get_max_iso_packet_size: endpoint does not exist")
|
||||
return nil
|
||||
case C.LIBUSB_ERROR_OTHER:
|
||||
log.Printf("usb: get_max_iso_packet_size: unknown failure")
|
||||
return nil
|
||||
}
|
||||
|
||||
buf := make([]byte, iso_packets*packet_size)
|
||||
done := make(chan struct{}, 1)
|
||||
|
||||
xfer.dev_handle = handle
|
||||
xfer.dev_handle = end.Device.handle
|
||||
xfer.endpoint = C.uchar(end.Address)
|
||||
xfer._type = C.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS
|
||||
|
||||
@@ -69,7 +60,7 @@ func (end *endpoint) allocTransfer() *Transfer {
|
||||
xfer.length = C.int(len(buf))
|
||||
xfer.num_iso_packets = iso_packets
|
||||
|
||||
C.libusb_set_iso_packet_lengths(xfer, C.uint(packet_size))
|
||||
C.libusb_set_iso_packet_lengths(xfer, packet_size)
|
||||
/*
|
||||
pkts := *(*[]C.struct_libusb_packet_descriptor)(unsafe.Pointer(&reflect.SliceHeader{
|
||||
Data: uintptr(unsafe.Pointer(&xfer.iso_packet_desc)),
|
||||
|
Reference in New Issue
Block a user