'Twas brillig, and Matt Robbins at 02/06/11 16:33 did gyre and gimble: > Hello Pulseaudio community, > > I'm playing around with pulse to assess suitability for my project, and > while it seems like I should be able to do what I want, I'm struggling > with the API. Essentially, I need to record audio data with precise > (~1ms) time stamps. I'm doing collaborative sound source localization > between several machines, all synced to gps time. Since I don't really > need sample-accurate time, I figured it would be acceptable to call > gettimeofday() on ALSA interrupts to get a pretty good idea of when the > samples were recorded. Since all of the machines will be using the same > hardware, I don't even care if there's some fixed latency involved. > While doing this in ALSA would be an interesting project, when combined > with some the other things I need to do (stream splitting, fixed-point > resampling, etc.), it feels like I'd be reinventing the wheel. I've > been using JACK to accomplish what I need, but there are stability and > support issues on the embedded systems I'm using, so I'm looking into > alternatives, especially since the recent headless ubuntu release, which > has a working pulse server by default :) > > I've tried cobbling something together using the pacat.c source using > pa_stream_set_read_callback(). My callback gets called, but although I > call pa_stream_get_timing_info(), I can't see how to derive the > information I need from the pa_timing_info struct because I can't see > how the timestamp field is related to the current fragment. > > I'm not even sure if I'm going about this the right way, so if anyone > who knows the system could give me a few pointers, I'd really appreciate it. I suspect you want to use: pa_stream_get_time(). This returns the usecs since the stream started... this is likely what you want (IIUC). Cheers Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited [http://www.tribalogic.net/] Open Source: Mageia Contributor [http://www.mageia.org/] PulseAudio Hacker [http://www.pulseaudio.org/] Trac Hacker [http://trac.edgewall.org/]