Raymond, > How accurate are the hwptr playback/capture position ? > > e,g, USB audio send in URB packet > > the position is only updated in one ms There is a chance to update the position every 2 msec. But it differ depending on sampling rate, size of period and streaming mode. > Pulseaudio use snd_pcm_rewind the application ptr and rewrite the data > > do the firewire driver allow application to cancel some submitted > packets and resend ? No. Once the packets are queued, the drivers can't cancel to transfer them. This is the same as existed firewire drivers for iSight, Griffin and LaCie. Not newly for my drivers. > Do you mean firewire driver 's pcm_pointer callback does not report > playback/capture positon in realtime ? Within the 2 msec, I mean it. > there is alway one packet 's uncertainty > > are the any minimum size of the packet ? > > e.g. usb audio send in urb There is uncertainty. But not one packet. Every 2 msec, the drivers queue some packets for transferring. So uncertainty is the number of the packets. Currently this number is fixed by 16. See 'INTERRUPT_INTERVAL' macro in 'amdtp.c'. (In IEE1394, 8000 packets are transferred per sec. So 16 packets equal 2 msec.) > you can add rule to force pulseaudio ignore all firewire cards similar > to thinkpad_acpi Yes. It's one of solutions for this issue. > if the devices have hardware mixer , there is no point to use software > mixing No. the devices can handle one PCM stream with some channels. Then several applications cannot handle the same PCM device. There is still a need to use software mixing. Thanks Takashi Sakamoto o-takashi at sakamocchi.jp