[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