Bug#292137: half-patch for gramofile's bplay.c

2005-02-17 Thread Daniel Kobras
On Tue, Feb 01, 2005 at 05:33:41PM +, Paul Brossier wrote:
 nice. attached is the patch corrected for fmtheaders (could benefit
 fiddling a bit with the line numbers to avoid the warnings). your patch
 seems to produce cleaner files than mine (aplay like them), altough i
 still get Premature EOF with.

Thanks a lot! I'm puzzled about the premature EOF, though. Can you
please provide me with the output of both 'hd -n 96 some.wav' and 'ls -l
some.wav', in order to find out what's still going wrong here?

Thanks,

Daniel.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#292137: half-patch for gramofile's bplay.c

2005-02-01 Thread Paul Brossier
hi,

i found the following patches in #60041 and #126257.  with this,
recorded files can be played using bplay, but the file header is still
somehow badly crafted:

$ play new.wav
playing new.wav
sox: Premature EOF on .wav input file

i also noted a few other things that could be grabbed from current
bplay: 
 - handling of very long files (see last patch in #126257)
 - updated Die function to make sure the forked process is killed.

And at the end of the recording, when showing the 'Recording
information', brec_gramo eats all the cpu available until OK is pressed.

ciao, piem
--- gramofile-1.6.orig/bplaysrc/bplay.c
+++ gramofile-1.6/bplaysrc/bplay.c
@@ -307,6 +307,25 @@
 
memcpy((header.data_chunk), data, 4);
header.data_length = bcount;
+   
+#if  __BYTE_ORDER == __BIG_ENDIAN
+#includebyteswap.h
+   /* let's do a bit of reordering */
+   header.length =  bswap_32 (header.length);
+   header.sc_len =  bswap_32 (header.sc_len);
+   header.format =  bswap_16 (header.format);
+   header.modus  =  bswap_16 (header.modus);
+
+   header.sample_fq  =  bswap_32 
(header.sample_fq);
+   header.byte_p_sec =  bswap_32 
(header.byte_p_sec);
+
+   header.byte_p_spl =  bswap_16 
(header.byte_p_spl);
+   header.bit_p_spl  =  bswap_16 
(header.bit_p_spl);
+
+   header.data_chunk =  bswap_32 
(header.data_chunk);
+   header.data_length =  bswap_32 
(header.data_length);
+#endif
+
write(thefd, header, sizeof(header));
}
case F_RAW:
@@ -476,6 +495,25 @@
 
 memcpy((void*)wavhd, (void*)hd_buf, 20);
 count = read(thefd, ((char*)wavhd)+20, sizeof(wavhd) - 20);
+
+#if  __BYTE_ORDER == __BIG_ENDIAN
+#includebyteswap.h
+/* let's do a bit of reordering */
+wavhd.length =  bswap_32 (wavhd.length);
+wavhd.sc_len =  bswap_32 (wavhd.sc_len);
+wavhd.format =  bswap_16 (wavhd.format);
+wavhd.modus  =  bswap_16 (wavhd.modus);
+
+wavhd.sample_fq  =  bswap_32 (wavhd.sample_fq);
+wavhd.byte_p_sec =  bswap_32 (wavhd.byte_p_sec);
+
+wavhd.byte_p_spl =  bswap_16 (wavhd.byte_p_spl);
+wavhd.bit_p_spl  =  bswap_16 (wavhd.bit_p_spl);
+
+wavhd.data_chunk =  bswap_32 (wavhd.data_chunk);
+wavhd.data_length =  bswap_32 (wavhd.data_length);
+#endif
+   
 if(wavhd.format != 1) Die(Input is not a PCM WAV file);
 #ifndef LP2CD
 if (! (modsMSPEED))