precise stream timing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



'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/]



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux