Even more stuff ;)

In the same file, oggread~.c there is a line that reads:

    if((x->x_file = sys_fopen(filename->s_name, "r")) < 0)

But it should be:

    if((x->x_file = sys_fopen(filename->s_name, "rb")) <= 0)

Now, to figure out how to submit a patch to pd-extended :P





On Fri, Apr 4, 2014 at 7:22 PM, Rafael Vega <email.rafa@gmail.com> wrote:
Follow up:

Looking at the code for oggread~, I found that it does the actual opening of the file with        

    if(ov_open(x->x_file, &x->x_ov, NULL, -1) < 0)

on the ov_open documentation it warns windows programmers not to use ov_open but ov_open_callbacks instead [1] and [2] so I changed that line to the following and I'm getting the message "Bitstream does not contain any Vorbis data". I'm pretty sure my file is a valid ogg file. I created it using audacity and also tried with an ogg file downloaded from freesound.org.

Any help with this will be very much appreciated

:)


        int ret = ov_open_callbacks(x->x_file, &x->x_ov, NULL, -1, OV_CALLBACKS_DEFAULT);
        switch(ret){
            case OV_EREAD:
                 post("A read from media returned an error.");
                 break;
            case OV_ENOTVORBIS:
                post("Bitstream does not contain any Vorbis data");
                break;
            case OV_EVERSION:
                post("OV_EVERSION - Vorbis version mismatch.");
                break;
            case OV_EBADHEADER:
                post("Invalid Vorbis bitstream header.");
                break;
            case OV_EFAULT:
                post("Internal logic fault; indicates a bug or heap/stack corruption.");
                break;
        }
        if(ret <0)



links:

[1] http://xiph.org/vorbis/doc/vorbisfile/ov_open_callbacks.html


On Fri, Apr 4, 2014 at 5:48 PM, Rafael Vega <email.rafa@gmail.com> wrote:
Hi.

I am trying to use [oggread~] external on an application i'm developing with libpd. No problems on mac or linux. Howerver, on windows (xp and 8, 32bit) I keep getting an error message from oggread~ when I try to open an ogg file. Even ogg_read~-help.pd won't work:

oggread~: file "C:/Users/rv/any.ogg" opened
oggread~: error: could not open "C:/Users/rv/Desktop/any.ogg" as an OggVorbis file
oggread~: file closed due to error

I have tried pd-extended (both installer and standalone) and I also compiled oggread~ into my application and loaded it with libpd, same outcome.

The weirdest part is that if I run pd vanilla, copy oggread~.dll from pd-extended into the "extra" directory, the ogg files are opened correctly.

Any ideas on how to make this work? What kind of debug info can I provide?

--



--



--
Rafael Vega
email.rafa@gmail.com