[PD] [PD-dev] oggread~ not working on pd-extended or libpd on windows.

Rafael Vega email.rafa at gmail.com
Sat Apr 5 17:57:01 CEST 2014


Extended on MinGW and my libpd project on MinGW show the same problem, that
makes sense. Thanks, Martin!


On Sat, Apr 5, 2014 at 10:49 AM, Martin Peach <martin.peach at sympatico.ca>wrote:

> I think vanilla is compiled with MSVC and extended with MinGW so there are
> incompatibilities in the c runtime especially where file pointers are
> concerned. Sometimes externals will work on both versions but if the
> external opens its own files using Pd functions to find the path then it
> probably won't.
>
> Martin
>
>
> On 2014-04-05 11:36, Rafael Vega wrote:
>
>> I also find it strange that using the external on pd-vanilla by copying
>> the dll to the "extra" folder in the vanilla directory works fine. Any
>> ideas why? Maybe has something to do with compiler environment
>> differences between vanilla and extended? Do you guys use MinGW for both?
>>
>>
>>
>> On Sat, Apr 5, 2014 at 10:34 AM, Rafael Vega <email.rafa at gmail.com
>> <mailto:email.rafa at gmail.com>> wrote:
>>
>>     Hi Miller,
>>
>>     On my windows machines (XP and 8.1), if I tried to open with mode
>>     'r', the later call to ov_open would fail. If I change the mode to
>>     'rb', the later call to ov_open works fine. I also read somewhere
>>     that the 'b' mode does nothing on Unix (I still have to test that
>>     when I'm back to my Linux and Mac machines).
>>
>>     As for the comparison against NULL, the original code was comparing
>>
>>     if((x->x_file = sys_fopen(filename->s_name, "r")) < 0)
>>
>>     And I changed it to  <=  instead. You are right in that it makes no
>>     sense to compare the sign of a pointer so  ==  it is :)
>>
>>     R.
>>
>>
>>
>>     On Sat, Apr 5, 2014 at 9:03 AM, Miller Puckette <msp at ucsd.edu
>>     <mailto:msp at ucsd.edu>> wrote:
>>
>>         I THink it should really be:
>>
>>         if((x->x_file = sys_fopen(filename->s_name, "r")) == 0)
>>
>>         sys_fopen returns NULL (also known as 0) on failure, otherwise a
>>         pointer;
>>         it makes no sense to check the sign of a pointer as far as I know.
>>
>>         cheers
>>         Miller
>>
>>         On Fri, Apr 04, 2014 at 11:21:37PM -0400, Martin Peach wrote:
>>          > I think it's here:
>>          >
>>          > http://sourceforge.net/p/pure-data/patches/
>>          >
>>          > Martin
>>          >
>>          > On 2014-04-04 21:49, Rafael Vega wrote:
>>          > >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 at gmail.com <mailto:email.rafa at gmail.com>
>>          > ><mailto:email.rafa at gmail.com <mailto:email.rafa at 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 <http://freesound.org>
>>         <http://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
>>          > >    [2] http://xiph.org/vorbis/doc/vorbisfile/ov_open.html
>>          > >
>>          > >
>>          > >
>>          > >    On Fri, Apr 4, 2014 at 5:48 PM, Rafael Vega
>>         <email.rafa at gmail.com <mailto:email.rafa at gmail.com>
>>          > >    <mailto:email.rafa at gmail.com
>>
>>         <mailto:email.rafa at 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 at gmail.com <mailto:email.rafa at gmail.com>
>>         <mailto:email.rafa at gmail.com <mailto:email.rafa at gmail.com>>
>>
>>          > >
>>          > >
>>          > >
>>          > >
>>          > >    --
>>          > >    Rafael Vega
>>          > > email.rafa at gmail.com <mailto:email.rafa at gmail.com>
>>         <mailto:email.rafa at gmail.com <mailto:email.rafa at gmail.com>>
>>
>>          > >
>>          > >
>>          > >
>>          > >
>>          > >--
>>          > >Rafael Vega
>>          > >email.rafa at gmail.com <mailto:email.rafa at gmail.com>
>>         <mailto:email.rafa at gmail.com <mailto:email.rafa at gmail.com>>
>>          > >
>>          > >
>>          > >_______________________________________________
>>          > >Pd-dev mailing list
>>          > >Pd-dev at iem.at <mailto:Pd-dev at iem.at>
>>
>>          > >http://lists.puredata.info/listinfo/pd-dev
>>          > >
>>          >
>>          >
>>          > _______________________________________________
>>          > Pd-dev mailing list
>>          > Pd-dev at iem.at <mailto:Pd-dev at iem.at>
>>
>>          > http://lists.puredata.info/listinfo/pd-dev
>>
>>
>>
>>
>>     --
>>     Rafael Vega
>>     email.rafa at gmail.com <mailto:email.rafa at gmail.com>
>>
>>
>>
>>
>> --
>> Rafael Vega
>> email.rafa at gmail.com <mailto:email.rafa at gmail.com>
>>
>
>


-- 
Rafael Vega
email.rafa at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20140405/3f13d32a/attachment-0001.htm>


More information about the Pd-list mailing list