diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2011-10-16 12:35:07 +0400 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2011-10-16 23:18:44 +0400 |
commit | 477718f40b3d8fddfb3ee3bea1125fe56986c7e6 (patch) | |
tree | 7df8c5a024d5c05d420e68918bd951eda03cafbe | |
parent | 6bca574a98ba604459f6ee92538b19d25bba0973 (diff) |
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.
-rw-r--r-- | libavdevice/lavfi.c | 4 |
1 files changed, 3 insertions, 1 deletions
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); |