diff options
Diffstat (limited to 'audio/chmap.c')
-rw-r--r-- | audio/chmap.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/audio/chmap.c b/audio/chmap.c index a36a6d9bdf..c15a63804d 100644 --- a/audio/chmap.c +++ b/audio/chmap.c @@ -144,12 +144,10 @@ bool mp_chmap_is_empty(const struct mp_chmap *src) bool mp_chmap_is_unknown(const struct mp_chmap *src) { for (int n = 0; n < src->num; n++) { - int speaker = src->speaker[n]; - if (speaker >= MP_SPEAKER_ID_UNKNOWN0 && - speaker <= MP_SPEAKER_ID_UNKNOWN_LAST) - return true; + if (src->speaker[n] != MP_SPEAKER_ID_NA) + return false; } - return false; + return mp_chmap_is_valid(src); } // Note: empty channel maps compare as equal. Invalid ones can equal too. @@ -240,6 +238,8 @@ void mp_chmap_from_channels_alsa(struct mp_chmap *dst, int num_channels) // Set *dst to an unknown layout for the given numbers of channels. // If the number of channels is invalid, an invalid map is set, and // mp_chmap_is_valid(dst) will return false. +// A mp_chmap with all entries set to NA is treated specially in some +// contexts (watch out for mp_chmap_is_unknown()). void mp_chmap_set_unknown(struct mp_chmap *dst, int num_channels) { if (num_channels < 0 || num_channels > MP_NUM_CHANNELS) { @@ -247,7 +247,7 @@ void mp_chmap_set_unknown(struct mp_chmap *dst, int num_channels) } else { dst->num = num_channels; for (int n = 0; n < dst->num; n++) - dst->speaker[n] = MP_SPEAKER_ID_UNKNOWN0 + n; + dst->speaker[n] = MP_SPEAKER_ID_NA; } } |