do not delay iso packet queueing
Libraw1394's attempt to optimize away the packet queueing ioctl syscall overhead was a little bit too successful: when used with FFADO's streaming system, it ended up delaying packets after their intended transmission time. For now, to ensure correctness, don't try to optimize anything. This makes FFADO playback on Juju with my DICE work. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
9f2e0dac88
commit
728f538340
|
@ -51,10 +51,8 @@ queue_packet(fw_handle_t handle,
|
||||||
if (handle->iso.head + handle->iso.max_packet_size > handle->iso.buffer_end)
|
if (handle->iso.head + handle->iso.max_packet_size > handle->iso.buffer_end)
|
||||||
handle->iso.head = handle->iso.buffer;
|
handle->iso.head = handle->iso.buffer;
|
||||||
|
|
||||||
/* Queue the packets in the kernel if we filled up the packets
|
/* queue each packet individually */
|
||||||
* array or wrapped the payload buffer. */
|
if (1) {
|
||||||
if (handle->iso.packet_index == handle->iso.irq_interval ||
|
|
||||||
handle->iso.head == handle->iso.buffer) {
|
|
||||||
queue_iso.packets = ptr_to_u64(handle->iso.packets);
|
queue_iso.packets = ptr_to_u64(handle->iso.packets);
|
||||||
queue_iso.size = handle->iso.packet_index * sizeof handle->iso.packets[0];
|
queue_iso.size = handle->iso.packet_index * sizeof handle->iso.packets[0];
|
||||||
queue_iso.data = ptr_to_u64(handle->iso.first_payload);
|
queue_iso.data = ptr_to_u64(handle->iso.first_payload);
|
||||||
|
|
Reference in New Issue