Question about pcm_formats[] array in sound/core/pcm_misc.c

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

 



I'm confused about the entries for unsigned 24-bit sound in the pcm_formats[] array:

	[SNDRV_PCM_FORMAT_U24_BE] = {
		.width = 24, .phys = 32, .le = 0, .signd = 0,
		.silence = { 0x80, 0x00, 0x00 },
	},

and

	[SNDRV_PCM_FORMAT_U24_3BE] = {
		.width = 24, .phys = 24, .le = 0, .signd = 0,
		.silence = { 0x80, 0x00, 0x00 },
	},

SNDRV_PCM_FORMAT_U24_BE means a 24-bit sample packed into a 32-bit word.  So I 
presume that if the 24-bit sample is:

0x123456

then when that sample is written to memory, it looks like this:

X	X + 1	X + 2	X + 3
0x00	0x12	0x34	0x56

(where X is some address in memory).

If that's so, shouldn't the entry for SNDRV_PCM_FORMAT_U24_BE look like this:

	[SNDRV_PCM_FORMAT_U24_BE] = {
		.width = 24, .phys = 32, .le = 0, .signd = 0,
		.silence = { 0x00, 0x80, 0x00, 0x00 },
	},                  ^^^^^^

-- 
Timur Tabi
Linux kernel developer at Freescale
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux