Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package FAudio for openSUSE:Factory checked 
in at 2022-08-10 17:14:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/FAudio (Old)
 and      /work/SRC/openSUSE:Factory/.FAudio.new.1521 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "FAudio"

Wed Aug 10 17:14:11 2022 rev:22 rq:994145 version:22.08

Changes:
--------
--- /work/SRC/openSUSE:Factory/FAudio/FAudio.changes    2022-05-09 
18:45:37.656314734 +0200
+++ /work/SRC/openSUSE:Factory/.FAudio.new.1521/FAudio.changes  2022-08-10 
17:15:31.810057253 +0200
@@ -1,0 +2,11 @@
+Tue Aug  9 13:18:48 UTC 2022 - Aaron Stern <ukbeas...@protonmail.com>
+
+- Update to 22.08:
+  * FACT: Add support for WAVEBANKPREPARED notifications
+  * Included the matrix coefficient test program in matrix_defaults.inl, 
+    for developers that need to replicate it
+  * FXReverb: Fix a spec violation in Process() that could corrupt reverb 
output 
+    when enabled/disabled with precise timing
+  * FACT: Fill all fields for WAVESTOP notifications, avoiding uninitialized 
memory issues
+
+-------------------------------------------------------------------

Old:
----
  FAudio-22.05.tar.gz

New:
----
  FAudio-22.08.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ FAudio.spec ++++++
--- /var/tmp/diff_new_pack.X5NphP/_old  2022-08-10 17:15:32.634059404 +0200
+++ /var/tmp/diff_new_pack.X5NphP/_new  2022-08-10 17:15:32.642059426 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           FAudio
-Version:        22.05
+Version:        22.08
 Release:        0
 Summary:        A reimplementation of the XNA Game Studio libraries
 License:        Zlib

++++++ FAudio-22.05.tar.gz -> FAudio-22.08.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/CMakeLists.txt 
new/FAudio-22.08/CMakeLists.txt
--- old/FAudio-22.05/CMakeLists.txt     2022-05-01 17:42:13.000000000 +0200
+++ new/FAudio-22.08/CMakeLists.txt     2022-08-01 17:35:26.000000000 +0200
@@ -29,7 +29,7 @@
 # Version
 SET(LIB_MAJOR_VERSION "0")
 SET(LIB_MINOR_VERSION "22")
-SET(LIB_REVISION "05")
+SET(LIB_REVISION "08")
 SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_REVISION}")
 
 # Build Type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/csharp/FAudio.cs 
new/FAudio-22.08/csharp/FAudio.cs
--- old/FAudio-22.05/csharp/FAudio.cs   2022-05-01 17:42:13.000000000 +0200
+++ new/FAudio-22.08/csharp/FAudio.cs   2022-08-01 17:35:26.000000000 +0200
@@ -79,7 +79,7 @@
 
        public const uint FAUDIO_ABI_VERSION =           0;
        public const uint FAUDIO_MAJOR_VERSION =        22;
