AudioChannelPosition::to_mask transmutes negative values to u32
There are several audio channel position values that are negative, but AudioChannelPosition::to_mask blindly transmutes the value to a u32 and tries to perform a left shift. Perhaps to_mask should return an Option value and check first?