#170 : Insert missing render memcpy when !doConvertBuffer in WASAPI
authorMarcus Tomlinson <themarcustomlinson@gmail.com>
Thu, 13 Dec 2018 23:16:42 +0000 (23:16 +0000)
committerMarcus Tomlinson <themarcustomlinson@gmail.com>
Fri, 14 Dec 2018 17:58:49 +0000 (17:58 +0000)
RtAudio.cpp

index 7c87572fd79964819720eab69ccbce4cbaf1dd45..ace0572fe9b440610663fbc6a9a4f4d34276fcba 100644 (file)
@@ -4860,8 +4860,7 @@ bool RtApiWasapi::probeDeviceOpen( unsigned int device, StreamMode mode, unsigne
   stream_.doConvertBuffer[mode] = false;
   if ( stream_.userFormat != stream_.deviceFormat[mode] ||
        stream_.nUserChannels[0] != stream_.nDeviceChannels[0] ||
-       stream_.nUserChannels[1] != stream_.nDeviceChannels[1] ||
-       stream_.userInterleaved )
+       stream_.nUserChannels[1] != stream_.nDeviceChannels[1] )
     stream_.doConvertBuffer[mode] = true;
   else if ( stream_.userInterleaved != stream_.deviceInterleaved[mode] &&
             stream_.nUserChannels[mode] > 1 )
@@ -5318,6 +5317,12 @@ void RtApiWasapi::wasapiThread()
                          stream_.convertInfo[OUTPUT] );
 
         }
+        else {
+          // no further conversion, simple copy userBuffer to deviceBuffer
+          memcpy( stream_.deviceBuffer,
+                  stream_.userBuffer[OUTPUT],
+                  stream_.bufferSize * stream_.nUserChannels[OUTPUT] * formatBytes( stream_.userFormat ) );
+        }
 
         // Convert callback buffer to stream sample rate
         renderResampler->Convert( convBuffer,