-       public const uint FAUDIO_MINOR_VERSION =         5;
+       public const uint FAUDIO_MINOR_VERSION =         8;
        public const uint FAUDIO_PATCH_VERSION =         0;
 
        public const uint FAUDIO_COMPILED_VERSION = (
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/include/FAudio.h 
new/FAudio-22.08/include/FAudio.h
--- old/FAudio-22.05/include/FAudio.h   2022-05-01 17:42:13.000000000 +0200
+++ new/FAudio-22.08/include/FAudio.h   2022-08-01 17:35:26.000000000 +0200
@@ -485,7 +485,7 @@
 
 #define FAUDIO_ABI_VERSION      0
 #define FAUDIO_MAJOR_VERSION   22
-#define FAUDIO_MINOR_VERSION    5
+#define FAUDIO_MINOR_VERSION    8
 #define FAUDIO_PATCH_VERSION    0
 
 #define FAUDIO_COMPILED_VERSION ( \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/FACT.c new/FAudio-22.08/src/FACT.c
--- old/FAudio-22.05/src/FACT.c 2022-05-01 17:42:13.000000000 +0200
+++ new/FAudio-22.08/src/FACT.c 2022-08-01 17:35:26.000000000 +0200
@@ -433,9 +433,17 @@
        uint8_t i;
        FACTCue *cue;
        LinkedList *list;
+       FACTNotification *note;
 
        FAudio_PlatformLockMutex(pEngine->apiLock);
 
+       while (pEngine->wb_notifications_list)
+       {
+               note = (FACTNotification*) 
pEngine->wb_notifications_list->entry;
+               pEngine->notificationCallback(note);
+               LinkedList_RemoveEntry(&pEngine->wb_notifications_list, note, 
pEngine->apiLock, pEngine->pFree);
+       }
+
        list = pEngine->sbList;
        while (list != NULL)
        {
@@ -495,6 +503,7 @@
        uint32_t dwAllocAttributes,
        FACTWaveBank **ppWaveBank
 ) {
+       FACTNotification *note;
        uint32_t retval;
        FAudio_PlatformLockMutex(pEngine->apiLock);
        retval = FACT_INTERNAL_ParseWaveBank(
@@ -507,6 +516,14 @@
                0,
                ppWaveBank
        );
+       if (pEngine->notifications & NOTIFY_WAVEBANKPREPARED)
+       {
+               note = (FACTNotification*) 
pEngine->pMalloc(sizeof(FACTNotification));
+               note->type = FACTNOTIFICATIONTYPE_WAVEBANKPREPARED;
+               note->waveBank.pWaveBank = *ppWaveBank;
+               note->pvContext = pEngine->wb_context;
+               LinkedList_AddEntry(&pEngine->wb_notifications_list, note, 
pEngine->apiLock, pEngine->pMalloc);
+       }
        FAudio_PlatformUnlockMutex(pEngine->apiLock);
        return retval;
 }
@@ -516,6 +533,7 @@
        const FACTStreamingParameters *pParms,
        FACTWaveBank **ppWaveBank
 ) {
+       FACTNotification *note;
        uint32_t retval, packetSize;
        FAudio_PlatformLockMutex(pEngine->apiLock);
        if (    pEngine->pReadFile == FACT_INTERNAL_DefaultReadFile &&
@@ -538,6 +556,14 @@
                1,
                ppWaveBank
        );
+       if (pEngine->notifications & NOTIFY_WAVEBANKPREPARED)
+       {
+               note = (FACTNotification*) 
pEngine->pMalloc(sizeof(FACTNotification));
+               note->type = FACTNOTIFICATIONTYPE_WAVEBANKPREPARED;
+               note->waveBank.pWaveBank = *ppWaveBank;
+               note->pvContext = pEngine->wb_context;
+               LinkedList_AddEntry(&pEngine->wb_notifications_list, note, 
pEngine->apiLock, pEngine->pMalloc);
+       }
        FAudio_PlatformUnlockMutex(pEngine->apiLock);
        return retval;
 }
@@ -2175,11 +2201,13 @@
        {
                FACTNotification note;
                note.type = FACTNOTIFICATIONTYPE_WAVESTOP;
+               note.wave.cueIndex = pWave->parentCue->index;
+               note.wave.pCue = pWave->parentCue;
+               note.wave.pSoundBank = pWave->parentCue->parentBank;
                note.wave.pWave = pWave;
-               if (pWave->parentBank->parentEngine->notifications & 
NOTIFY_WAVESTOP)
-               {
-                       note.pvContext = 
pWave->parentBank->parentEngine->wave_context;
-               }
+               note.wave.pWaveBank = pWave->parentBank;
+               note.pvContext = pWave->parentBank->parentEngine->wave_context;
+
                pWave->parentBank->parentEngine->notificationCallback(&note);
        }
 
@@ -2735,6 +2763,8 @@
                }
        }
 
+       FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUESTOP, 
FACTNOTIFICATIONTYPE_CUESTOP);
+
        FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock);
        return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/FACT_internal.h 
new/FAudio-22.08/src/FACT_internal.h
--- old/FAudio-22.05/src/FACT_internal.h        2022-05-01 17:42:13.000000000 
+0200
+++ new/FAudio-22.08/src/FACT_internal.h        2022-08-01 17:35:26.000000000 
+0200
@@ -440,6 +440,7 @@
        void *sb_context;
        void *wb_context;
        void *wave_context;
+       LinkedList *wb_notifications_list;
 
        /* Settings handle */
        void *settings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/FAudioFX_reverb.c 
