Fix RTPSender's streamInfo miss headerExtensions

Fix transceiver.Sender().Send() not contain HeaderExtensions.
This commit is contained in:
aggresss
2021-07-01 11:01:33 +08:00
committed by Sean DuBois
parent fc303839d6
commit 7b7183eb5a
3 changed files with 11 additions and 14 deletions

View File

@@ -1270,16 +1270,7 @@ func (pc *PeerConnection) startRTPReceivers(incomingTracks []trackDetails, curre
func (pc *PeerConnection) startRTPSenders(currentTransceivers []*RTPTransceiver) error {
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,
},
},
},
})
err := transceiver.Sender().Send(transceiver.Sender().GetParameters())
if err != nil {
return err
}

View File

@@ -104,9 +104,7 @@ func (r *RTPSender) Transport() *DTLSTransport {
return r.transport
}
// GetParameters describes the current configuration for the encoding and
// transmission of media on the sender's track.
func (r *RTPSender) GetParameters() RTPSendParameters {
func (r *RTPSender) getParameters() RTPSendParameters {
sendParameters := RTPSendParameters{
RTPParameters: r.api.mediaEngine.getRTPParametersByKind(
r.track.Kind(),
@@ -125,6 +123,14 @@ func (r *RTPSender) GetParameters() RTPSendParameters {
return sendParameters
}
// GetParameters describes the current configuration for the encoding and
// transmission of media on the sender's track.
func (r *RTPSender) GetParameters() RTPSendParameters {
r.mu.RLock()
defer r.mu.RUnlock()
return r.getParameters()
}
// Track returns the RTCRtpTransceiver track, or nil
func (r *RTPSender) Track() TrackLocal {
r.mu.RLock()

View File

@@ -50,7 +50,7 @@ func (t *TrackLocalContext) ID() string {
}
// TrackLocal is an interface that controls how the user can send media
// The user can provide their own TrackLocal implementatiosn, or use
// The user can provide their own TrackLocal implementations, or use
// the implementations in pkg/media
type TrackLocal interface {
// Bind should implement the way how the media data flows from the Track to the PeerConnection