Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2011-10-16 12:35:07 +0400
committerStefano Sabatini <stefasab@gmail.com>2011-10-16 23:18:44 +0400
commit477718f40b3d8fddfb3ee3bea1125fe56986c7e6 (patch)
tree7df8c5a024d5c05d420e68918bd951eda03cafbe /libavdevice/lavfi.c
parent6bca574a98ba604459f6ee92538b19d25bba0973 (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.
Diffstat (limited to 'libavdevice/lavfi.c')
-rw-r--r--libavdevice/lavfi.c4
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);