Set the MaxIsoPacket field in the endpoint info if the endpoint is
an isochronous endpoint. Use MaxIsoPacket as the iso packet size when preparing the iso transfer.
This commit is contained in:
@@ -37,10 +37,8 @@ func iso_callback(cptr unsafe.Pointer) {
|
||||
}
|
||||
|
||||
func (end *endpoint) allocTransfer() *Transfer {
|
||||
// Use libusb_get_max_iso_packet_size ?
|
||||
const (
|
||||
iso_packets = 8 // 128 // 242
|
||||
packet_size = 2 * 960 // 1760
|
||||
iso_packets = 8 // 128 // 242
|
||||
)
|
||||
|
||||
xfer := C.libusb_alloc_transfer(C.int(iso_packets))
|
||||
@@ -49,7 +47,7 @@ func (end *endpoint) allocTransfer() *Transfer {
|
||||
return nil
|
||||
}
|
||||
|
||||
buf := make([]byte, iso_packets*packet_size)
|
||||
buf := make([]byte, iso_packets*end.EndpointInfo.MaxIsoPacket)
|
||||
done := make(chan struct{}, 1)
|
||||
|
||||
xfer.dev_handle = end.Device.handle
|
||||
@@ -60,7 +58,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, packet_size)
|
||||
C.libusb_set_iso_packet_lengths(xfer, C.uint(end.EndpointInfo.MaxIsoPacket))
|
||||
/*
|
||||
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