[pulseaudio-discuss] PulseAudio Simple API exact timestamps
Seeser
seeser at in.tum.de
Thu Sep 26 04:58:51 PDT 2013
ffmpeg and libav are using the simple api. Please take a look at:
https://github.com/FFmpeg/FFmpeg/blob/master/libavdevice/pulse.c
https://github.com/libav/libav/blob/master/libavdevice/pulse.c
Unfortunately the audio sample rate is not synchronized to the wallclock.
For live streaming pulseaudio with another device like x11grab this is
quite essential.
Is there a way to get exact timestamps from pulse api?
How would the implementation look like?
peili
static int pulse_read_packet(AVFormatContext *s, AVPacket *pkt)
{
PulseData *pd = s->priv_data;
int res;
pa_usec_t latency;
*pkt->pts = GET EXACT TIMESTAMP (); // TODO*
if (av_new_packet(pkt, pd->frame_size) < 0) {
return AVERROR(ENOMEM);
}
if ((pa_simple_read(pd->s, pkt->data, pkt->size, &res)) < 0) {
av_log(s, AV_LOG_ERROR, "pa_simple_read failed: %s\n",
pa_strerror(res));
av_free_packet(pkt);
return AVERROR(EIO);
}
if ((latency = pa_simple_get_latency(pd->s, &res)) == (pa_usec_t) -1) {
av_log(s, AV_LOG_ERROR, "pa_simple_get_latency() failed: %s\n",
pa_strerror(res));
return AVERROR(EIO);
}
return 0;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20130926/f93d9aff/attachment.html>
More information about the pulseaudio-discuss
mailing list