117 return (int64_t)1 << i;
118 i = strtol(name, &end, 10);
119 if (end - name == name_len ||
120 (end + 1 - name == name_len && *end ==
'c'))
122 layout = strtoll(name, &end, 0);
123 if (end - name == name_len)
124 return FFMAX(layout, 0);
131 const char *name_end = name + strlen(name);
132 int64_t
layout = 0, layout_single;
134 for (n = name; n < name_end; n = e + 1) {
135 for (e = n; e < name_end && *e !=
'+' && *e !=
'|'; e++);
139 layout |= layout_single;
149 if (nb_channels <= 0)
159 snprintf(buf, buf_size,
"%d channels", nb_channels);
160 if (channel_layout) {
163 for (i = 0, ch = 0; i < 64; i++) {
164 if ((channel_layout & (UINT64_C(1) << i))) {
180 return av_popcount64(channel_layout);
185 switch(nb_channels) {
201 if (!(channel_layout & channel) ||
204 channel_layout &= channel - 1;
213 for (i = 0; i < 64; i++)
214 if ((1ULL<<i) & channel)
226 for (i = 0; i < 64; i++) {
227 if ((1ULL << i) & channel_layout && !index--)