Commit 7b31d009 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: Define more channel map positions

For following the standard, define more channel map positions and
shuffle the items a bit:

- As both PulseAudio and gstreamer define MONO channel position
  explicitly, we should follow that, too.  The mono streams point to
  this channel position unless they are explicitly assigned to certain
  channel positions.

- Top-front-* and Top-rear-* positions are added, carried from
  PulseAudio's definitions.

- Move NA and MONO definitions at the top of table right after
  UNKNOWN, since these are more abstract in comparison with other
  practical positions.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 0afdb8f2
...@@ -76,8 +76,10 @@ here is a cut: ...@@ -76,8 +76,10 @@ here is a cut:
/* channel positions */ /* channel positions */
enum { enum {
/* this follows the alsa-lib mixer channel value + 1 */
SNDRV_CHMAP_UNKNOWN = 0, SNDRV_CHMAP_UNKNOWN = 0,
SNDRV_CHMAP_NA, /* N/A, silent */
SNDRV_CHMAP_MONO, /* mono stream */
/* this follows the alsa-lib mixer channel value + 3 */
SNDRV_CHMAP_FL, /* front left */ SNDRV_CHMAP_FL, /* front left */
SNDRV_CHMAP_FR, /* front right */ SNDRV_CHMAP_FR, /* front right */
SNDRV_CHMAP_RL, /* rear left */ SNDRV_CHMAP_RL, /* rear left */
...@@ -98,8 +100,13 @@ enum { ...@@ -98,8 +100,13 @@ enum {
SNDRV_CHMAP_FCH, /* front center high */ SNDRV_CHMAP_FCH, /* front center high */
SNDRV_CHMAP_FRH, /* front right high */ SNDRV_CHMAP_FRH, /* front right high */
SNDRV_CHMAP_TC, /* top center */ SNDRV_CHMAP_TC, /* top center */
SNDRV_CHMAP_NA, /* N/A, silent */ SNDRV_CHMAP_TFL, /* top front left */
SNDRV_CHMAP_LAST = SNDRV_CHMAP_NA, SNDRV_CHMAP_TFR, /* top front right */
SNDRV_CHMAP_TFC, /* top front center */
SNDRV_CHMAP_TRL, /* top rear left */
SNDRV_CHMAP_TRR, /* top rear right */
SNDRV_CHMAP_TRC, /* top rear center */
SNDRV_CHMAP_LAST = SNDRV_CHMAP_TRC,
}; };
When a PCM stream can provide more than one channel map, you can When a PCM stream can provide more than one channel map, you can
......
...@@ -474,8 +474,10 @@ enum { ...@@ -474,8 +474,10 @@ enum {
/* channel positions */ /* channel positions */
enum { enum {
/* this follows the alsa-lib mixer channel value + 1 */
SNDRV_CHMAP_UNKNOWN = 0, SNDRV_CHMAP_UNKNOWN = 0,
SNDRV_CHMAP_NA, /* N/A, silent */
SNDRV_CHMAP_MONO, /* mono stream */
/* this follows the alsa-lib mixer channel value + 3 */
SNDRV_CHMAP_FL, /* front left */ SNDRV_CHMAP_FL, /* front left */
SNDRV_CHMAP_FR, /* front right */ SNDRV_CHMAP_FR, /* front right */
SNDRV_CHMAP_RL, /* rear left */ SNDRV_CHMAP_RL, /* rear left */
...@@ -496,8 +498,13 @@ enum { ...@@ -496,8 +498,13 @@ enum {
SNDRV_CHMAP_FCH, /* front center high */ SNDRV_CHMAP_FCH, /* front center high */
SNDRV_CHMAP_FRH, /* front right high */ SNDRV_CHMAP_FRH, /* front right high */
SNDRV_CHMAP_TC, /* top center */ SNDRV_CHMAP_TC, /* top center */
SNDRV_CHMAP_NA, /* N/A, silent */ SNDRV_CHMAP_TFL, /* top front left */
SNDRV_CHMAP_LAST = SNDRV_CHMAP_NA, SNDRV_CHMAP_TFR, /* top front right */
SNDRV_CHMAP_TFC, /* top front center */
SNDRV_CHMAP_TRL, /* top rear left */
SNDRV_CHMAP_TRR, /* top rear right */
SNDRV_CHMAP_TRC, /* top rear center */
SNDRV_CHMAP_LAST = SNDRV_CHMAP_TRC,
}; };
#define SNDRV_CHMAP_POSITION_MASK 0xffff #define SNDRV_CHMAP_POSITION_MASK 0xffff
......
...@@ -397,7 +397,7 @@ static struct snd_pcm_ops ct_pcm_capture_ops = { ...@@ -397,7 +397,7 @@ static struct snd_pcm_ops ct_pcm_capture_ops = {
static const struct snd_pcm_chmap_elem surround_map[] = { static const struct snd_pcm_chmap_elem surround_map[] = {
{ .channels = 1, { .channels = 1,
.map = { SNDRV_CHMAP_UNKNOWN } }, .map = { SNDRV_CHMAP_MONO } },
{ .channels = 2, { .channels = 2,
.map = { SNDRV_CHMAP_RL, SNDRV_CHMAP_RR } }, .map = { SNDRV_CHMAP_RL, SNDRV_CHMAP_RR } },
{ } { }
...@@ -405,7 +405,7 @@ static const struct snd_pcm_chmap_elem surround_map[] = { ...@@ -405,7 +405,7 @@ static const struct snd_pcm_chmap_elem surround_map[] = {
static const struct snd_pcm_chmap_elem clfe_map[] = { static const struct snd_pcm_chmap_elem clfe_map[] = {
{ .channels = 1, { .channels = 1,
.map = { SNDRV_CHMAP_UNKNOWN } }, .map = { SNDRV_CHMAP_MONO } },
{ .channels = 2, { .channels = 2,
.map = { SNDRV_CHMAP_FC, SNDRV_CHMAP_LFE } }, .map = { SNDRV_CHMAP_FC, SNDRV_CHMAP_LFE } },
{ } { }
...@@ -413,7 +413,7 @@ static const struct snd_pcm_chmap_elem clfe_map[] = { ...@@ -413,7 +413,7 @@ static const struct snd_pcm_chmap_elem clfe_map[] = {
static const struct snd_pcm_chmap_elem side_map[] = { static const struct snd_pcm_chmap_elem side_map[] = {
{ .channels = 1, { .channels = 1,
.map = { SNDRV_CHMAP_UNKNOWN } }, .map = { SNDRV_CHMAP_MONO } },
{ .channels = 2, { .channels = 2,
.map = { SNDRV_CHMAP_SL, SNDRV_CHMAP_SR } }, .map = { SNDRV_CHMAP_SL, SNDRV_CHMAP_SR } },
{ } { }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment