RegisterDefaultCodecs registers the default codecs supported by Pion WebRTC. RegisterDefaultCodecs is not safe for concurrent use.
()
| 62 | // RegisterDefaultCodecs registers the default codecs supported by Pion WebRTC. |
| 63 | // RegisterDefaultCodecs is not safe for concurrent use. |
| 64 | func (m *MediaEngine) RegisterDefaultCodecs() error { |
| 65 | // Default Pion Audio Codecs |
| 66 | for _, codec := range []RTPCodecParameters{ |
| 67 | { |
| 68 | RTPCodecCapability: RTPCodecCapability{MimeTypeOpus, 48000, 2, "minptime=10;useinbandfec=1", nil}, |
| 69 | PayloadType: 111, |
| 70 | }, |
| 71 | { |
| 72 | RTPCodecCapability: RTPCodecCapability{MimeTypeG722, 8000, 0, "", nil}, |
| 73 | PayloadType: rtp.PayloadTypeG722, |
| 74 | }, |
| 75 | { |
| 76 | RTPCodecCapability: RTPCodecCapability{MimeTypePCMU, 8000, 0, "", nil}, |
| 77 | PayloadType: rtp.PayloadTypePCMU, |
| 78 | }, |
| 79 | { |
| 80 | RTPCodecCapability: RTPCodecCapability{MimeTypePCMA, 8000, 0, "", nil}, |
| 81 | PayloadType: rtp.PayloadTypePCMA, |
| 82 | }, |
| 83 | } { |
| 84 | if err := m.RegisterCodec(codec, RTPCodecTypeAudio); err != nil { |
| 85 | return err |
| 86 | } |
| 87 | } |
| 88 | |
| 89 | videoRTCPFeedback := []RTCPFeedback{{"goog-remb", ""}, {"ccm", "fir"}, {"nack", ""}, {"nack", "pli"}} |
| 90 | for _, codec := range []RTPCodecParameters{ |
| 91 | { |
| 92 | RTPCodecCapability: RTPCodecCapability{MimeTypeVP8, 90000, 0, "", videoRTCPFeedback}, |
| 93 | PayloadType: 96, |
| 94 | }, |
| 95 | { |
| 96 | RTPCodecCapability: RTPCodecCapability{MimeTypeRTX, 90000, 0, "apt=96", nil}, |
| 97 | PayloadType: 97, |
| 98 | }, |
| 99 | |
| 100 | { |
| 101 | RTPCodecCapability: RTPCodecCapability{ |
| 102 | MimeTypeH264, 90000, 0, |
| 103 | "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f", |
| 104 | videoRTCPFeedback, |
| 105 | }, |
| 106 | PayloadType: 102, |
| 107 | }, |
| 108 | { |
| 109 | RTPCodecCapability: RTPCodecCapability{MimeTypeRTX, 90000, 0, "apt=102", nil}, |
| 110 | PayloadType: 103, |
| 111 | }, |
| 112 | |
| 113 | { |
| 114 | RTPCodecCapability: RTPCodecCapability{ |
| 115 | MimeTypeH264, 90000, 0, |
| 116 | "level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f", |
| 117 | videoRTCPFeedback, |
| 118 | }, |
| 119 | PayloadType: 104, |
| 120 | }, |
| 121 | { |