S32_LE format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I experimented with the following command:

$ arecord -vv -M -r 48000 -f S32_LE -t raw -d 60 -D hw /tmp/out

which gave the following output:

Recording raw data '/tmp/out' : Signed 32 bit Little Endian, Rate 
48000 Hz, Mono
Hardware PCM card 0 'HDSPM MADI' device 0 subdevice 0
Its setup is:
   stream       : CAPTURE
   access       : MMAP_NONINTERLEAVED
   format       : S32_LE
   subformat    : STD
   channels     : 1
   rate         : 48000
   exact rate   : 48000 (48000/1)
   msbits       : 24
   buffer_size  : 8192
   period_size  : 4096
   period_time  : 85333
   tstamp_mode  : NONE
   period_step  : 1
   avail_min    : 4096
   start_threshold  : 1
   stop_threshold   : 8192
   silence_threshold: 0
   silence_size : 0
   boundary     : 1073741824

AFAIU, S32_LE means that each sample is a 32-bit signed quantity 
stored least-significant byte first, right?

e.g. -2 (0xfffffffe) is stored as "fe ff ff ff" and 1 is stored as
"01 00 00 00" right?

The dump of the beginning /tmp/out follows:

00000000  00 00 a5 f5 08 00 43 f6  08 00 bc f6 00 00 20 f7
00000010  08 00 9a f7 00 00 3e f8  00 00 11 f9 08 00 f2 f9
00000020  00 00 a9 fa 08 00 42 fb  08 00 e7 fb 08 00 6b fc
00000030  08 00 ae fc 00 00 f6 fc  00 00 75 fd 08 00 f3 fd
00000040  00 00 31 fe 08 00 41 fe  00 00 62 fe 00 00 b5 fe
00000050  00 00 30 ff 08 00 c2 ff  00 00 47 00 08 00 80 00
00000060  00 00 65 00 00 00 47 00  00 00 63 00 08 00 ab 00
00000070  00 00 f9 00 08 00 0c 01  08 00 c4 00 00 00 60 00
00000080  08 00 1a 00 00 00 c3 ff  00 00 2d ff 08 00 7e fe
00000090  00 00 d5 fd 00 00 2f fd  00 00 95 fc 00 00 03 fc
000000a0  08 00 66 fb 00 00 d7 fa  08 00 6b fa 08 00 01 fa
000000b0  08 00 91 f9 00 00 41 f9  00 00 e9 f8 08 00 4e f8
000000c0  00 00 c4 f7 00 00 89 f7  00 00 2a f7 08 00 43 f6
000000d0  08 00 f9 f4 00 00 81 f3  08 00 0f f2 08 00 ce f0
000000e0  08 00 81 ef 08 00 08 ee  08 00 b2 ec 00 00 7e eb
000000f0  08 00 27 ea 00 00 d4 e8  00 00 bd e7 00 00 b6 e6

The first sample is stored as 00 00 a5 f5.
Does this represent the value 0xf5a50000?

For the majority of samples, the first two bytes are 00 00.
Is this because the input stream was, in fact, a 16-bit stream?

For the rest of the samples, the first two byte are 08 00.
Why don't all the samples start with 00 00?
Does this sequence 08 00 have a special meaning?

-- 
Regards.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux