119 return (int64_t)1 << i;
120 i = strtol(name, &end, 10);
121 if (end - name == name_len ||
122 (end + 1 - name == name_len && *end ==
'c'))
124 layout = strtoll(name, &end, 0);
125 if (end - name == name_len)
126 return FFMAX(layout, 0);
133 const char *name_end = name + strlen(name);
134 int64_t
layout = 0, layout_single;
136 for (n = name; n < name_end; n = e + 1) {
137 for (e = n; e < name_end && *e !=
'+' && *e !=
'|'; e++);
141 layout |= layout_single;
151 if (nb_channels <= 0)
161 snprintf(buf, buf_size,
"%d channels", nb_channels);
162 if (channel_layout) {
165 for (i = 0, ch = 0; i < 64; i++) {
166 if ((channel_layout & (UINT64_C(1) << i))) {
182 return av_popcount64(channel_layout);
187 switch(nb_channels) {
203 if (!(channel_layout & channel) ||
206 channel_layout &= channel - 1;
215 for (i = 0; i < 64; i++)
216 if ((1ULL<<i) & channel)
228 for (i = 0; i < 64; i++) {
229 if ((1ULL << i) & channel_layout && !index--)