Restore VP8 munger state properly. (#1634)

* Restore VP8 munger state properly.

* clean up
This commit is contained in:
Raja Subramanian
2023-04-19 16:21:16 +05:30
committed by GitHub
parent a9fe9f331c
commit a11944f84d
3 changed files with 14 additions and 2 deletions
+7 -1
View File
@@ -6,6 +6,7 @@ import (
)
type Null struct {
seededState interface{}
}
func NewNull(_logger logger.Logger) *Null {
@@ -16,7 +17,12 @@ func (n *Null) GetState() interface{} {
return nil
}
func (n *Null) SeedState(_state interface{}) {
func (n *Null) SeedState(state interface{}) {
n.seededState = state
}
func (n *Null) GetSeededState() interface{} {
return n.seededState
}
func (n *Null) SetLast(_extPkt *buffer.ExtPacket) {
+6
View File
@@ -64,6 +64,12 @@ func NewVP8(logger logger.Logger) *VP8 {
}
}
func NewVP8FromNull(cm CodecMunger, logger logger.Logger) *VP8 {
v := NewVP8(logger)
v.SeedState(cm.(*Null).GetSeededState())
return v
}
func (v *VP8) GetState() interface{} {
return VP8State{
ExtLastPictureId: v.extLastPictureId,
+1 -1
View File
@@ -256,7 +256,7 @@ func (f *Forwarder) DetermineCodec(codec webrtc.RTPCodecCapability, extensions [
switch strings.ToLower(codec.MimeType) {
case "video/vp8":
f.codecMunger = codecmunger.NewVP8(f.logger)
f.codecMunger = codecmunger.NewVP8FromNull(f.codecMunger, f.logger)
if f.vls != nil {
f.vls = videolayerselector.NewSimulcastFromNull(f.vls)
} else {