<div dir="ltr"><div><div><div><div>Hello,<br><br></div>Most Linux distributions using libav have voted to move to ffmpeg in the future, Debian (and thus Ubuntu) being one of the most prominent ones.<br><br></div>Even with ffmpeg API changes, remaining source-compatible should not be a problem for wine. But I guess the problem is not source-compatibility for wine but binary-compatibility for CrossOver. In that case, I'd suggest dlopen'ing and checking for the symbol you want. Maybe even have different code paths if avcodec_decode_audio5 is available (that means a later version of ffmpeg is available on that system).<br><br></div>Or you could forget about everything and just take libwmapro from RockBox:<br><br><a href="https://github.com/mguentner/rockbox/tree/master/apps/codecs/libwmapro">https://github.com/mguentner/rockbox/tree/master/apps/codecs/libwmapro</a><br><br></div>They took ffmpeg, isolated the WMA code and made it a standalone library. They even further optimized the code. It's taken from an old version of ffmpeg (2010) but it works :-)<br><br><div><div><div><div><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 20, 2015 at 9:47 PM, Andrew Eikum <span dir="ltr"><<a href="mailto:aeikum@codeweavers.com" target="_blank">aeikum@codeweavers.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I have a working implementation of the new xaudio2 API in my tree.<br>
Microsoft is treating it as a replacement for dsound[1], and as a<br>
result, this new API is used by lots of recent games; see Bug<br>
26808[2] for some examples.<br>
<br>
Most games that use the xaudio2 API use a version of Microsoft's WMA<br>
codec. Wine doesn't currently have the ability to decode this audio<br>
for playback. In order for the xaudio2 implementation to be useful for<br>
most games, we'll need some way to convert it. I chose to use the<br>
FFmpeg library to decode WMA audio.<br>
<br>
This means for most games, Wine's built-in xaudio2 will require that<br>
the 32-bit FFmpeg library be available on the system to successfully<br>
play audio.<br>
<br>
The new code only uses the audio decoding features of FFmpeg,<br>
specifically linking only against libavcodec and libavutil. The newest<br>
APIs that we use were introduced in 2013. Most of the rest date from<br>
2011 and a few from 2002. FFmpeg's API isn't stable, but I don't<br>
expect much maintenance burden from the small piece that we're using.<br>
<br>
An additional complication is the libav fork. The APIs that we're<br>
using are currently unchanged between FFmpeg and libav, so libav<br>
should function as a drop-in replacement. Further, distros seem to be<br>
migrating back to FFmpeg, if they ever changed. So again, I don't<br>
expect this to be a barrier.<br>
<br>
Wine packagers and developers, do you have any thoughts or objections<br>
to depending on FFmpeg/libav's libavutils and libavcodec for xaudio2<br>
support?<br>
<br>
[1] <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ee415813%28v=vs.85%29.aspx" rel="noreferrer" target="_blank">https://msdn.microsoft.com/en-us/library/windows/desktop/ee415813%28v=vs.85%29.aspx</a><br>
<br>
[2] <a href="https://bugs.winehq.org/show_bug.cgi?id=26808" rel="noreferrer" target="_blank">https://bugs.winehq.org/show_bug.cgi?id=26808</a><br>
<br>
Thanks,<br>
Andrew<br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Pau Garcia i Quiles<br><a href="http://www.elpauer.org" target="_blank">http://www.elpauer.org</a><br>(Due to my workload, I may need 10 days to answer)</div>
</div>