I have GFX and LFX modules running for windows7 (x64). Both modules have the following flags defined (APO_FLAG_FRAMESPERSECOND_MUST_MATCH | APO_FLAG_BITSPERSAMPLE_MUST_MATCH | APO_FLAG_SAMPLESPERFRAME_MUST_MATCH | APO_FLAG_INPLACE) Audio is played back just fine and my trace looks like this 2014-11-10 10:33:43.399 0030DFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:33:43.399 0030DFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:33:43.400 0030DFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:33:43.401 0030DFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:33:43.401 0030DFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:33:43.402 0030DFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:33:43.402 0030DFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:33:43.403 003117E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:33:43.403 003117E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:33:43.403 003117E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:33:43.406 003117E8 (apo.cpp:540): (TRACE) LFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:33:43.406 003117E8 (apo.cpp:558): (TRACE) LFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:33:43.406 003117E8 (apo.cpp:569): (TRACE) LFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:33:43.406 003117E8 (apo.cpp:660): (TRACE) LFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:33:45.276 003117E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:33:45.277 003117E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:33:45.277 0030DFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:33:45.278 0030DFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit If I remove APO_FLAG_INPLACE from the LFX module and that is the only change made to the code then audio is not played back. I get the following error message "Error while opening sound device. Please check the output device settings and the project sample rate.". I use Audacity to play back the audio. Now my trace looks like below. Obviously something is wrong. I don't understand what the problem is. Is it a bug in my code? Is removal of APO_FLAG_INPLACE unsupported? What strikes me is that the system does not even call ValidateAndCacheConnectionInfo() on the LFX module after APO_FLAG_INPLACE is removed. And even though the system has a problem with the LFX module why can't the system just use the GFX module. 2014-11-10 10:39:00.112 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.112 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.112 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.116 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.116 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.116 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.116 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.117 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.118 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.118 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.120 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.121 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.121 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.121 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.131 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.131 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.133 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.133 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.134 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.134 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.134 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.135 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.135 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.135 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.137 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.137 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.137 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.137 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.180 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.180 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.181 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.182 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.182 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.182 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.182 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.183 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.183 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.183 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.185 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.185 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.186 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.186 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.188 000DDFD0 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.188 000DDFD0 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.189 000DDFD0 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.189 000DDFD0 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.189 000DDFD0 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.191 000DDFD0 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.191 000DDFD0 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.192 000DDFD0 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.192 000DDFD0 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.192 000DDFD0 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.193 000DDFD0 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.193 000DDFD0 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.193 000DDFD0 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.193 000DDFD0 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.193 000DDFD0 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.203 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.204 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.204 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.205 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.205 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.205 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.205 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.206 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.206 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.206 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.207 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.207 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.208 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.208 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.216 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.216 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.217 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.217 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.217 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.217 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.217 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.218 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.218 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.218 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.219 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.219 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.220 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.220 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.228 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.228 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.229 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.229 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.229 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.229 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.229 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.230 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.230 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.230 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.232 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.232 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.232 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.232 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.240 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.240 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.240 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.241 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.241 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.241 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.241 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.242 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.243 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.243 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.244 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.244 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.245 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.245 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.252 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.252 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.253 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.253 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.253 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.254 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.254 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.255 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.255 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.256 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.257 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.257 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.258 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.258 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit 2014-11-10 10:39:00.265 003BDFE8 (apo.cpp:245): (TRACE) GFX Initialize Enter 2014-11-10 10:39:00.265 003BDFE8 (apo.cpp:277): (TRACE) GFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.265 003BDFE8 (apo.cpp:353): (TRACE) GFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.266 003BDFE8 (apo.cpp:540): (TRACE) GFX ValidateAndCacheConnectionInfo Enter 2014-11-10 10:39:00.266 003BDFE8 (apo.cpp:558): (TRACE) GFX RequestedInputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000003 } 2014-11-10 10:39:00.266 003BDFE8 (apo.cpp:569): (TRACE) GFX RequestedOutputFormat = { 00000003, 2, 4, 32, 48000.000000, 00000000 } 2014-11-10 10:39:00.266 003BDFE8 (apo.cpp:660): (TRACE) GFX ValidateAndCacheConnectionInfo validated data with success (return value = 0) 2014-11-10 10:39:00.267 003C17E8 (apo.cpp:245): (TRACE) LFX Initialize Enter 2014-11-10 10:39:00.267 003C17E8 (apo.cpp:277): (TRACE) LFX Endpoint GUID: {55EE6789-C822-4BC0-B1C4-4957AB6882A7} 2014-11-10 10:39:00.267 003C17E8 (apo.cpp:353): (TRACE) LFX Successfully created and initialized APO (return value = 0) 2014-11-10 10:39:00.269 003C17E8 (apo.cpp:455): (TRACE) LFX Destructor Enter 2014-11-10 10:39:00.269 003C17E8 (apo.cpp:469): (TRACE) LFX Destructor Exit 2014-11-10 10:39:00.270 003BDFE8 (apo.cpp:455): (TRACE) GFX Destructor Enter 2014-11-10 10:39:00.270 003BDFE8 (apo.cpp:469): (TRACE) GFX Destructor Exit