38      [0] = { 
"FL",        
"front left"            },
 
   39      [1] = { 
"FR",        
"front right"           },
 
   40      [2] = { 
"FC",        
"front center"          },
 
   41      [3] = { 
"LFE",       
"low frequency"         },
 
   42      [4] = { 
"BL",        
"back left"             },
 
   43      [5] = { 
"BR",        
"back right"            },
 
   44      [6] = { 
"FLC",       
"front left-of-center"  },
 
   45      [7] = { 
"FRC",       
"front right-of-center" },
 
   46      [8] = { 
"BC",        
"back center"           },
 
   47      [9] = { 
"SL",        
"side left"             },
 
   48     [10] = { 
"SR",        
"side right"            },
 
   49     [11] = { 
"TC",        
"top center"            },
 
   50     [12] = { 
"TFL",       
"top front left"        },
 
   51     [13] = { 
"TFC",       
"top front center"      },
 
   52     [14] = { 
"TFR",       
"top front right"       },
 
   53     [15] = { 
"TBL",       
"top back left"         },
 
   54     [16] = { 
"TBC",       
"top back center"       },
 
   55     [17] = { 
"TBR",       
"top back right"        },
 
   56     [29] = { 
"DL",        
"downmix left"          },
 
   57     [30] = { 
"DR",        
"downmix right"         },
 
   58     [31] = { 
"WL",        
"wide left"             },
 
   59     [32] = { 
"WR",        
"wide right"            },
 
   60     [33] = { 
"SDL",       
"surround direct left"  },
 
   61     [34] = { 
"SDR",       
"surround direct right" },
 
   62     [35] = { 
"LFE2",      
"low frequency 2"       },
 
   69     return channel_names[channel_id].
name;
 
  118         if (channel_names[i].name &&
 
  119             strlen(channel_names[i].name) == name_len &&
 
  120             !memcmp(channel_names[i].name, name, name_len))
 
  121             return (int64_t)1 << i;
 
  122     i = strtol(name, &end, 10);
 
  123     if (end - name == name_len ||
 
  124         (end + 1 - name == name_len && *end  == 
'c'))
 
  126     layout = strtoll(name, &end, 0);
 
  127     if (end - name == name_len)
 
  128         return FFMAX(layout, 0);
 
  135     const char *name_end = name + strlen(name);
 
  136     int64_t 
layout = 0, layout_single;
 
  138     for (n = name; n < name_end; n = e + 1) {
 
  139         for (e = n; e < name_end && *e != 
'+' && *e != 
'|'; e++);
 
  143         layout |= layout_single;
 
  153     if (nb_channels <= 0)
 
  164     if (channel_layout) {
 
  167         for (i = 0, ch = 0; i < 64; i++) {
 
  168             if ((channel_layout & (UINT64_C(1) << i))) {
 
  193     return av_popcount64(channel_layout);
 
  207     if (!(channel_layout & channel) ||
 
  210     channel_layout &= channel - 1;
 
  219     for (i = 0; i < 64; i++)
 
  220         if ((1ULL<<i) & channel)
 
  231         if ((1ULL<<i) & channel)
 
  232             return channel_names[i].description;
 
  243     for (i = 0; i < 64; i++) {
 
  244         if ((1ULL << i) & channel_layout && !index--)