Add GL_ExtensionSupported in vid_null.c because vid_shared.c relies on
[xonotic/darkplaces.git] / snd_mix.c
index 2274f35..10da400 100644 (file)
--- a/snd_mix.c
+++ b/snd_mix.c
@@ -28,6 +28,7 @@ static portable_sampleframe_t paintbuffer_unswapped[PAINTBUFFER_SIZE];
 
 extern speakerlayout_t snd_speakerlayout; // for querying the listeners
 
+#ifdef CONFIG_VIDEO_CAPTURE
 static void S_CaptureAVISound(const portable_sampleframe_t *paintbuffer, size_t length)
 {
        size_t i;
@@ -46,10 +47,11 @@ static void S_CaptureAVISound(const portable_sampleframe_t *paintbuffer, size_t
 
        SCR_CaptureVideo_SoundFrame(paintbuffer_unswapped, length);
 }
+#endif
 
 extern cvar_t snd_softclip;
 
-static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbframes, int width, int channels)
+static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbframes, int width, int nchannels)
 {
        int i;
 
@@ -68,7 +70,7 @@ static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbfra
                maxvol = max(1.0f, maxvol * (1.0f - nbframes / (0.4f * snd_renderbuffer->format.speed)));
 #define SOFTCLIP(x) if(fabs(x)>maxvol) maxvol=fabs(x); (x) /= maxvol;
 
-               if (channels == 8)  // 7.1 surround
+               if (nchannels == 8)  // 7.1 surround
                {
                        for (i = 0;i < nbframes;i++, p++)
                        {
@@ -82,7 +84,7 @@ static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbfra
                                SOFTCLIP(p->sample[7]);
                        }
                }
-               else if (channels == 6)  // 5.1 surround
+               else if (nchannels == 6)  // 5.1 surround
                {
                        for (i = 0; i < nbframes; i++, p++)
                        {
@@ -94,7 +96,7 @@ static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbfra
                                SOFTCLIP(p->sample[5]);
                        }
                }
-               else if (channels == 4)  // 4.0 surround
+               else if (nchannels == 4)  // 4.0 surround
                {
                        for (i = 0; i < nbframes; i++, p++)
                        {
@@ -104,7 +106,7 @@ static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbfra
                                SOFTCLIP(p->sample[3]);
                        }
                }
-               else if (channels == 2)  // 2.0 stereo
+               else if (nchannels == 2)  // 2.0 stereo
                {
                        for (i = 0; i < nbframes; i++, p++)
                        {
@@ -112,7 +114,7 @@ static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbfra
                                SOFTCLIP(p->sample[1]);
                        }
                }
-               else if (channels == 1)  // 1.0 mono
+               else if (nchannels == 1)  // 1.0 mono
                {
                        for (i = 0; i < nbframes; i++, p++)
                        {
@@ -123,7 +125,7 @@ static void S_SoftClipPaintBuffer(portable_sampleframe_t *painted_ptr, int nbfra
        }
 }
 
-static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_ptr, int nbframes, int width, int channels)
+static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_ptr, int nbframes, int width, int nchannels)
 {
        int i, val;
 
@@ -132,7 +134,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
        if (width == 2)  // 16bit
        {
                short *snd_out = (short*)rb_ptr;
-               if (channels == 8)  // 7.1 surround
+               if (nchannels == 8)  // 7.1 surround
                {
                        for (i = 0;i < nbframes;i++, painted_ptr++)
                        {
@@ -146,7 +148,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[7] * 32768.0f);*snd_out++ = bound(-32768, val, 32767);
                        }
                }
-               else if (channels == 6)  // 5.1 surround
+               else if (nchannels == 6)  // 5.1 surround
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -158,7 +160,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[5] * 32768.0f);*snd_out++ = bound(-32768, val, 32767);
                        }
                }
-               else if (channels == 4)  // 4.0 surround
+               else if (nchannels == 4)  // 4.0 surround
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -168,7 +170,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[3] * 32768.0f);*snd_out++ = bound(-32768, val, 32767);
                        }
                }
-               else if (channels == 2)  // 2.0 stereo
+               else if (nchannels == 2)  // 2.0 stereo
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -176,7 +178,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[1] * 32768.0f);*snd_out++ = bound(-32768, val, 32767);
                        }
                }
-               else if (channels == 1)  // 1.0 mono
+               else if (nchannels == 1)  // 1.0 mono
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -186,12 +188,12 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
 
                // noise is really really annoying
                if (cls.timedemo)
-                       memset(rb_ptr, 0, nbframes * channels * width);
+                       memset(rb_ptr, 0, nbframes * nchannels * width);
        }
        else  // 8bit
        {
                unsigned char *snd_out = (unsigned char*)rb_ptr;
-               if (channels == 8)  // 7.1 surround
+               if (nchannels == 8)  // 7.1 surround
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -205,7 +207,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[7] * 128.0f) + 128; *snd_out++ = bound(0, val, 255);
                        }
                }
-               else if (channels == 6)  // 5.1 surround
+               else if (nchannels == 6)  // 5.1 surround
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -217,7 +219,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[5] * 128.0f) + 128; *snd_out++ = bound(0, val, 255);
                        }
                }
-               else if (channels == 4)  // 4.0 surround
+               else if (nchannels == 4)  // 4.0 surround
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -227,7 +229,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[3] * 128.0f) + 128; *snd_out++ = bound(0, val, 255);
                        }
                }
-               else if (channels == 2)  // 2.0 stereo
+               else if (nchannels == 2)  // 2.0 stereo
                {
                        for (i = 0; i < nbframes; i++, painted_ptr++)
                        {
@@ -235,7 +237,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
                                val = (int)(painted_ptr->sample[1] * 128.0f) + 128; *snd_out++ = bound(0, val, 255);
                        }
                }
-               else if (channels == 1)  // 1.0 mono
+               else if (nchannels == 1)  // 1.0 mono
                {
                        for (i = 0;i < nbframes;i++, painted_ptr++)
                        {
@@ -245,7 +247,7 @@ static void S_ConvertPaintBuffer(portable_sampleframe_t *painted_ptr, void *rb_p
 
                // noise is really really annoying
                if (cls.timedemo)
-                       memset(rb_ptr, 128, nbframes * channels);
+                       memset(rb_ptr, 128, nbframes * nchannels);
        }
 }
 
@@ -520,8 +522,10 @@ void S_MixToBuffer(void *stream, unsigned int bufferframes)
 
                S_SoftClipPaintBuffer(paintbuffer, totalmixframes, snd_renderbuffer->format.width, snd_renderbuffer->format.channels);
 
+#ifdef CONFIG_VIDEO_CAPTURE
                if (!snd_usethreadedmixing)
                        S_CaptureAVISound(paintbuffer, totalmixframes);
+#endif
 
                S_ConvertPaintBuffer(paintbuffer, outbytes, totalmixframes, snd_renderbuffer->format.width, snd_renderbuffer->format.channels);