mirror of
https://github.com/pion/webrtc.git
synced 2025-10-28 01:31:33 +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 {
|
for _, transceiver := range currentTransceivers {
|
||||||
if transceiver.Sender() != nil && transceiver.Sender().isNegotiated() && !transceiver.Sender().hasSent() {
|
if transceiver.Sender() != nil && transceiver.Sender().isNegotiated() && !transceiver.Sender().hasSent() {
|
||||||
err := transceiver.Sender().Send(RTPSendParameters{
|
err := transceiver.Sender().Send(RTPSendParameters{
|
||||||
Encodings: RTPEncodingParameters{
|
Encodings: []RTPEncodingParameters{
|
||||||
RTPCodingParameters{
|
{
|
||||||
SSRC: transceiver.Sender().ssrc,
|
RTPCodingParameters{
|
||||||
PayloadType: transceiver.Sender().payloadType,
|
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
|
// GetParameters describes the current configuration for the encoding and
|
||||||
// transmission of media on the sender's track.
|
// transmission of media on the sender's track.
|
||||||
func (r *RTPSender) GetParameters() RTPParameters {
|
func (r *RTPSender) GetParameters() RTPSendParameters {
|
||||||
return r.api.mediaEngine.getRTPParametersByKind(r.track.Kind(), []RTPTransceiverDirection{RTPTransceiverDirectionSendonly})
|
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
|
// Track returns the RTCRtpTransceiver track, or nil
|
||||||
@@ -148,7 +161,7 @@ func (r *RTPSender) Send(parameters RTPSendParameters) error {
|
|||||||
r.context = TrackLocalContext{
|
r.context = TrackLocalContext{
|
||||||
id: r.id,
|
id: r.id,
|
||||||
params: r.api.mediaEngine.getRTPParametersByKind(r.track.Kind(), []RTPTransceiverDirection{RTPTransceiverDirectionSendonly}),
|
params: r.api.mediaEngine.getRTPParametersByKind(r.track.Kind(), []RTPTransceiverDirection{RTPTransceiverDirectionSendonly}),
|
||||||
ssrc: parameters.Encodings.SSRC,
|
ssrc: parameters.Encodings[0].SSRC,
|
||||||
writeStream: writeStream,
|
writeStream: writeStream,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -134,3 +134,27 @@ func Test_RTPSender_ReplaceTrack(t *testing.T) {
|
|||||||
assert.NoError(t, receiver.Close())
|
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
|
// RTPSendParameters contains the RTP stack settings used by receivers
|
||||||
type RTPSendParameters struct {
|
type RTPSendParameters struct {
|
||||||
Encodings RTPEncodingParameters
|
RTPParameters
|
||||||
|
Encodings []RTPEncodingParameters
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user