diff options
Diffstat (limited to 'src/pulse/channelmap.c')
| -rw-r--r-- | src/pulse/channelmap.c | 18 | 
1 files changed, 14 insertions, 4 deletions
| diff --git a/src/pulse/channelmap.c b/src/pulse/channelmap.c index 88823012..9b516262 100644 --- a/src/pulse/channelmap.c +++ b/src/pulse/channelmap.c @@ -219,11 +219,11 @@ pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, p                  case 6:                      m->map[0] = PA_CHANNEL_POSITION_FRONT_LEFT; -                    m->map[1] = PA_CHANNEL_POSITION_REAR_LEFT; +                    m->map[1] = PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER;                      m->map[2] = PA_CHANNEL_POSITION_FRONT_CENTER;                      m->map[3] = PA_CHANNEL_POSITION_FRONT_RIGHT; -                    m->map[4] = PA_CHANNEL_POSITION_REAR_RIGHT; -                    m->map[5] = PA_CHANNEL_POSITION_LFE; +                    m->map[4] = PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER; +                    m->map[5] = PA_CHANNEL_POSITION_REAR_CENTER;                      return m;                  case 5: @@ -247,7 +247,7 @@ pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, p                      m->map[0] = PA_CHANNEL_POSITION_LEFT;                      m->map[1] = PA_CHANNEL_POSITION_CENTER;                      m->map[2] = PA_CHANNEL_POSITION_RIGHT; -                    m->map[3] = PA_CHANNEL_POSITION_LFE; +                    m->map[3] = PA_CHANNEL_POSITION_REAR_CENTER;                      return m;                  default: @@ -299,6 +299,8 @@ pa_channel_map* pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, p          case PA_CHANNEL_MAP_WAVEEX: +            /* Following http://www.microsoft.com/whdc/device/audio/multichaud.mspx#EKLAC */ +              switch (channels) {                  case 1:                      m->map[0] = PA_CHANNEL_POSITION_MONO; @@ -451,6 +453,10 @@ int pa_channel_map_equal(const pa_channel_map *a, const pa_channel_map *b) {      pa_assert(b);      pa_return_val_if_fail(pa_channel_map_valid(a), 0); + +    if (PA_UNLIKELY(a == b)) +        return 1; +      pa_return_val_if_fail(pa_channel_map_valid(b), 0);      if (a->channels != b->channels) @@ -639,6 +645,10 @@ int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b) {      pa_assert(b);      pa_return_val_if_fail(pa_channel_map_valid(a), 0); + +    if (PA_UNLIKELY(a == b)) +        return 1; +      pa_return_val_if_fail(pa_channel_map_valid(b), 0);      am = pa_channel_map_mask(a); | 
