Fix PCM audio quality for WebRTC

This commit is contained in:
Alex X
2024-07-26 14:15:53 +03:00
parent 68fa42249e
commit 57d48f53e0

View File

@@ -64,6 +64,10 @@ func (c *Conn) AddTrack(media *core.Media, codec *core.Codec, track *core.Receiv
}
case core.CodecPCMA, core.CodecPCMU, core.CodecPCM, core.CodecPCML:
// Fix audio quality https://github.com/AlexxIT/WebRTC/issues/500
// should be before ResampleToG711, because it will be called last
sender.Handler = pcm.RepackG711(false, sender.Handler)
if codec.ClockRate == 0 {
if codec.Name == core.CodecPCM || codec.Name == core.CodecPCML {
codec.Name = core.CodecPCMA
@@ -71,9 +75,6 @@ func (c *Conn) AddTrack(media *core.Media, codec *core.Codec, track *core.Receiv
codec.ClockRate = 8000
sender.Handler = pcm.ResampleToG711(track.Codec, 8000, sender.Handler)
}
// Fix audio quality https://github.com/AlexxIT/WebRTC/issues/500
sender.Handler = pcm.RepackG711(false, sender.Handler)
}
// TODO: rewrite this dirty logic