new/FAudio-22.08/src/FAudioFX_reverb.c
--- old/FAudio-22.05/src/FAudioFX_reverb.c      2022-05-01 17:42:13.000000000 
+0200
+++ new/FAudio-22.08/src/FAudioFX_reverb.c      2022-08-01 17:35:26.000000000 
+0200
@@ -1015,35 +1015,35 @@
        size_t sample_count
 ) {
        const float *in_end = samples_in + sample_count;
-       float in, in_ratio, early, late[2];
+       float in, early, late[2];
        float squared_sum = 0;
 
        while (samples_in < in_end)
        {
                /* Input - Combine 2 channels into 1 */
                in = (samples_in[0] + samples_in[1]) / 2.0f;
-               in_ratio = in * reverb->dry_ratio;
-               samples_in += 2;
 
                /* Early Reflections */
                early = DspReverb_INTERNAL_ProcessEarly(reverb, in);
 
                /* Reverberation with Wet/Dry Mix */
-               late[0] = DspReverb_INTERNAL_ProcessChannel(
+               late[0] = (DspReverb_INTERNAL_ProcessChannel(
                        reverb,
                        &reverb->channel[0],
                        early
-               );
+               ) * reverb->wet_ratio) + samples_in[0] * reverb->dry_ratio;
                late[1] = (DspReverb_INTERNAL_ProcessChannel(
                        reverb,
                        &reverb->channel[1],
                        early
-               ) * reverb->wet_ratio) + in_ratio;
+               ) * reverb->wet_ratio) + samples_in[1] * reverb->dry_ratio;
                squared_sum += (late[0] * late[0]) + (late[1] * late[1]);
 
                /* Output */
                *samples_out++ = late[0];
                *samples_out++ = late[1];
+
+               samples_in += 2;
        }
 
        return squared_sum;
@@ -1407,6 +1407,22 @@
                fapo->base.pMalloc
        );
 
+       /* Initialize the effect to a default setting */
+       if (fapo->apiVersion == 9)
+       {
+               DspReverb_SetParameters9(
+                       &fapo->reverb,
+                       (FAudioFXReverbParameters9*) 
fapo->base.m_pParameterBlocks
+               );
+       }
+       else
+       {
+               DspReverb_SetParameters(
+                       &fapo->reverb,
+                       (FAudioFXReverbParameters*) 
fapo->base.m_pParameterBlocks
+               );
+       }
+
        /* Call parent to do basic validation */
        return FAPOBase_LockForProcess(
                &fapo->base,
@@ -1487,6 +1503,24 @@
        FAudioFXReverbParameters *params;
        uint8_t update_params = FAPOBase_ParametersChanged(&fapo->base);
        float total;
+
+       params = (FAudioFXReverbParameters*) FAPOBase_BeginProcess(&fapo->base);
+
+       /* Update parameters before doing anything else  */
+       if (update_params)
+       {
+               if (fapo->apiVersion == 9)
+               {
+                       DspReverb_SetParameters9(
+                               &fapo->reverb,
+                               (FAudioFXReverbParameters9*) params
+                       );
+               }
+               else
+               {
+                       DspReverb_SetParameters(&fapo->reverb, params);
+               }
+       }
        
        /* Handle disabled filter */
        if (IsEnabled == 0)
@@ -1503,6 +1537,7 @@
                        );
                }
 
+               FAPOBase_EndProcess(&fapo->base);
                return;
        }
        
@@ -1516,24 +1551,6 @@
                );
        }
 
-       params = (FAudioFXReverbParameters*) FAPOBase_BeginProcess(&fapo->base);
-
-       /* Update parameters  */
-       if (update_params)
-       {
-               if (fapo->apiVersion == 9)
-               {
-                       DspReverb_SetParameters9(
-                               &fapo->reverb,
-                               (FAudioFXReverbParameters9*) params
-                       );
-               }
-               else
-               {
-                       DspReverb_SetParameters(&fapo->reverb, params);
-               }
-       }
-
        /* Run reverb effect */
        #define PROCESS(pin, pout) \
                DspReverb_INTERNAL_Process_##pin##_to_##pout( \
