This would achieve ABI compatibility with arbitrary FFmpeg versions, without having to redefine / fixup FFmpeg structures manually. Downstream Wine distributions may be interested in having an embedded but crippled FFmpeg shipped with them, avoiding issues related to FFmpeg distribution, while still being able to dynamically load the system, or externally provided, more capable FFmpeg version. The distributions would only need to build every supported winedmo versions, targeting the corresponding FFmpeg ABI, to later dynamically load them. The non-versioned winedmo would load the distribution embedded FFmpeg for instance, while the versioned modules would target a matching system library. This also introduces an unified interface with winegstreamer, allowing us to get rid of the duplicated media source code. -- v2: winedmo: Load winedmo for specific FFmpeg versions dynamically. winedmo: Allow building winedmo against multiple FFmpeg versions. winedmo: Expose function tables instead of individual functions. mfsrcsnk: Use function pointers for winedmo demuxer functions. https://gitlab.winehq.org/wine/wine/-/merge_requests/9913