<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Allegro 5 can compile MP3 support but physically cannot play MP3s, on Linux</title>
		<link>http://www.allegro.cc/forums/view/618731</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 16 Sep 2022 00:02:46 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve got libpulse-dev, libasound-dev, minimp3 from github for Linux audio support for cmake. </p><p>[sidenote: OSS (open source sound) support is in by default, but OSS is heavily depreciated and disabled in the kernel on most distros according to some quick googling.]</p><p>Cmake-GUI lists MP3 support as YES. 
</p><div class="source-code snippet"><div class="inner"><pre>    <span class="k3">-</span> Acodec addon: yes
     <span class="k3">-</span> FLAC: NO
     <span class="k3">-</span> DUMB: NO
     <span class="k3">-</span> Ogg<span class="k3">/</span>Vorbis: yes
     <span class="k3">-</span> Opus: NO
     <span class="k3">-</span> MP3: yes
</pre></div></div><p>
and throws no warnings.</p><p>Then, when I try to play a mp3 the allegro.log says
</p><div class="source-code snippet"><div class="inner"><pre>    audio    I              audio.c:378  do_install_audio                 <span class="k2">[</span>   <span class="n">0</span>.<span class="n">54679</span><span class="k2">]</span> Using PulseAudio driver

    audio    E           audio_io.c:324  <a href="http://www.allegro.cc/manual/al_load_sample"><span class="a">al_load_sample</span></a>                   <span class="k2">[</span>   <span class="n">0</span>.<span class="n">55076</span><span class="k2">]</span> No handler <span class="k1">for</span> audio file extension .mp3 <span class="k3">-</span> therefore <span class="k1">not</span> trying to load .<span class="k3">/</span>data<span class="k3">/</span>extra<span class="k3">/</span>sounds<span class="k3">/</span>pixabay<span class="k3">/</span>karate-chop-6357.mp3.
</pre></div></div><p>

[My build process is confirmed to be running (make -&gt; make install) because before I didn&#39;t have PulseAudio/ALSA support and the error was regarding that. <br />So it shouldn&#39;t be &quot;You forgot to install Allegro after rebuilding&quot; or something like that]</p><p>So unless I&#39;m mistaken and I have to manually register the mp3 file handler, this looks like a bug in the build process.</p><p>The following Allegro code looks like it is supposed to auto setup the handler:
</p><div class="source-code snippet"><div class="inner"><pre>addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c-65-
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c-66-   <span class="c">/* MP3 will mis-identify a lot of mod files, so put its identifier last */</span>
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c-67-#ifdef ALLEGRO_CFG_ACODEC_MP3
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c:68:   ret <span class="k3">&amp;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_register_sample_loader"><span class="a">al_register_sample_loader</span></a><span class="k2">(</span><span class="s">".mp3"</span>, _al_load_mp3<span class="k2">)</span><span class="k2">;</span>
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c-69-   ret <span class="k3">&amp;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_register_audio_stream_loader"><span class="a">al_register_audio_stream_loader</span></a><span class="k2">(</span><span class="s">".mp3"</span>, _al_load_mp3_audio_stream<span class="k2">)</span><span class="k2">;</span>
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c:70:   ret <span class="k3">&amp;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_register_sample_loader_f"><span class="a">al_register_sample_loader_f</span></a><span class="k2">(</span><span class="s">".mp3"</span>, _al_load_mp3_f<span class="k2">)</span><span class="k2">;</span>
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c-71-   ret <span class="k3">&amp;</span><span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_register_audio_stream_loader_f"><span class="a">al_register_audio_stream_loader_f</span></a><span class="k2">(</span><span class="s">".mp3"</span>, _al_load_mp3_audio_stream_f<span class="k2">)</span><span class="k2">;</span>
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c-72-   ret <span class="k3">&amp;</span><span class="k3">=</span> al_register_sample_identifier<span class="k2">(</span><span class="s">".mp3"</span>, _al_identify_mp3<span class="k2">)</span><span class="k2">;</span>
addons<span class="k3">/</span>acodec<span class="k3">/</span>acodec.c-73-#endif
</pre></div></div><p>

[edit] Issue resolved via discord while A.CC was down. I wasn&#39;t initializing the Allegro codec. Which exists on a two line separate page of the A5 manual and not mentioned in the entire sound section of the manual. 10/10 esport ready.</p><p><a href="https://www.allegro.cc/manual/5/audio.html">https://www.allegro.cc/manual/5/audio.html</a></p><p>This is a separate module... and it has TWO FUNCTIONS.</p><p><a href="https://www.allegro.cc/manual/5/acodec.html">https://www.allegro.cc/manual/5/acodec.html</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Chris Katko)</author>
		<pubDate>Fri, 16 Sep 2022 00:02:46 +0000</pubDate>
	</item>
</rss>
