Skip to content

Commit 5ee9a31

Browse files
committed
Export mime types
Export mime types from media enginer for matching
1 parent 92055ae commit 5ee9a31

File tree

3 files changed

+46
-32
lines changed

3 files changed

+46
-32
lines changed

mediaengine.go

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,27 @@ import (
1414
)
1515

1616
const (
17-
mimeTypeH264 = "video/h264"
18-
mimeTypeOpus = "audio/opus"
19-
mimeTypeVP8 = "video/vp8"
20-
mimeTypeVP9 = "video/vp9"
21-
mimeTypeG722 = "audio/G722"
22-
mimeTypePCMU = "audio/PCMU"
23-
mimeTypePCMA = "audio/PCMA"
17+
// MimeTypeH264 H264 MIME type.
18+
// Note: Matching should be case insensitive.
19+
MimeTypeH264 = "video/h264"
20+
// MimeTypeOpus Opus MIME type
21+
// Note: Matching should be case insensitive.
22+
MimeTypeOpus = "audio/opus"
23+
// MimeTypeVP8 VP8 MIME type
24+
// Note: Matching should be case insensitive.
25+
MimeTypeVP8 = "video/vp8"
26+
// MimeTypeVP9 VP9 MIME type
27+
// Note: Matching should be case insensitive.
28+
MimeTypeVP9 = "video/vp9"
29+
// MimeTypeG722 G722 MIME type
30+
// Note: Matching should be case insensitive.
31+
MimeTypeG722 = "audio/G722"
32+
// MimeTypePCMU PCMU MIME type
33+
// Note: Matching should be case insensitive.
34+
MimeTypePCMU = "audio/PCMU"
35+
// MimeTypePCMA PCMA MIME type
36+
// Note: Matching should be case insensitive.
37+
MimeTypePCMA = "audio/PCMA"
2438
)
2539

