[FFmpeg-devel] [PATCH 2/2] avdevice/pulse_audio_enc: add support for flushing
Stefano Sabatini
stefasab at gmail.com
Sat Oct 19 00:03:10 CEST 2013
On date Friday 2013-10-18 23:41:20 +0200, Lukasz Marek encoded:
> Signed-off-by: Lukasz Marek <lukasz.m.luki at gmail.com>
> ---
> libavdevice/pulse_audio_enc.c | 14 ++++++++++----
> 1 file changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/libavdevice/pulse_audio_enc.c b/libavdevice/pulse_audio_enc.c
> index 0a3aa1a..5343696 100644
> --- a/libavdevice/pulse_audio_enc.c
> +++ b/libavdevice/pulse_audio_enc.c
> @@ -98,14 +98,20 @@ static av_cold int pulse_write_trailer(AVFormatContext *h)
> static int pulse_write_packet(AVFormatContext *h, AVPacket *pkt)
> {
> PulseData *s = h->priv_data;
> - int size = pkt->size;
> - uint8_t *buf = pkt->data;
> int error;
>
> + if (!pkt) {
> + if (pa_simple_flush(s->pa, &error) < 0) {
> + av_log(s, AV_LOG_ERROR, "pa_simple_flush failed: %s\n", pa_strerror(error));
> + return AVERROR(EIO);
> + }
> + return 0;
> + }
> +
> if (s->stream_index != pkt->stream_index)
> return 0;
>
> - if (pa_simple_write(s->pa, buf, size, &error) < 0) {
> + if (pa_simple_write(s->pa, pkt->data, pkt->size, &error) < 0) {
> av_log(s, AV_LOG_ERROR, "pa_simple_write failed: %s\n", pa_strerror(error));
> return AVERROR(EIO);
> }
> @@ -149,6 +155,6 @@ AVOutputFormat ff_pulse_muxer = {
> .write_packet = pulse_write_packet,
> .write_trailer = pulse_write_trailer,
> .get_output_timestamp = pulse_get_output_timestamp,
> - .flags = AVFMT_NOFILE,
> + .flags = AVFMT_NOFILE | AVFMT_ALLOW_FLUSH,
> .priv_class = &pulse_muxer_class,
> };
LGTM but I'd prefer a second check from someone with more indepth into
lavf/lavd internal API.
--
FFmpeg = Frenzy and Fascinating Mega Philosofic Egregious Guru
More information about the ffmpeg-devel
mailing list