[Vorbis-dev] Re: vorbis-tools broken

Conrad Parker conrad at metadecks.org
Sat Jul 14 05:04:22 PDT 2007


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