On Wednesday 31 October 2012 10:37:46 Hans Petter Selasky wrote:
> On Wednesday 31 October 2012 10:03:50 Eric Wong wrote:
> > Hans Petter Selasky <hsela...@c2i.net> wrote:
> > > Hi,
> > > 
> > > Line buffering should be off, but this statement leads to SOX reading 1
> > > and
> > > 
> > > one byte from the recording DSP device under FreeBSD:
> > >     /* Change to non-buffered I/O */
> > >     setvbuf(ft->fp, NULL, _IONBF, sizeof(char) * file->size);
> > >     return(SOX_SUCCESS);
> > > 
> > > I think this flag should be used instead:
> > >            _IOFBF  fully buffered
> > > 
> > > I've tested this change and it works like expected.
> > > 
> > > Any comments?
> > 
> > The code you're changing in src/oss.c no long applies to SoX 14.4.0,
> > how does 14.4.0 work out-of-the-box for you?
> 
> Hi,
> 
> First observation:
> 
> oss.c: In function 'ossinit':
> oss.c:116: warning: dereferencing 'void *' pointer
> oss.c:116: error: request for member '_file' in something not a structure
> or union
> oss.c:124: warning: dereferencing 'void *' pointer
> oss.c:124: error: request for member '_file' in something not a structure
> or union
> oss.c:163: warning: dereferencing 'void *' pointer
> oss.c:163: error: request for member '_file' in something not a structure
> or union
> oss.c:176: warning: dereferencing 'void *' pointer
> oss.c:176: error: request for member '_file' in something not a structure
> or union
> oss.c:186: warning: dereferencing 'void *' pointer
> oss.c:186: error: request for member '_file' in something not a structure
> or union
> oss.c:205: warning: dereferencing 'void *' pointer
> oss.c:205: error: request for member '_file' in something not a structure
> or union
> oss.c:214: warning: dereferencing 'void *' pointer
> oss.c:214: error: request for member '_file' in something not a structure
> or union
> 
> Fixed by renaming fileno( into sox_fileno( and defining this:
> 
> #define sox_fileno(x) fileno((FILE *)(x))
> 
> Second observation:
> 
> Default audio driver is not OSS.
> 
> env AUDIODEVICE=/dev/dsp AUDIODRIVER=oss rec test.wav
> 
> Third observation:
> 
> GIO syscalls are still used, and the length is 1 byte.
> 
>  15260 sox      RET   read 1
>  15260 sox      CALL  read(0x3,0x807b2de37,0x1)
>  15260 sox      GIO   fd 3 read 1 byte
>        0x0000 ff
> 
> Patch needed:
> 
>     /* Change to non-buffered I/O */
>     setvbuf(ft->fp, NULL, _IONBF, sizeof(char) * file->size);
>     return(SOX_SUCCESS);
> }
> 
> Change to:
> 
>     /* Change to non-buffered I/O */
>     setvbuf(ft->fp, NULL, _IOFBF, sizeof(char) * file->size);
>     return(SOX_SUCCESS);
> }
> 

Hi,

Will someone handle this or do I have to file a bug-report?

--HPS

------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
SoX-devel mailing list
SoX-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sox-devel

Reply via email to