This question is mainly directed at John Edwards, I believe. I'm attempting to use oggdec.exe in a batch conversion of ogg vorbis files for use on a portable player. I'm using the -o option to redirect output to the LAME encoder. So far so good.
<br><br>However, I also want to do volume leveling using the replaygain tags. If I specify track (radio) gain, everything works fine, however, when I specify album (audiophile) gain, no gain is applied. I've had a look at the code, and as near as I can tell the problem is in here:
<br><br>line 775 of oggdec.c<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(!send_to_stdout &amp;&amp; audiophile || radio)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fprintf(stderr, audiophile <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ? &quot; Running in Album/Audiophile mode\n\n&quot;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; : &quot; Running in Track/Radio mode\n\n&quot;);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* We are using ReplayGain tags, so get the scale for gain adjustment. */<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; scale = get_scale(file_names[i], audiophile, radio);
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; scale = 1.0;<br><br>It seems to me from looking at that code that it shouldn't do either track or album gain when stdout is selected, but that contradicts the actual results that I've obtained. Perhaps I don't fully grasp the logical operator rules in C? In C# this would dump to the else as soon as !send_to_stdout evaluated as false, and the audiophile and radio operands would not even be evaluated. I'm thinking that the correct solution would be to take the !send_to_stdout out of the first if statement and add it in before the fprintf() call. In fact, I've seen the &quot;Running in Track/Radio mode&quot; message when using the options &quot;-r -o&quot;.
<br><br>I'm not a C/C++ programmer, so although I can sort of read this code, I'm not at all familiar with getting it to compile. Using instructions that were posted to this list a month or so back, I've attempted to compile the project with Visual Studio 2005, but I haven't met with any success on that front.
<br><br>Any help (and maybe an updated binary ;) ) would be appreciated. Thanks.<br><br clear="all">-- <br>Jeremy