Copied from Debian:
<https://sources.debian.org/data/main/d/darkice/1.3-0.2/debian/patches/0001-Cast-float-in-SRC-lib-calls-to-delete-fpermissive-co.patch>

From 1e2eb18d349f205c70cb2836232825442359b6e3 Mon Sep 17 00:00:00 2001
From: belette <ouack23@yahoo.fr>
Date: Wed, 26 Oct 2016 02:43:43 +0200
Subject: Cast float* in SRC lib calls to delete fpermissive compilation error

---
 darkice/trunk/src/FaacEncoder.cpp      | 2 +-
 darkice/trunk/src/OpusLibEncoder.cpp   | 2 +-
 darkice/trunk/src/VorbisLibEncoder.cpp | 2 +-
 darkice/trunk/src/aacPlusEncoder.cpp   | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

--- a/src/FaacEncoder.cpp
+++ b/src/FaacEncoder.cpp
@@ -164,7 +164,7 @@ FaacEncoder :: write (  const void    * buf,
     if ( converter ) {
         unsigned int         converted;
 #ifdef HAVE_SRC_LIB
-        src_short_to_float_array ((short *) b, converterData.data_in, samples);
+        src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples);
         converterData.input_frames   = nSamples;
         converterData.data_out = resampledOffset + (resampledOffsetSize * channels);
         int srcError = src_process (converter, &converterData);
--- a/src/OpusLibEncoder.cpp
+++ b/src/OpusLibEncoder.cpp
@@ -403,7 +403,7 @@ OpusLibEncoder :: write ( const void    * buf,
 #ifdef HAVE_SRC_LIB
             (void)inCount;
             converterData.input_frames   = processed;
-            src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples);
+            src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples);
             int srcError = src_process (converter, &converterData);
             if (srcError)
                  throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError));
--- a/src/VorbisLibEncoder.cpp
+++ b/src/VorbisLibEncoder.cpp
@@ -337,7 +337,7 @@ VorbisLibEncoder :: write ( const void    * buf,
         int         converted;
 #ifdef HAVE_SRC_LIB
         converterData.input_frames   = nSamples;
-        src_short_to_float_array (shortBuffer, converterData.data_in, totalSamples);
+        src_short_to_float_array (shortBuffer, (float *) converterData.data_in, totalSamples);
         int srcError = src_process (converter, &converterData);
         if (srcError)
              throw Exception (__FILE__, __LINE__, "libsamplerate error: ", src_strerror (srcError));
--- a/src/aacPlusEncoder.cpp
+++ b/src/aacPlusEncoder.cpp
@@ -155,7 +155,7 @@ aacPlusEncoder :: write (  const void    * buf,
     if ( converter ) {
         unsigned int         converted;
 #ifdef HAVE_SRC_LIB
-        src_short_to_float_array ((short *) b, converterData.data_in, samples);
+        src_short_to_float_array ((short *) b, (float *) converterData.data_in, samples);
         converterData.input_frames   = nSamples;
         converterData.data_out = resampledOffset + (resampledOffsetSize * channels);
         int srcError = src_process (converter, &converterData);
-- 
2.11.0