From 641428966e09d16b0a46540040f2faf3791eb7c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Thu, 28 Jan 2016 13:29:39 +0100 Subject: [PATCH] audiorate: Use gst_audio_format_fill_silence() instead of memset with 0 for generating silence For unsigned formats, silence is not all bits 0. --- gst/audiorate/gstaudiorate.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gst/audiorate/gstaudiorate.c b/gst/audiorate/gstaudiorate.c index 19661d8028..1927ec3b10 100644 --- a/gst/audiorate/gstaudiorate.c +++ b/gst/audiorate/gstaudiorate.c @@ -535,14 +535,17 @@ gst_audio_rate_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) while (fillsamples > 0) { guint64 cursamples = MIN (fillsamples, rate); + GstMapInfo fillmap; fillsamples -= cursamples; fillsize = cursamples * bpf; fill = gst_buffer_new_and_alloc (fillsize); - /* FIXME, 0 might not be the silence byte for the negotiated format. */ - gst_buffer_memset (fill, 0, 0, fillsize); + gst_buffer_map (fill, &fillmap, GST_MAP_WRITE); + gst_audio_format_fill_silence (audiorate->info.finfo, fillmap.data, + fillmap.size); + gst_buffer_unmap (fill, &fillmap); GST_DEBUG_OBJECT (audiorate, "inserting %" G_GUINT64_FORMAT " samples", cursamples);