FIXED: Spout Max Senders Registry Entry Ignored

The wiki states

however this entry is not added when Spout is installed. When I attempted to add it (even after a reboot) touch designer still refused to output more than 10 streams.

This occurred on Windows 10, TD Build 099.2017.15400 , Spout Version 2.006

Thanks,
Matt

UPDATE 1:
I found in the spout source code where the MaxSenders is read from the registry and hard coded a 100 value. If I build Spout and use that lib and dll in my project GetMaxSenders() returns 100. If I overwrite the TD Spout.dll file with this new Dll no change occurs in TD. Maybe TD needs to be rebuilt?

UPDATE 2:
Issue seems to be just TD that doesn’t read the max from the added registry entry. The stock spout 2.006 download correctly reads MaxSenders but TD does not. Did the 10 limit get hard coded into TD at some point?

Is TD the first application to start? The first application to start will create the shared CPU memory block that contains the list of the senders. Other applications are not able to resize this block once that has occurred. Once all the applications are closed the block will be freed and the first one to start again will create it at the size they think it should be created at. We should read the registry, we are using the spout SDK to manage all that shared memory.

If I follow the below steps the issue still occurs:

  1. Restart Computer to ensure all programs have fully closed and memory is freed.
  2. I open Visual Studio and Run my program
    2a. My program calls SetMaxSenders(100)
    2b. I have my program print the result of GetMaxSenders(). The result is 100.
    2c. I have my program print the result of GetSenderCount(). The result is 0.
  3. I open TD New Project
  4. Create 10 SyphonSpoutOut Nodes
  5. I uniquely name the 10 nodes
  6. I create a SyphonSpoutIn Node and can see all 10 of the uniquely named Outs
  7. I create an 11th Out and give it a unique name
  8. The input drops the 10th out and only shows 1-9 and 11 (still 10 total).
  9. Other Spout receivers are checked and they can also not see all 11 Outs

*Environment Variable is set to 100 as well.

As a further update I am able to create 10+ instances of the demo senders and receive them all in my program (not TD or the demo Receiver… seems to be an issue maybe with the SpoutPanel not displaying all of the available senders). However, I can’t create 10+ senders in TD and then receive them in my program using the exact same order of operations etc.

Thanks, I incorrectly assumed the SDK would handle inspecting that registry entry automatically. I’m now looking at that and passing it onto the SDK. I’ve also set our default Max Senders to 100 if the registry entry is missing.
Fix in build 2017.15900 or later.