[Vorbis-dev] Re: vorbis-tools broken

Ian Malone ibmalone at gmail.com
Sat Jul 14 05:23:06 PDT 2007


Appears to, though I haven't any multichannel files
to test against (but it's a fairly simple bug).
I believe this will also be https://trac.xiph.org/ticket/1209

Afraid I don't have svn.xiph.org access.

imalone

Conrad Parker wrote:
> Ian,
> 
> cool, I infer you mean that the patch you included fixes the bug you found?
> 
> Do you have write access to svn.xiph.org, if so please commit ...
> 
> Conrad.
> 
> On 14/07/07, Ian Malone <ibmalone at gmail.com> wrote:
>> (Apologies to list maintainer, sent from wrong address first try.)
>> Ian Malone wrote:
>>  > It seems that oggdec in Fedora 7 produces a wav
>>  > header followed by lots of zeros.  Building
>>  > vorbis-tools 1.0.1 from source produces a working
>>  > oggdec, so I think the problem is in the
>>  > vorbis-tools package.
>>  >
>>  > I can't build vorbis-tools from svn due to some
>>  > make problems, but I can build the F7 SRPM.
>>  > There are no differences between the share and
>>  > oggdec directories, but there are autoconf
>>  > related changes.  Between 1.0.1 and svn there
>>  > are lots of changes involving channels.
>>  > Significantly, ogg123 works.
>>  >
>>  > Can anyone confirm this on another platform?
>>  >
>>
>> Turns out I can build from trunk on FC6, and
>> the problem persists.  Appears to be due to
>> change 11666.
>>
>> https://trac.xiph.org/changeset/11666
>>
>> I can see what's happened: outbuf is written, but
>> only contains data if permute_channels was used.
>>
>> Index: oggdec/oggdec.c
>> ===================================================================
>> --- oggdec/oggdec.c     (revision 13259)
>> +++ oggdec/oggdec.c     (working copy)
>> @@ -255,6 +255,7 @@
>>       OggVorbis_File vf;
>>       int bs = 0;
>>       char buf[8192], outbuf[8192];
>> +    char *p_outbuf;
>>       int buflen = 8192;
>>       unsigned int written = 0;
>>       int ret;
>> @@ -324,9 +325,13 @@
>>           if(channels > 2 && !raw) {
>>             /* Then permute! */
>>             permute_channels(buf, outbuf, ret, channels, bits/8);
>> +         p_outbuf = outbuf;
>>           }
>> +       else {
>> +         p_outbuf = buf;
>> +       }
>>
>> -        if(fwrite(outbuf, 1, ret, out) != ret) {
>> +        if(fwrite(p_outbuf, 1, ret, out) != ret) {
>>               fprintf(stderr, "Error writing to file: %s\n",
>> strerror(errno));
>>               ov_clear(&vf);
>>               return 1;
>> _______________________________________________
>> Vorbis-dev mailing list
>> Vorbis-dev at xiph.org
>> http://lists.xiph.org/mailman/listinfo/vorbis-dev
>>
>>
> 



More information about the Vorbis-dev mailing list