4.3. Stopping and Starting

Once the isochronous operation has been initialized, you may start and stop packet transmission with raw1394_iso_xmit/recv_start() and raw1394_iso_stop(). It is legal to call these as many times as you want, and it is permissible to start an already-started stream or stop an already-stopped stream. Packets that have been queued for transmission or reception will remain queued when the operation is stopped.

raw1394_iso_xmit/recv_start() allow you to specify on which isochronous cycle number to start transmitting or receiving packets. Pass -1 to start immediately. This parameter is ignored if isochronous transmission or reception is already in progress.

raw1394_iso_xmit_start() has an additional parameter, prebuffer_packets, which specifies how many packets to queue up before starting transmission. Possible values range from zero (start transmission immediately after the first packet is queued) up to the total number of packets in the buffer.

Once the isochronous operation has started, you must repeatedly call raw1394_loop_iterate() as usual to drive packet processing.