aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2011-02-25 08:48:22 +0100
committerStefan Richter <stefanr@s5r6.in-berlin.de>2011-02-25 18:42:55 +0100
commit728f538340cd926ce0d6d757ccee0c165c9e3722 (patch)
treedcd6e3414216109ae2748d1cce080c9248e0b0a0
parent9f2e0dac8852ff661184c2cb8224a9ef0402c25e (diff)
downloadlibraw1394-728f538340cd926ce0d6d757ccee0c165c9e3722.tar.gz
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>
-rw-r--r--src/fw-iso.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/fw-iso.c b/src/fw-iso.c
index 253ce1d..ce1a891 100644
--- a/src/fw-iso.c
+++ b/src/fw-iso.c
@@ -51,10 +51,8 @@ queue_packet(fw_handle_t handle,
if (handle->iso.head + handle->iso.max_packet_size > handle->iso.buffer_end)
handle->iso.head = handle->iso.buffer;
- /* Queue the packets in the kernel if we filled up the packets
- * array or wrapped the payload buffer. */
- if (handle->iso.packet_index == handle->iso.irq_interval ||
- handle->iso.head == handle->iso.buffer) {
+ /* queue each packet individually */
+ if (1) {
queue_iso.packets = ptr_to_u64(handle->iso.packets);
queue_iso.size = handle->iso.packet_index * sizeof handle->iso.packets[0];
queue_iso.data = ptr_to_u64(handle->iso.first_payload);