summaryrefslogtreecommitdiff
path: root/libavdevice/alsa-audio-enc.c
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2011-06-30 19:46:02 +0200
committerNicolas George <nicolas.george@normalesup.org>2011-07-01 09:49:32 +0200
commit84c2d8af135695e829fb5ce5e8569d02678550a8 (patch)
tree9c5bed97d42998bd9fb1be878c09bd379bbcabb0 /libavdevice/alsa-audio-enc.c
parentb442ca69d9d3cc50f00b43a25b200631cfb1e9ec (diff)
ALSA: implement get_output_timestamp.
Diffstat (limited to 'libavdevice/alsa-audio-enc.c')
-rw-r--r--libavdevice/alsa-audio-enc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libavdevice/alsa-audio-enc.c b/libavdevice/alsa-audio-enc.c
index 22a1ea7ff6..0da22bb070 100644
--- a/libavdevice/alsa-audio-enc.c
+++ b/libavdevice/alsa-audio-enc.c
@@ -102,6 +102,17 @@ static int audio_write_packet(AVFormatContext *s1, AVPacket *pkt)
return 0;
}
+static void
+audio_get_output_timestamp(AVFormatContext *s1, int stream,
+ int64_t *dts, int64_t *wall)
+{
+ AlsaData *s = s1->priv_data;
+ snd_pcm_sframes_t delay = 0;
+ *wall = av_gettime();
+ snd_pcm_delay(s->h, &delay);
+ *dts = s1->streams[0]->cur_dts - delay;
+}
+
AVOutputFormat ff_alsa_muxer = {
"alsa",
NULL_IF_CONFIG_SMALL("ALSA audio output"),
@@ -113,5 +124,6 @@ AVOutputFormat ff_alsa_muxer = {
audio_write_header,
audio_write_packet,
ff_alsa_close,
+ .get_output_timestamp = audio_get_output_timestamp,
.flags = AVFMT_NOFILE,
};