@@ -1666,16 +1683,6 @@
                sizeof(FAudioFXReverbParameters) * 3
        );
        result->apiVersion = 7;
-       #define INITPARAMS(offset) \
-               FAudio_memcpy( \
-                       params + sizeof(FAudioFXReverbParameters) * offset, \
-                       &fxdefault, \
-                       sizeof(FAudioFXReverbParameters) \
-               );
-       INITPARAMS(0)
-       INITPARAMS(1)
-       INITPARAMS(2)
-       #undef INITPARAMS
 
        /* Initialize... */
        FAudio_memcpy(
@@ -1711,6 +1718,13 @@
        result->base.Destructor = FAudioFXReverb_Free;
        #undef ASSIGN_VT
 
+       /* Prepare the default parameters */
+       result->base.base.Initialize(
+               result,
+               &fxdefault,
+               sizeof(FAudioFXReverbParameters)
+       );
+
        /* Finally. */
        *ppApo = &result->base.base;
        return 0;
@@ -1839,16 +1853,6 @@
                sizeof(FAudioFXReverbParameters9) * 3
        );
        result->apiVersion = 9;
-       #define INITPARAMS(offset) \
-               FAudio_memcpy( \
-                       params + sizeof(FAudioFXReverbParameters9) * offset, \
-                       &fxdefault, \
-                       sizeof(FAudioFXReverbParameters9) \
-               );
-       INITPARAMS(0)
-       INITPARAMS(1)
-       INITPARAMS(2)
-       #undef INITPARAMS
 
        /* Initialize... */
        FAudio_memcpy(
@@ -1884,6 +1888,13 @@
        result->base.Destructor = FAudioFXReverb_Free;
        #undef ASSIGN_VT
 
+       /* Prepare the default parameters */
+       result->base.base.Initialize(
+               result,
+               &fxdefault,
+               sizeof(FAudioFXReverbParameters9)
+       );
+
        /* Finally. */
        *ppApo = &result->base.base;
        return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/FAudio_internal.c 
new/FAudio-22.08/src/FAudio_internal.c
--- old/FAudio-22.05/src/FAudio_internal.c      2022-05-01 17:42:13.000000000 
+0200
+++ new/FAudio-22.08/src/FAudio_internal.c      2022-08-01 17:35:26.000000000 
+0200
@@ -1862,7 +1862,7 @@
        int32_t midOffset;
 
        /* PCM block cache */
-       int16_t blockCache[1012]; /* Max block size */
+       int16_t *blockCache;
 
        /* Block size */
        uint32_t bsize = ((FAudioADPCMWaveFormat*) 
voice->src.format)->wSamplesPerBlock;
@@ -1879,6 +1879,7 @@
        midOffset = (voice->src.curBufferOffset % bsize);
 
        /* Read in each block directly to the decode cache */
+       blockCache = (int16_t*) FAudio_alloca(bsize * sizeof(int16_t));
        while (done < samples)
        {
                copy = FAudio_min(samples - done, bsize - midOffset);
@@ -1896,6 +1897,7 @@
                done += copy;
                midOffset = 0;
        }
+       FAudio_dealloca(blockCache);
        LOG_FUNC_EXIT(voice->audio)
 }
 
@@ -1913,7 +1915,7 @@
        int32_t midOffset;
 
        /* PCM block cache */
-       int16_t blockCache[2024]; /* Max block size */
+       int16_t *blockCache;
 
        /* Align, block size */
        uint32_t bsize = ((FAudioADPCMWaveFormat*) 
voice->src.format)->wSamplesPerBlock;
@@ -1930,6 +1932,7 @@
        midOffset = (voice->src.curBufferOffset % bsize);
 
        /* Read in each block directly to the decode cache */
+       blockCache = (int16_t*) FAudio_alloca(bsize * 2 * sizeof(int16_t));
        while (done < samples)
        {
                copy = FAudio_min(samples - done, bsize - midOffset);
@@ -1947,6 +1950,7 @@
                done += copy;
                midOffset = 0;
        }
