Contributing back to the PipeWire project
Over the past few months, my colleagues and I at Sony Interactive Entertainment have been working on a cross-platform media toolkit that makes use of SPA and some of its interfaces. As such, we've been working on supporting SPA on several platforms, including Windows.
It took a little while for the team to get up to speed on SPA's architecture and interfaces, but it's starting to pay off as we've found the interfaces are very well thought out and generally quite portable.
Some of the work we've done so far includes:
- Support for loading SPA-based plugins on Windows and Mac OSX
- A cross-platform implementation of the
Loop
interface built on top of libuv - Some minor portability fixes in the SPA headers (e.g. for Microsoft's MSVC runtime or including in C++)
- A set of C++ wrappers for various pieces of SPA functionality (callbacks, hooks, loop, pod building, lists, etc.) to bridge SPA interfaces (either a consumer or implementor)
- A node for desktop video capture on Windows (using DXGI Desktop Duplication API)
- Porting
videotestsrc
/audiotestsrc
to theLoopUtils
interface (theSystem
interface is a little too Linux-specific)
It took a little while, but I finally got approval so we can also provide contributions back to the PipeWire project (which includes SPA). I'm acting as the contribution manager, so generally things will pass by me first.
My questions are:
- Is there interest in accepting patches that make the SPA headers easier to use on Windows, etc.?
- Is there interest in any of the above work? (though I realize that many parts might be out of the scope of the PipeWire project)
- What would your preferred way for us to interact with the project? Jump on IRC? Open an issue here? Post a fork/PRs?
I'll jump on IRC a little later this evening to say 'Hi'.
Related MRs