Need simple virtual camera app for Win32 (MFCreateVirtualCamera)
Budget: $750 – $1,500 USD
We need a sample app that demonstrates how to create and send data to a virtual camera on Windows using the MFCreateVirtualCamera API (https://docs.microsoft.com/en-us/windows/win32/api/mfvirtualcamera).
Microsoft provides a sample app for this API (https://github.com/microsoft/Windows-Camera/tree/master/Samples/VirtualCamera), but it is considerably more complex than what we need. We're not Windows developers, much less Win32 programmers, so we're looking for someone to take their sample code and strip it down to just the bare essentials.
Specifically, the job is to write a command-line application that meets the following requirements:
1. When the app starts, it registers the virtual camera with the OS.
2. The virtual cam should support (only) 8-bit RGB data.
3. The "name" of the virtual cam should be configurable (a hard-coded string in main() is sufficient).
4. The app should contain a function that generates a buffer of pixels (or, alternatively, the buffer may be passed in to the function). We will eventually want to reimplement this function with our own code, so this function should be largely standalone and independent of the rest of the app. This function should be called at 30 fps.
5. The app must unregister the virtual camera cleanly when the app exits (including cases where the app exits abnormally).
6. The app should be very robust: all error conditions must be checked, all exceptions must be caught and cleanly handled, etc.
7. The app should have no "extra" features. We want a simple, short, testable, minimal foot-print tool.
8. The app must be well-documented.
9. The build process for the application and associated DLLs must be very well documented.
10. We would prefer not to have a separate installer. If one is needed, it too should be clean, minimal, and well-documented.
11. The application should be implemented so that main() calls the start/stop functions in a top-level class (so that we can run the app as a standalone tool as well as embed it in a larger system).
12. The application should build with VS 2022 and run under Windows 11 Pro (our target environment is .NET 6 and C# 10). No extra effort should be made to be compatible with earlier versions.
Microsoft provides a sample app for this API (https://github.com/microsoft/Windows-Camera/tree/master/Samples/VirtualCamera), but it is considerably more complex than what we need. We're not Windows developers, much less Win32 programmers, so we're looking for someone to take their sample code and strip it down to just the bare essentials.
Specifically, the job is to write a command-line application that meets the following requirements:
1. When the app starts, it registers the virtual camera with the OS.
2. The virtual cam should support (only) 8-bit RGB data.
3. The "name" of the virtual cam should be configurable (a hard-coded string in main() is sufficient).
4. The app should contain a function that generates a buffer of pixels (or, alternatively, the buffer may be passed in to the function). We will eventually want to reimplement this function with our own code, so this function should be largely standalone and independent of the rest of the app. This function should be called at 30 fps.
5. The app must unregister the virtual camera cleanly when the app exits (including cases where the app exits abnormally).
6. The app should be very robust: all error conditions must be checked, all exceptions must be caught and cleanly handled, etc.
7. The app should have no "extra" features. We want a simple, short, testable, minimal foot-print tool.
8. The app must be well-documented.
9. The build process for the application and associated DLLs must be very well documented.
10. We would prefer not to have a separate installer. If one is needed, it too should be clean, minimal, and well-documented.
11. The application should be implemented so that main() calls the start/stop functions in a top-level class (so that we can run the app as a standalone tool as well as embed it in a larger system).
12. The application should build with VS 2022 and run under Windows 11 Pro (our target environment is .NET 6 and C# 10). No extra effort should be made to be compatible with earlier versions.