|
|
@ -102,6 +102,17 @@ static int audio_write_packet(AVFormatContext *s1, AVPacket *pkt) |
|
|
|
return 0; |
|
|
|
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 = { |
|
|
|
AVOutputFormat ff_alsa_muxer = { |
|
|
|
"alsa", |
|
|
|
"alsa", |
|
|
|
NULL_IF_CONFIG_SMALL("ALSA audio output"), |
|
|
|
NULL_IF_CONFIG_SMALL("ALSA audio output"), |
|
|
@ -113,5 +124,6 @@ AVOutputFormat ff_alsa_muxer = { |
|
|
|
audio_write_header, |
|
|
|
audio_write_header, |
|
|
|
audio_write_packet, |
|
|
|
audio_write_packet, |
|
|
|
ff_alsa_close, |
|
|
|
ff_alsa_close, |
|
|
|
|
|
|
|
.get_output_timestamp = audio_get_output_timestamp, |
|
|
|
.flags = AVFMT_NOFILE, |
|
|
|
.flags = AVFMT_NOFILE, |
|
|
|
}; |
|
|
|
}; |
|
|
|