A channel count this crate will not carry: more than
u8::MAX, which the portable AudioFrame seat cannot hold, or
none at all on a frame that claims samples.
Refused, never clamped. Clamping to 255 was silent truncation of
exactly the kind this boundary exists to refuse: a 256-channel
packed frame then computed its byte product from the clipped count
and copied 510 of its 512 bytes, delivering a short buffer that
advertised 255 channels. A short read is not a smaller frame; it is
a wrong one.
The count is carried signed, as AVChannelLayout.nb_channels
declares it. It has to be: a negative count is one of the things
this arm refuses, and the first version of this refusal read the
count off a materialised layout description that had already
floored it to zero — so nb_channels == -1 arrived looking like a
legitimate zero-channel frame and was never seen by the guard meant
to catch it.