From 477718f40b3d8fddfb3ee3bea1125fe56986c7e6 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Sun, 16 Oct 2011 10:35:07 +0200 Subject: lavd/lavfi: compute and use the used samples buffer size for the output audio packet size Do not assume the used size is the same of the allocated size, as it was wrongly assumed. Fix audio playback when the two values differ. --- libavdevice/lavfi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'libavdevice/lavfi.c') diff --git a/libavdevice/lavfi.c b/libavdevice/lavfi.c index 4d7297bce6..0477081ae1 100644 --- a/libavdevice/lavfi.c +++ b/libavdevice/lavfi.c @@ -299,7 +299,9 @@ static int lavfi_read_packet(AVFormatContext *avctx, AVPacket *pkt) avpicture_layout(&pict, ref->format, ref->video->w, ref->video->h, pkt->data, size); } else if (ref->audio) { - size = ref->linesize[0]; + size = ref->audio->nb_samples * + av_get_bytes_per_sample(ref->format) * + av_get_channel_layout_nb_channels(ref->audio->channel_layout); if ((ret = av_new_packet(pkt, size)) < 0) return ret; memcpy(pkt->data, ref->data[0], size); -- cgit v1.2.3