|
@@ -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,
|
|
|
};
|