diff --git a/rtptransceiver.go b/rtptransceiver.go index 8918e40b..b47e87e4 100644 --- a/rtptransceiver.go +++ b/rtptransceiver.go @@ -69,7 +69,10 @@ func (t *RTPTransceiver) getCodecs() []RTPCodecParameters { filteredCodecs := []RTPCodecParameters{} for _, codec := range t.codecs { if c, matchType := codecParametersFuzzySearch(codec, mediaEngineCodecs); matchType != codecMatchNone { - filteredCodecs = append(filteredCodecs, c) + if codec.PayloadType == 0 { + codec.PayloadType = c.PayloadType + } + filteredCodecs = append(filteredCodecs, codec) } } diff --git a/rtptransceiver_test.go b/rtptransceiver_test.go index c722eed1..2e048c88 100644 --- a/rtptransceiver_test.go +++ b/rtptransceiver_test.go @@ -124,7 +124,7 @@ func Test_RTPTransceiver_SetCodecPreferences_PayloadType(t *testing.T) { assert.NoError(t, err) // VP8 with proper PayloadType - assert.NotEqual(t, -1, strings.Index(answer.SDP, "a=rtpmap:96 VP8/90000")) + assert.NotEqual(t, -1, strings.Index(answer.SDP, "a=rtpmap:51 VP8/90000")) // testCodec is ignored since offerer doesn't support assert.Equal(t, -1, strings.Index(answer.SDP, "testCodec"))