mirror of
https://github.com/pion/webrtc.git
synced 2025-10-05 23:26:58 +08:00
Fix RTPSender's streamInfo miss headerExtensions
Fix transceiver.Sender().Send() not contain HeaderExtensions.
This commit is contained in:
@@ -1270,16 +1270,7 @@ func (pc *PeerConnection) startRTPReceivers(incomingTracks []trackDetails, curre
|
|||||||
func (pc *PeerConnection) startRTPSenders(currentTransceivers []*RTPTransceiver) error {
|
func (pc *PeerConnection) startRTPSenders(currentTransceivers []*RTPTransceiver) error {
|
||||||
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(transceiver.Sender().GetParameters())
|
||||||
Encodings: []RTPEncodingParameters{
|
|
||||||
{
|
|
||||||
RTPCodingParameters{
|
|
||||||
SSRC: transceiver.Sender().ssrc,
|
|
||||||
PayloadType: transceiver.Sender().payloadType,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
12
rtpsender.go
12
rtpsender.go
@@ -104,9 +104,7 @@ func (r *RTPSender) Transport() *DTLSTransport {
|
|||||||
return r.transport
|
return r.transport
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetParameters describes the current configuration for the encoding and
|
func (r *RTPSender) getParameters() RTPSendParameters {
|
||||||
// transmission of media on the sender's track.
|
|
||||||
func (r *RTPSender) GetParameters() RTPSendParameters {
|
|
||||||
sendParameters := RTPSendParameters{
|
sendParameters := RTPSendParameters{
|
||||||
RTPParameters: r.api.mediaEngine.getRTPParametersByKind(
|
RTPParameters: r.api.mediaEngine.getRTPParametersByKind(
|
||||||
r.track.Kind(),
|
r.track.Kind(),
|
||||||
@@ -125,6 +123,14 @@ func (r *RTPSender) GetParameters() RTPSendParameters {
|
|||||||
return sendParameters
|
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
|
// Track returns the RTCRtpTransceiver track, or nil
|
||||||
func (r *RTPSender) Track() TrackLocal {
|
func (r *RTPSender) Track() TrackLocal {
|
||||||
r.mu.RLock()
|
r.mu.RLock()
|
||||||
|
@@ -50,7 +50,7 @@ func (t *TrackLocalContext) ID() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TrackLocal is an interface that controls how the user can send media
|
// 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
|
// the implementations in pkg/media
|
||||||
type TrackLocal interface {
|
type TrackLocal interface {
|
||||||
// Bind should implement the way how the media data flows from the Track to the PeerConnection
|
// Bind should implement the way how the media data flows from the Track to the PeerConnection
|
||||||
|
Reference in New Issue
Block a user