2640
type mediaEngineHeaderExtension struct {
@@ -51,19 +65,19 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
5165
// Default Pion Audio Codecs
5266
for _, codec := range []RTPCodecParameters{
5367
{
54-
RTPCodecCapability: RTPCodecCapability{mimeTypeOpus, 48000, 2, "minptime=10;useinbandfec=1", nil},
68+
RTPCodecCapability: RTPCodecCapability{MimeTypeOpus, 48000, 2, "minptime=10;useinbandfec=1", nil},
5569
PayloadType: 111,
5670
},
5771
{
58-
RTPCodecCapability: RTPCodecCapability{mimeTypeG722, 8000, 0, "", nil},
72+
RTPCodecCapability: RTPCodecCapability{MimeTypeG722, 8000, 0, "", nil},
5973
PayloadType: 9,
6074
},
6175
{
62-
RTPCodecCapability: RTPCodecCapability{mimeTypePCMU, 8000, 0, "", nil},
76+
RTPCodecCapability: RTPCodecCapability{MimeTypePCMU, 8000, 0, "", nil},
6377
PayloadType: 0,
6478
},
6579
{
66-
RTPCodecCapability: RTPCodecCapability{mimeTypePCMA, 8000, 0, "", nil},
80+
RTPCodecCapability: RTPCodecCapability{MimeTypePCMA, 8000, 0, "", nil},
6781
PayloadType: 8,
6882
},
6983
} {
@@ -86,7 +100,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
86100
videoRTCPFeedback := []RTCPFeedback{{"goog-remb", ""}, {"ccm", "fir"}, {"nack", ""}, {"nack", "pli"}}
87101
for _, codec := range []RTPCodecParameters{
88102
{
89-
RTPCodecCapability: RTPCodecCapability{mimeTypeVP8, 90000, 0, "", videoRTCPFeedback},
103+
RTPCodecCapability: RTPCodecCapability{MimeTypeVP8, 90000, 0, "", videoRTCPFeedback},
90104
PayloadType: 96,
91105
},
92106
{
@@ -95,7 +109,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
95109
},
96110

97111
{
98-
RTPCodecCapability: RTPCodecCapability{mimeTypeVP9, 90000, 0, "profile-id=0", videoRTCPFeedback},
112+
RTPCodecCapability: RTPCodecCapability{MimeTypeVP9, 90000, 0, "profile-id=0", videoRTCPFeedback},
99113
PayloadType: 98,
100114
},
101115
{
@@ -104,7 +118,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
104118
},
105119

106120
{
107-
RTPCodecCapability: RTPCodecCapability{mimeTypeVP9, 90000, 0, "profile-id=1", videoRTCPFeedback},
121+
RTPCodecCapability: RTPCodecCapability{MimeTypeVP9, 90000, 0, "profile-id=1", videoRTCPFeedback},
108122
PayloadType: 100,
109123
},
110124
{
@@ -113,7 +127,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
113127
},
114128

115129
{
116-
RTPCodecCapability: RTPCodecCapability{mimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f", videoRTCPFeedback},
130+
RTPCodecCapability: RTPCodecCapability{MimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f", videoRTCPFeedback},
117131
PayloadType: 102,
118132
},
119133
{
@@ -122,7 +136,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
122136
},
123137

124138
{
125-
RTPCodecCapability: RTPCodecCapability{mimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f", videoRTCPFeedback},
139+
RTPCodecCapability: RTPCodecCapability{MimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f", videoRTCPFeedback},
126140
PayloadType: 127,
127141
},
128142
{
@@ -131,7 +145,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
131145
},
132146

133147
{
134-
RTPCodecCapability: RTPCodecCapability{mimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f", videoRTCPFeedback},
148+
RTPCodecCapability: RTPCodecCapability{MimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f", videoRTCPFeedback},
135149
PayloadType: 125,
136150
},
137151
{
@@ -140,7 +154,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
140154
},
141155

142156
{
143-
RTPCodecCapability: RTPCodecCapability{mimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f", videoRTCPFeedback},
157+
RTPCodecCapability: RTPCodecCapability{MimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f", videoRTCPFeedback},
144158
PayloadType: 108,
145159
},
146160
{
@@ -149,7 +163,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
149163
},
150164

151165
{
152-
RTPCodecCapability: RTPCodecCapability{mimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f", videoRTCPFeedback},
166+
RTPCodecCapability: RTPCodecCapability{MimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f", videoRTCPFeedback},
153167
PayloadType: 127,
154168
},
155169
{
@@ -158,7 +172,7 @@ func (m *MediaEngine) RegisterDefaultCodecs() error {
158172
},
159173

160174
{
161-
RTPCodecCapability: RTPCodecCapability{mimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032", videoRTCPFeedback},
175+
RTPCodecCapability: RTPCodecCapability{MimeTypeH264, 90000, 0, "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640032", videoRTCPFeedback},
162176
PayloadType: 123,
163177
},
164178
{
@@ -480,17 +494,17 @@ func (m *MediaEngine) getRTPParametersByPayloadType(payloadType PayloadType) (RT
480494

481495
func payloaderForCodec(codec RTPCodecCapability) (rtp.Payloader, error) {
482496
switch strings.ToLower(codec.MimeType) {
483-
case mimeTypeH264:
497+
case MimeTypeH264:
484498
return &codecs.H264Payloader{}, nil
485-
case mimeTypeOpus:
499+
case MimeTypeOpus:
486500
return &codecs.OpusPayloader{}, nil
487-
case mimeTypeVP8:
501+
case MimeTypeVP8:
488502
return &codecs.VP8Payloader{}, nil
489-
case mimeTypeVP9:
503+
case MimeTypeVP9:
490504
return &codecs.VP9Payloader{}, nil
491-
case mimeTypeG722:
505+
case MimeTypeG722:
492506
return &codecs.G722Payloader{}, nil
493-
case mimeTypePCMU, mimeTypePCMA:
507+
case MimeTypePCMU, MimeTypePCMA:
494508
return &codecs.G711Payloader{}, nil
495509
default:
496510
return nil, ErrNoPayloaderForCodec

mediaengine_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ a=fmtp:111 minptime=10; useinbandfec=1
6666

6767
opusCodec, _, err := m.getCodecByPayload(111)
6868
assert.NoError(t, err)
69-
assert.Equal(t, opusCodec.MimeType, mimeTypeOpus)
69+
assert.Equal(t, opusCodec.MimeType, MimeTypeOpus)
7070
})
7171

7272
t.Run("Change Payload Type", func(t *testing.T) {
@@ -91,7 +91,7 @@ a=fmtp:112 minptime=10; useinbandfec=1
9191

9292
opusCodec, _, err := m.getCodecByPayload(112)
9393
assert.NoError(t, err)
94-
assert.Equal(t, opusCodec.MimeType, mimeTypeOpus)
94+
assert.Equal(t, opusCodec.MimeType, MimeTypeOpus)
9595
})
9696

9797
t.Run("Case Insensitive", func(t *testing.T) {
@@ -134,7 +134,7 @@ a=rtpmap:111 opus/48000/2
134134

135135
opusCodec, _, err := m.getCodecByPayload(111)
136136
assert.NoError(t, err)
137-
assert.Equal(t, opusCodec.MimeType, mimeTypeOpus)
137+
assert.Equal(t, opusCodec.MimeType, MimeTypeOpus)
138138
})
139139

140140
t.Run("Header Extensions", func(t *testing.T) {
@@ -174,7 +174,7 @@ func TestMediaEngineHeaderExtensionDirection(t *testing.T) {
174174
registerCodec := func(m *MediaEngine) {
175175
assert.NoError(t, m.RegisterCodec(
176176
RTPCodecParameters{
177-
RTPCodecCapability: RTPCodecCapability{mimeTypeOpus, 48000, 0, "", nil},
177+
RTPCodecCapability: RTPCodecCapability{MimeTypeOpus, 48000, 0, "", nil},
178178
PayloadType: 111,
179179
}, RTPCodecTypeAudio))
180180
}

sdp_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ func TestCodecsFromMediaDescription(t *testing.T) {
434434

435435
assert.Equal(t, codecs, []RTPCodecParameters{
436436
{
437-
RTPCodecCapability: RTPCodecCapability{mimeTypeOpus, 48000, 2, "", []RTCPFeedback{}},
437+
RTPCodecCapability: RTPCodecCapability{MimeTypeOpus, 48000, 2, "", []RTCPFeedback{}},
438438
PayloadType: 111,
439439
},
440440
})
@@ -457,7 +457,7 @@ func TestCodecsFromMediaDescription(t *testing.T) {
457457

458458
assert.Equal(t, codecs, []RTPCodecParameters{
459459
{
460-
RTPCodecCapability: RTPCodecCapability{mimeTypeOpus, 48000, 2, "minptime=10;useinbandfec=1", []RTCPFeedback{{"goog-remb", ""}, {"ccm", "fir"}}},
460+
RTPCodecCapability: RTPCodecCapability{MimeTypeOpus, 48000, 2, "minptime=10;useinbandfec=1", []RTCPFeedback{{"goog-remb", ""}, {"ccm", "fir"}}},
461461
PayloadType: 111,
462462
},
463463
})

0 commit comments

Comments
 (0)