+       FAudio_dealloca(blockCache);
        LOG_FUNC_EXIT(voice->audio)
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/FAudio_internal_simd.c 
new/FAudio-22.08/src/FAudio_internal_simd.c
--- old/FAudio-22.05/src/FAudio_internal_simd.c 2022-05-01 17:42:13.000000000 
+0200
+++ new/FAudio-22.08/src/FAudio_internal_simd.c 2022-08-01 17:35:26.000000000 
+0200
@@ -285,10 +285,10 @@
             const uint16x8_t uint16hi = vmovl_u8(vget_high_u8(bytes));  /* 
convert top 8 bytes to 8 uint16 */
             const uint16x8_t uint16lo = vmovl_u8(vget_low_u8(bytes));   /* 
convert bottom 8 bytes to 8 uint16 */
             /* split uint16 to two uint32, then convert to float, then 
multiply to normalize, subtract to adjust for sign, store. */
-            vst1q_f32(dst, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_low_u16(uint16hi))), divby128));
-            vst1q_f32(dst+4, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_high_u16(uint16hi))), divby128));
-            vst1q_f32(dst+8, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_low_u16(uint16lo))), divby128));
-            vst1q_f32(dst+12, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_high_u16(uint16lo))), divby128));
+            vst1q_f32(dst, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_low_u16(uint16lo))), divby128));
+            vst1q_f32(dst+4, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_high_u16(uint16lo))), divby128));
+            vst1q_f32(dst+8, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_low_u16(uint16hi))), divby128));
+            vst1q_f32(dst+12, vmlaq_f32(negone, 
vcvtq_f32_u32(vmovl_u16(vget_high_u16(uint16hi))), divby128));
             i -= 16; mmsrc -= 16; dst -= 16;
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/FAudio_platform_sdl2.c 
new/FAudio-22.08/src/FAudio_platform_sdl2.c
--- old/FAudio-22.05/src/FAudio_platform_sdl2.c 2022-05-01 17:42:13.000000000 
+0200
+++ new/FAudio-22.08/src/FAudio_platform_sdl2.c 2022-08-01 17:35:26.000000000 
+0200
@@ -82,6 +82,7 @@
        SDL_AudioDeviceID device;
        SDL_AudioSpec want, have;
        const char *driver;
+       SDL_version version;
        int changes = 0;
 
        FAudio_assert(mixFormat != NULL);
@@ -119,7 +120,8 @@
         * -flibit
         */
        driver = SDL_GetCurrentAudioDriver();
-       if (SDL_strcmp(driver, "pulseaudio") == 0)
+       SDL_GetVersion(&version);
+       if (version.minor < 23 && SDL_strcmp(driver, "pulseaudio") == 0)
        {
                want.samples *= 2;
                changes = SDL_AUDIO_ALLOW_SAMPLES_CHANGE;
@@ -375,6 +377,26 @@
                channels = 2;
        }
 
+       /* FIXME: SDL bug!
+        * SDL_audio.c enforces specific channel counts for all platforms,
+        * even if they support channel counts that could make sense (for
+        * example, 2.1 is not supported), so we have to adjust it here.
+        *
+        * Note that we don't check > 8 since we do that in the spec check,
+        * meaning only the environment variable can give us this and that
+        * needs to break for validation purposes.
+        *
+        * -flibit
+        */
+       if (channels == 3)
+       {
+               channels = 2;
+       }
+       if (channels == 5)
+       {
+               channels = 4;
+       }
+
        /* Write the format, finally. */
        WriteWaveFormatExtensible(
                &details->OutputFormat,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/FAudio_platform_win32.c 
new/FAudio-22.08/src/FAudio_platform_win32.c
--- old/FAudio-22.05/src/FAudio_platform_win32.c        2022-05-01 
17:42:13.000000000 +0200
+++ new/FAudio-22.08/src/FAudio_platform_win32.c        2022-08-01 
17:35:26.000000000 +0200
@@ -501,6 +501,10 @@
                        sizeof(GUID)
                );
        }
+       else
+       {
+               details->OutputFormat.dwChannelMask = 
GetMask(format->nChannels);
+       }
 
        CoTaskMemFree(format);
 
@@ -578,7 +582,7 @@
 void FAudio_PlatformWaitThread(FAudioThread thread, int32_t *retval)
 {
        WaitForSingleObject(thread, INFINITE);
-       GetExitCodeThread(thread, (DWORD *)retval);
+       if (retval != NULL) GetExitCodeThread(thread, (DWORD *)retval);
 }
 
 void FAudio_PlatformThreadPriority(FAudioThreadPriority priority)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/FAudio-22.05/src/matrix_defaults.inl 
