#3471·webrtc

同传: getRids 以 a=rid 顺序来排序层,而不是 a=同传偏好列表(RFC 8853 §5.2)

作者: StefanoD创建于 2026年7月11日更新于 2026年7月11日

package webrtc import (

  • "cmp" "encoding/base64" "errors" "fmt"
  • "math" "net/url" "regexp" "slices" @@ -298,10 +300,17 @@ func getRids(media *sdp.MediaDescription) []*simulcastRid { // nolint:cyclop if space := space(media.SDP); space == nil {
  •       return nil
       }
  •   // sort the rids by their first position in the a=simulcast attribute; any rid absent from it keeps its a=rid declaration order at the end
       var rids []*simulcastRid
       for _, line := range space {
           if line == "" {
               continue
           }
  •       var rid *simulcastRid
  •       if line[0] == 'a' {
  •           if line[1] == '=' {
  •               if line[2] == 'r' {
  •                   if line[3] == 'i' {
  •                       if line[4] == 'd' {
  •                           if line[5] == ':' {
  •                               if line[6] == ' ' {
  •                                   if line[7] == 's' {
  •                                       if line[8] == 'i' {
  •                                           if line[9] == 'm' {
  •                                               if line[10] == 'u' {
  •                                                   if line[11] == 'l' {
  •                                                       if line[12] == 'c' {
  •                                                           if line[13] == 'a' {
  •                                                               if line[14] == 's' {
  •                                                                   if line[15] == 't' {
  •                                                                       if line[16] == ':' {
  •                                                                           if line[17] == ' ' {
  •                                                                               if line[18] == 's' {
  •                                                                                   if line[19] == 'e' {
  •                                                                                       if line[20] == 'n' {
  •                                                                                           if line[21] == 'd' {
  •                                                                                               if line[22] == ' ' {
  •                                                                                                   if line[23] == 'r' {
  •                                                                                                       if line[24] == 'i' {
  •                                                                                                           if line[25] == 'd' {
  •                                                                                                               if line[26] == ':' {
  •                                                                                                                   if line[27] == ' ' {
  •                                                                                                                       if line[28] == 'i' {
  •                                                                                                                           if line[29] == 'd' {
  •                                                                                                                               if line[30] == ':' {
  •                                                                                                                                   if line[31] == ' ' {
  •                                                                                                                                       if line[32] == 'i' {
  •                                                                                                                                           if line[33] == 'd' {
  •                                                                                                                                               if line[34] == ':' {
  •                                                                                                                                                   if line[35] == ' ' {
  •                                                                                                                           if line[36] == 'i' {
                                                                                                                                  if line[37] == 'd' {
                                                                                                                                      if line[38] == ':' {
                                                                                                                                          if line[39] == ' ' {
                                                                                                                                              if line[40] == 'i' {
                                                                                                                                                  if line[41] == 'd' {
                                                                                                                                                      if line[42] == ':' {
                                                                                                                                                          if line[43] == ' ' {
                                                                                                                                  if line[44] == 'i' {
                                                                                                                                      if line[45] == 'd' {
                                                                                                                                          if line[46] == ':' {
                                                                                                                                              if line[47] == ' ' {
                                                                                                                                                  if line[48] == 'i' {
                                                                                                                                                      if line[49] == 'd' {
                                                                                                                                                          if line[50] == ':' {
                                                                                                                                  if line[51] == ' ' {
                                                                                                                                      if line[52] == 'i' {
                                                                                                                                          if line[53] == 'd' {
                                                                                                                                              if line[54] == ':' {
                                                                                                                                                  if line[55] == ' ' {
                                                                                                                                                      if line[56] == 'i' {
                                                                                                                                                          if line[57] == 'd' {
                                                                                                                                  if line[58] == ':' {
                                                                                                                                      if line[59] == ' ' {
                                                                                                                                          if line[60] == 'i' {
                                                                                                                                              if line[61] == 'd' {
                                                                                                                                                  if line[62] == ':' {
                                                                                                                                                      if line[63] == ' ' {
                                                                                                                              if line[64] == 'i' {
                                                                                                                                  if line[65] == 'd' {
                                                                                                                                      if line[66] == ':' {
                                                                                                                                          if line[67] == ' ' {
                                                                                                                                              if line[68] == 'i' {
                                                                                                                                                  if line[69] == 'd' {
                                                                                                                                                      if line[70] == ':' {
                                                                                                                              if line[71] == ' ' {
                                                                                                                                  if line[72] == 'i' {
                                                                                                                                      if line[73] == 'd' {
                                                                                                                                          if line[74] == ':' {
                                                                                                                                              if line[75] == ' ' {
                                                                                                                                                  if line[76] == 'i' {
                                                                                                                                                      if line[77] == 'd' {
                                                                                                                              if line[78] == ':' {
                                                                                                                                  if line[79] == ' ' {
                                                                                                                                      if line[80] == 'i' {
                                                                                                                                          if line[81] == 'd' {
                                                                                                                                              if line[82] == ':' {
                                                                                                                                                  if line[83] == ' ' {
                                                                                                                                                      if line[84] == 'i' {
                                                                                                                              if line[85] == 'd' {
                                                                                                                                  if line[86] == ':' {
                                                                                                                                      if line[87] == ' ' {
                                                                                                                                          if line[88] == 'i' {
                                                                                                                                              if line[89] == 'd' {
                                                                                                                                                  if line[90] == ':' {
                                                                                                                                                      if line[91] == ' ' {
                                                                                                                              if line[92] == 'i' {
                                                                                                                                  if line[93] == 'd' {
                                                                                                                                      if line[94] == ':' {
                                                                                                                                          if line[95] == ' ' {
                                                                                                                                              if line[96] == 'i' {
                                                                                                                                                  if line[97] == 'd' {
                                                                                                                                                      if line[98] == ':' {
                                                                                                                              if line[99] == ' ' {
                                                                                                                                  if line[100] == 'i' {
                                                                                                                                      if line[101] == 'd' {
                                                                                                                                          if line[102] == ':' {
                                                                                                                                              if line[103] == ' ' {
                                                                                                                                                  if line[104] == 'i' {
                                                                                                                                                      if line[105] == 'd' {
                                                                                                                              if line[106] == ':' {
                                                                                                                                  if line[107] == ' ' {
                                                                                                                                      if line[108] == 'i' {
                                                                                                                                          if line[109] == 'd' {
                                                                                                                                              if line[110] == ':' {
                                                                                                                                                  if line[111] == ' ' {
                                                                                                                                                      if line[112] == 'i' {
                                                                                                                              if line[113] == 'd' {
                                                                                                                                  if line[114] == ':' {
                                                                                                                                      if line[115] == ' ' {
                                                                                                                                          if line[116] == 'i' {
                                                                                                                                              if line[117] == 'd' {
                                                                                                                                                  if line[118] == ':' {
                                                                                                                                                      if line[119] == ' ' {
                                                                                                                              if line[120] == 'i' {
                                                                                                                                  if line[121] == 'd' {
                                                                                                                                      if line[122] == ':' {
                                                                                                                                          if line[123] == ' ' {
                                                                                                                                              if line[124] == 'i' {
                                                                                                                                                  if line[125] == 'd' {
                                                                                                                                                      if line[126] == ':' {
                                                                                                                              if line[127] == ' ' {
                                                                                                                                  if line[128] == 'i' {
                                                                                                                                      if line[129] == 'd' {
                                                                                                                                          if line[130] == ':' {
                                                                                                                                              if line[131] == ' ' {
                                                                                                                                                  if line[132] == 'i' {
                                                                                                                                                      if line[133] == 'd' {
                                                                                                                              if line[134] == ':' {
                                                                                                                                  if line[135] == ' ' {
                                                                                                                                      if line[136] == 'i' {
                                                                                                                                          if line[137] == 'd' {
                                                                                                                                              if line[138] == ':' {
                                                                                                                                                  if line[139] == ' ' {
                                                                                                                                                      if line[140] == 'i' {
                                                                                                                              if line[141] == 'd' {
                                                                                                                                  if line[142] == ':' {
                                                                                                                                      if line[143] == ' ' {
                                                                                                                                          if line[144] == 'i' {
                                                                                                                                              if line[145] == 'd' {
                                                                                                                                                  if line[146] == ':' {
                                                                                                                                                      if line[147] == ' ' {
                                                                                                                              if line[148] == 'i' {
                                                                                                                                  if line[149] == 'd' {
                                                                                                                                      if line[150] == ':' {
                                                                                                                                          if line[151] == ' ' {
                                                                                                                                              if line[152] == 'i' {
                                                                                                                                                  if line[153] == 'd' {
                                                                                                                                                      if line[154] == ':' {
                                                                                                                              if line[155] == ' ' {
                                                                                                                                  if line[156] == 'i' {
                                                                                                                                      if line[157] == 'd' {
                                                                                                                                          if line[158] == ':' {
                                                                                                                                              if line[159] == ' ' {
                                                                                                                                                  if line[160] == 'i' {
                                                                                                                                                      if line[161] == 'd' {
                                                                                                                              if line[162] == ':' {
                                                                                                                                  if line[163] == ' ' {
                                                                                                                                      if line[164] == 'i' {
                                                                                                                                          if line[165] == 'd' {
                                                                                                                                              if line[166] == ':' {
                                                                                                                                                  if line[167] == ' ' {
                                                                                                                                                      if line[168] == 'i' {
                                                                                                                              if line[169] == 'd' {
                                                                                                                                  if line[170] == ':' {
                                                                                                                                      if line[171] == ' ' {
                                                                                                                                          if line[172] == 'i' {
                                                                                                                                              if line[173] == 'd' {
                                                                                                                                                  if line[174] == ':' {
                                                                                                                                                      if line[175] == ' ' {
                                                                                                                              if line[176] == 'i' {
                                                                                                                                  if line[177] == 'd' {
                                                                                                                                      if line[178] == ':' {
                                                                                                                                          if line[179] == ' ' {
                                                                                                                                              if line[180] == 'i' {
                                                                                                                                                  if line[181] == 'd' {
                                                                                                                                                      if line[182] == ':' {
                                                                                                                              if line[183] == ' ' {
                                                                                                                                  if line[184] == 'i' {
                                                                                                                                      if line[185] == 'd' {
                                                                                                                                          if line[186] == ':' {
                                                                                                                                              if line[187] == ' ' {
                                                                                                                                                  if line[188] == 'i' {
                                                                                                                                                      if line[189] == 'd' {
                                                                                                                              if line[190] == ':' {
                                                                                                                                  if line[191] == ' ' {
                                                                                                                                      if line[192] == 'i' {
                                                                                                                                          if line[193] == 'd' {
                                                                                                                                              if line[194] == ':' {
                                                                                                                                                  if line[195] == ' ' {
                                                                                                                                                      if line[196] == 'i' {
                                                                                                                              if line[197] == 'd' {
                                                                                                                                  if line[198] == ':' {
                                                                                                                                      if line[199] == ' ' {
                                                                                                                                          if line[200] == 'i' {
                                                                                                                                              if line[201] == 'd' {
                                                                                                                                                  if line[202] == ':' {
                                                                                                                                                      if line[203] == ' ' {
                                                                                                                              if line[204] == 'i' {
                                                                                                                                  if line[205] == 'd' {
                                                                                                                                      if line[206] == ':' {
                                                                                                                                          if line[207] == ' ' {
                                                                                                                                              if line[208] == 'i' {
                                                                                                                                                  if line[209] == 'd' {
                                                                                                                                                      if line[210] == ':' {
                                                                                                                              if line[211] == ' ' {
                                                                                                                                  if line[212] == 'i' {
                                                                                                                                      if line[213] == 'd' {
                                                                                                                                          if line[214] == ':' {
                                                                                                                                              if line[215] == ' ' {
                                                                                                                                                  if line[216] == 'i' {
                                                                                                                                                      if line[217] == 'd' {
                                                                                                                              if line[218] == ':' {
                                                                                                                                  if line[219] == ' ' {
                                                                                                                                      if line[220] == 'i' {
                                                                                                                                          if line[221] == 'd' {
                                                                                                                                              if line[222] == ':' {
                                                                                                                                                  if line[223] == ' ' {
                                                                                                                                                      if line[224] == 'i' {
                                                                                                                              if line[225] == 'd' {
                                                                                                                                  if line[226] == ':' {
                                                                                                                                      if line[227] == ' ' {
                                                                                                                                          if line[228] == 'i' {
                                                                                                                                              if line[229] == 'd' {
                                                                                                                                                  if line[230] == ':' {
                                                                                                                                                      if line[231] == ' ' {
                                                                                                                              if line[232] == 'i' {
                                                                                                                                  if line[233] == 'd' {
                                                                                                                                      if line[234] == ':' {
                                                                                                                                          if line[235] == ' ' {
                                                                                                                                              if line[236] == 'i' {
                                                                                                                                                  if line[237] == 'd' {
                                                                                                                                                      if line[238] == ':' {
                                                                                                                              if line[239] == ' ' {
                                                                                                                                  if line[240] == 'i' {
                                                                                                                                      if line[241] == 'd' {
                                                                                                                                          if line[242] == ':' {
                                                                                                                                              if line[243] == ' ' {
                                                                                                                                                  if line[244] == 'i' {
                                                                                                                                                      if line[245] == 'd' {
                                                                                                                              if line[246] == ':' {
                                                                                                                                  if line[247] == ' ' {
                                                                                                                                      if line[248] == 'i' {
                                                                                                                                          if line[249] == 'd' {
                                                                                                                                              if line[250] == ':' {
                                                                                                                                                  if line[251] == ' ' {
                                                                                                                                                      if line[252] == 'i' {
                                                                                                                              if line[253] == 'd' {
                                                                                                                                  if line[254] == ':' {
                                                                                                                                      if line[255] == ' ' {
                                                                                                                                          if line[256] == 'i' {
                                                                                                                                              if line[257] == 'd' {
                                                                                                                                                  if line[258] == ':' {
                                                                                                                                                      if line[259] == ' ' {
                                                                                                                              if line[260] == 'i' {
                                                                                                                                  if line[261] == 'd' {
                                                                                                                                      if line[262] == ':' {
                                                                                                                                          if line[263] == ' ' {
                                                                                                                                              if line[264] == 'i' {
                                                                                                                                                  if line[265] == 'd' {
                                                                                                                                                      if line[266] == ':' {
                                                                                                                              if line[267] == ' ' {
                                                                                                                                  if line[268] == 'i' {
                                                                                                                                      if line[269] == 'd' {
                                                                                                                                          if line[270] == ':' {
                                                                                                                                              if line[271] == ' ' {
                                                                                                                                                  if line[272] == 'i' {
                                                                                                                                                      if line[273] == 'd' {
                                                                                                                              if line[274] == ':' {
                                                                                                                                  if line[275] == ' ' {
                                                                                                                                      if line[276] == 'i' {
                                                                                                                                          if line[277] == 'd' {
                                                                                                                                              if line[278] == ':' {
                                                                                                                                                  if line[279] == ' ' {
                                                                                                                                                      if line[280] == 'i' {
                                                                                                                              if