Skip to content

Commit c556a70

Browse files
authored
Merge branch 'master' into feat/support_av1
2 parents 9519853 + 9a47a07 commit c556a70

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

track.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ type baseTrack struct {
8989
kind MediaDeviceType
9090
selector *CodecSelector
9191
activePeerConnections map[string]chan<- chan<- struct{}
92+
encoderController codec.EncoderController
9293
}
9394

9495
func newBaseTrack(source Source, kind MediaDeviceType, selector *CodecSelector) *baseTrack {
@@ -230,7 +231,8 @@ func (track *baseTrack) bind(ctx webrtc.TrackLocalContext, specializedTrack Trac
230231
}
231232
}()
232233

233-
keyFrameController, ok := encodedReader.Controller().(codec.KeyFrameController)
234+
track.encoderController = encodedReader.Controller()
235+
keyFrameController, ok := track.encoderController.(codec.KeyFrameController)
234236
if ok {
235237
go track.rtcpReadLoop(ctx.RTCPReader(), keyFrameController, stopRead)
236238
}
@@ -449,6 +451,11 @@ func (track *VideoTrack) NewRTPReader(codecName string, ssrc uint32, mtu int) (R
449451
}, nil
450452
}
451453

454+
// returned encoderController might be nil
455+
func (track *VideoTrack) EncoderController() codec.EncoderController {
456+
return track.encoderController
457+
}
458+
452459
// AudioTrack is a specific track type that contains audio source which allows multiple readers to access, and
453460
// manipulate.
454461
type AudioTrack struct {
@@ -570,3 +577,7 @@ func (track *AudioTrack) NewRTPReader(codecName string, ssrc uint32, mtu int) (R
570577
controllerFn: encodedReader.Controller,
571578
}, nil
572579
}
580+
581+
func (track *AudioTrack) EncoderController() codec.EncoderController {
582+
return track.encoderController
583+
}

0 commit comments

Comments
 (0)