mirror of
https://github.com/pion/webrtc.git
synced 2025-10-27 01:00:35 +08:00
Fix RTPSendParameters
RTPSendParameters contains an array of encodings. RTPSender.GetParameters returns RTPSendParameters.
This commit is contained in:
committed by
Sean DuBois
parent
5ee9a316a9
commit
0dea1f91e0
@@ -1236,10 +1236,12 @@ func (pc *PeerConnection) startRTPSenders(currentTransceivers []*RTPTransceiver)
|
||||
for _, transceiver := range currentTransceivers {
|
||||
if transceiver.Sender() != nil && transceiver.Sender().isNegotiated() && !transceiver.Sender().hasSent() {
|
||||
err := transceiver.Sender().Send(RTPSendParameters{
|
||||
Encodings: RTPEncodingParameters{
|
||||
RTPCodingParameters{
|
||||
SSRC: transceiver.Sender().ssrc,
|
||||
PayloadType: transceiver.Sender().payloadType,
|
||||
Encodings: []RTPEncodingParameters{
|
||||
{
|
||||
RTPCodingParameters{
|
||||
SSRC: transceiver.Sender().ssrc,
|
||||
PayloadType: transceiver.Sender().payloadType,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
19
rtpsender.go
19
rtpsender.go
@@ -92,8 +92,21 @@ func (r *RTPSender) Transport() *DTLSTransport {
|
||||
|
||||
// GetParameters describes the current configuration for the encoding and
|
||||
// transmission of media on the sender's track.
|
||||
func (r *RTPSender) GetParameters() RTPParameters {
|
||||
return r.api.mediaEngine.getRTPParametersByKind(r.track.Kind(), []RTPTransceiverDirection{RTPTransceiverDirectionSendonly})
|
||||
func (r *RTPSender) GetParameters() RTPSendParameters {
|
||||
return RTPSendParameters{
|
||||
RTPParameters: r.api.mediaEngine.getRTPParametersByKind(
|
||||
r.track.Kind(),
|
||||
[]RTPTransceiverDirection{RTPTransceiverDirectionSendonly},
|
||||
),
|
||||
Encodings: []RTPEncodingParameters{
|
||||
{
|
||||
RTPCodingParameters: RTPCodingParameters{
|
||||
SSRC: r.ssrc,
|
||||
PayloadType: r.payloadType,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// Track returns the RTCRtpTransceiver track, or nil
|
||||
@@ -148,7 +161,7 @@ func (r *RTPSender) Send(parameters RTPSendParameters) error {
|
||||
r.context = TrackLocalContext{
|
||||
id: r.id,
|
||||
params: r.api.mediaEngine.getRTPParametersByKind(r.track.Kind(), []RTPTransceiverDirection{RTPTransceiverDirectionSendonly}),
|
||||
ssrc: parameters.Encodings.SSRC,
|
||||
ssrc: parameters.Encodings[0].SSRC,
|
||||
writeStream: writeStream,
|
||||
}
|
||||
|
||||
|
||||
@@ -134,3 +134,27 @@ func Test_RTPSender_ReplaceTrack(t *testing.T) {
|
||||
assert.NoError(t, receiver.Close())
|
||||
})
|
||||
}
|
||||
|
||||
func Test_RTPSender_GetParameters(t *testing.T) {
|
||||
lim := test.TimeOut(time.Second * 10)
|
||||
defer lim.Stop()
|
||||
|
||||
report := test.CheckRoutines(t)
|
||||
defer report()
|
||||
|
||||
offerer, answerer, err := newPair()
|
||||
assert.NoError(t, err)
|
||||
|
||||
rtpTransceiver, err := offerer.AddTransceiverFromKind(RTPCodecTypeVideo)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.NoError(t, signalPair(offerer, answerer))
|
||||
|
||||
parameters := rtpTransceiver.Sender().GetParameters()
|
||||
assert.NotEqual(t, 0, len(parameters.Codecs))
|
||||
assert.Equal(t, 1, len(parameters.Encodings))
|
||||
assert.Equal(t, rtpTransceiver.Sender().ssrc, parameters.Encodings[0].SSRC)
|
||||
|
||||
assert.NoError(t, offerer.Close())
|
||||
assert.NoError(t, answerer.Close())
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@ package webrtc
|
||||
|
||||
// RTPSendParameters contains the RTP stack settings used by receivers
|
||||
type RTPSendParameters struct {
|
||||
Encodings RTPEncodingParameters
|
||||
RTPParameters
|
||||
Encodings []RTPEncodingParameters
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user