diff --git a/gst-libs/gst/audio/gstaudioaggregator.c b/gst-libs/gst/audio/gstaudioaggregator.c index f5c6c2be15..d6833319e5 100644 --- a/gst-libs/gst/audio/gstaudioaggregator.c +++ b/gst-libs/gst/audio/gstaudioaggregator.c @@ -1024,10 +1024,19 @@ static GstBuffer * gst_audio_aggregator_create_output_buffer (GstAudioAggregator * aagg, guint num_frames) { - GstBuffer *outbuf = gst_buffer_new_allocate (NULL, num_frames * - GST_AUDIO_INFO_BPF (&aagg->info), NULL); + GstAllocator *allocator; + GstAllocationParams params; + GstBuffer *outbuf; GstMapInfo outmap; + gst_aggregator_get_allocator (GST_AGGREGATOR (aagg), &allocator, ¶ms); + + outbuf = gst_buffer_new_allocate (allocator, num_frames * + GST_AUDIO_INFO_BPF (&aagg->info), ¶ms); + + if (allocator) + gst_object_unref (allocator); + gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE); gst_audio_format_fill_silence (aagg->info.finfo, outmap.data, outmap.size); gst_buffer_unmap (outbuf, &outmap);