diff --git a/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.c b/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.c index d7b26f1d9d..c29cd81fb6 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.c +++ b/subprojects/gst-plugins-base/gst-libs/gst/audio/gstaudiosink.c @@ -55,6 +55,7 @@ #include #include +#include #include "gstaudiosink.h" #include "gstaudioutilsprivate.h" @@ -416,12 +417,18 @@ gst_audio_sink_ring_buffer_acquire (GstAudioRingBuffer * buf, buf->memory = g_malloc (buf->size); - if (buf->spec.type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW) { - gst_audio_format_info_fill_silence (buf->spec.info.finfo, buf->memory, - buf->size); - } else { - /* FIXME, non-raw formats get 0 as the empty sample */ - memset (buf->memory, 0, buf->size); + switch (buf->spec.type) { + case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW: + gst_audio_format_info_fill_silence (buf->spec.info.finfo, buf->memory, + buf->size); + break; + case GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DSD: + memset (buf->memory, GST_DSD_SILENCE_PATTERN_BYTE, buf->size); + break; + default: + /* FIXME, non-raw formats get 0 as the empty sample */ + memset (buf->memory, 0, buf->size); + break; }