Hi *,

It seems the latest trunk wav_hdr.c is not working (at least on my env -
solaris).

I have done a diff between the trunk version and the version I have that
works (with the rest of the trunk)

any pointers:

the debug follow:

(19204) DEBUG: IvrAudioFile_new (IvrAudio.cpp:17): ----------
IvrAudioFile_alloc -----------
(19204) DEBUG: wav_read_header (wav_hdr.c:126): trying to read WAV file
(19204) DEBUG: wav_read_header (wav_hdr.c:129): tag = <RIFF>
(19204) DEBUG: wav_read_header (wav_hdr.c:137): file size = <340787200>
(19204) DEBUG: wav_read_header (wav_hdr.c:140): tag = <WAVE>
(19204) DEBUG: wav_read_header (wav_hdr.c:147): tag = <fmt >
(19204) DEBUG: wav_read_header (wav_hdr.c:155): chunk_size = <268435456>
(19204) DEBUG: wav_read_header (wav_hdr.c:159): fmt = <100>
(19204) DEBUG: wav_read_header (wav_hdr.c:163): channels = <256>
(19204) DEBUG: wav_read_header (wav_hdr.c:167): rate = <1075773440>
(19204) DEBUG: wav_read_header (wav_hdr.c:174): bits/sample = <4096>
(19204) ERROR: wav_read_header (wav_hdr.c:194): fread: Error 0 (sr=0)
(19204) ERROR: fpopen_int (AmAudioFile.cpp:199): open returned -1: Error 0

All the info printed in this debug so far is also bogus!
2c2
<  * $Id: wav_hdr.c 724 2008-02-15 13:09:30Z sayer $
---
>  * $Id: wav_hdr.c 966 2008-05-15 16:13:13Z sayer $
35c35,38
< #if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN))
---
> #include <stdio.h>
> #include <stdlib.h>
> 
> #if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || (defined(BYTE_ORDER) && (BYTE_ORDER == BIG_ENDIAN))
46c49
< #elif (defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN)
---
> #elif (defined(__BYTE_ORDER) && (__BYTE_ORDER == __LITTLE_ENDIAN)) || defined(_LITTLE_ENDIAN) || defined(__LITTLE_ENDIAN) || (defined(BYTE_ORDER) && (BYTE_ORDER == LITTLE_ENDIAN))
58c61,65
<     if((sr != 1) || ferror(fp)) return -1;
---
>     if((sr != 1) || ferror(fp)) { \
>       ERROR("fread: %s (sr=%d)\n", strerror(errno), sr);	\
>     return -1;					\
>     }
> \
81a89,105
> //If wav_dummyread() had a problem, return code -1
> int wav_dummyread(FILE *fp, unsigned int size)
> {
>   unsigned int s;
>   char *dummybuf;
>   
>   DBG("Skip chunk by reading dummy bytes from stream\n");
>   dummybuf = (char*) malloc (size);
>   if(dummybuf==NULL) {
>       ERROR("Can't alloc memory for dummyread!\n");
>       return -1;
>   }
> 
>   SAFE_READ(dummybuf,size,fp,s);
>   free(dummybuf);
>   return 0;
> } 
94a119,120
>   char dummy[6]={'\0'};
>   int is_seekable = 1;
105c131
<     DBG("wrong format !");
---
>     DBG("wrong format !\n");
116c142
<     DBG("wrong format !");
---
>     DBG("wrong format !\n");
123c149
<     DBG("wrong format !");
---
>     DBG("wrong format !\n");
144c170
<   fseek(fp,6,SEEK_CUR);
---
>   SAFE_READ(&dummy,6,fp,s); // skip by reading into dummy buffer
160c186,190
<   fseek(fp,chunk_size-16,SEEK_CUR);
---
>   if ((fseek(fp,chunk_size-16,SEEK_CUR) < 0) 
>       && errno == EBADF) {
>     is_seekable = 0;
>     wav_dummyread(fp,chunk_size-16);
>   }
174c204,207
<     fseek(fp,chunk_size,SEEK_CUR);
---
>     if (is_seekable)
>       fseek(fp,chunk_size,SEEK_CUR);
>     else 
>       wav_dummyread(fp,chunk_size);
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to