new/FAudio-22.08/src/matrix_defaults.inl
--- old/FAudio-22.05/src/matrix_defaults.inl    2022-05-01 17:42:13.000000000 
+0200
+++ new/FAudio-22.08/src/matrix_defaults.inl    2022-08-01 17:35:26.000000000 
+0200
@@ -1,6 +1,68 @@
 /* This was generated by making 8 sources and 8 submixes, then assigning each
  * submix to each voice and dumping the output matrix. Terrible, but it worked!
  */
+/*
+int main(int argc, char **argv)
+{
+       CoInitialize(NULL);
+
+       IXAudio2 *engine;
+       XAudio2Create(&engine);
+
+       IXAudio2MasteringVoice *master;
+       engine->CreateMasteringVoice(&master);
+
+       FILE *fileOut = fopen("matrix_defaults.inl", "w");
+       for (int srcChans = 1; srcChans < 9; srcChans += 1)
+       {
+               fprintf(fileOut, "{\n");
+               for (int dstChans = 1; dstChans < 9; dstChans += 1)
+               {
+                       IXAudio2SubmixVoice *submix;
+                       engine->CreateSubmixVoice(&submix, dstChans, 48000);
+
+                       XAUDIO2_SEND_DESCRIPTOR sendDesc;
+                       sendDesc.Flags = 0;
+                       sendDesc.pOutputVoice = submix;
+
+                       XAUDIO2_VOICE_SENDS sends;
+                       sends.SendCount = 1;
+                       sends.pSends = &sendDesc;
+
+                       WAVEFORMATEX fmt;
+                       fmt.wFormatTag = 1;
+                       fmt.nChannels = srcChans;
+                       fmt.nSamplesPerSec = 48000;
+                       fmt.wBitsPerSample = 16;
+                       fmt.nBlockAlign = srcChans * (fmt.wBitsPerSample / 8);
+                       fmt.nAvgBytesPerSec = fmt.nBlockAlign * 
fmt.nSamplesPerSec;
+                       fmt.cbSize = 0;
+
+                       IXAudio2SourceVoice *source;
+                       engine->CreateSourceVoice(&source, &fmt, 0, 2.0f, NULL, 
&sends);
+
+                       float matrix[8 * 8];
+                       source->GetOutputMatrix(submix, srcChans, dstChans, 
matrix);
+                       fprintf(fileOut, "\t{ ");
+                       for (int i = 0; i < srcChans * dstChans; i += 1)
+                       {
+                               fprintf(fileOut, "%.9f%s ", matrix[i], (i == 
((srcChans * dstChans) - 1)) ? "" : ",");
+                       }
+                       fprintf(fileOut, "}%s\n", (dstChans == 8) ? "" : ",");
+
+                       source->DestroyVoice();
+                       submix->DestroyVoice();
+               }
+               fprintf(fileOut, "}%s\n", (srcChans == 8) ? "" : ",");
+       }
+       fclose(fileOut);
+
+       master->DestroyVoice();
+       engine->Release();
+       CoUninitialize();
+       return 0;
+}
+*/
 {
        /* 1 x 1 */
        { 1.000000000f },

++++++ faudio-older-sdl2.patch ++++++
--- /var/tmp/diff_new_pack.X5NphP/_old  2022-08-10 17:15:32.854059978 +0200
+++ /var/tmp/diff_new_pack.X5NphP/_new  2022-08-10 17:15:32.858059989 +0200
@@ -20,11 +20,12 @@
         
 --- a/src/FAudio_internal.h
 +++ b/src/FAudio_internal.h
-@@ -134,7 +134,6 @@
+@@ -141,7 +141,7 @@
  #define FAudio_floor(x) SDL_floor(x)
  #define FAudio_abs(x) SDL_abs(x)
  #define FAudio_ldexp(v, e) SDL_scalbn(v, e)
 -#define FAudio_exp(x) SDL_exp(x)
++#define FAudio_exp(x) SDL_log(x)
  
  #define FAudio_cosf(x) SDL_cosf(x)
  #define FAudio_sinf(x) SDL_sinf(x)

Reply via email to