From 31c19a0e7dd37db240a7020a4acd2cff3a90a5ad Mon Sep 17 00:00:00 2001 From: Luan Freitas Date: Mon, 16 Mar 2026 18:33:01 -0300 Subject: [PATCH 1/3] fix: incoming pcma and pcmu --- pkg/mpegts/producer.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/pkg/mpegts/producer.go b/pkg/mpegts/producer.go index 2c72d8aa..592f121b 100644 --- a/pkg/mpegts/producer.go +++ b/pkg/mpegts/producer.go @@ -91,7 +91,7 @@ func (c *Producer) probe() error { case StreamTypeMetadata: for _, streamType := range pkt.Payload { switch streamType { - case StreamTypeH264, StreamTypeH265, StreamTypeAAC, StreamTypePrivateOPUS: + case StreamTypeH264, StreamTypeH265, StreamTypeAAC, StreamTypePrivateOPUS, StreamTypePCMATapo, StreamTypePCMUTapo: waitType = append(waitType, streamType) } } @@ -135,6 +135,30 @@ func (c *Producer) probe() error { Codecs: []*core.Codec{codec}, } c.Medias = append(c.Medias, media) + + case StreamTypePCMATapo: + codec := &core.Codec{ + Name: core.CodecPCMA, + ClockRate: 8000, + } + media := &core.Media{ + Kind: core.KindAudio, + Direction: core.DirectionRecvonly, + Codecs: []*core.Codec{codec}, + } + c.Medias = append(c.Medias, media) + + case StreamTypePCMUTapo: + codec := &core.Codec{ + Name: core.CodecPCMU, + ClockRate: 8000, + } + media := &core.Media{ + Kind: core.KindAudio, + Direction: core.DirectionRecvonly, + Codecs: []*core.Codec{codec}, + } + c.Medias = append(c.Medias, media) } } From d9af354de8d8e0d3ba2867c03d74d49537b6937d Mon Sep 17 00:00:00 2001 From: Luan Freitas Date: Mon, 16 Mar 2026 20:23:01 -0300 Subject: [PATCH 2/3] fix: add PCMU to StreamType() mapping --- pkg/mpegts/producer.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/mpegts/producer.go b/pkg/mpegts/producer.go index 592f121b..0d2ef669 100644 --- a/pkg/mpegts/producer.go +++ b/pkg/mpegts/producer.go @@ -175,6 +175,8 @@ func StreamType(codec *core.Codec) uint8 { return StreamTypeAAC case core.CodecPCMA: return StreamTypePCMATapo + case core.CodecPCMU: + return StreamTypePCMUTapo case core.CodecOpus: return StreamTypePrivateOPUS } From 65af579770b470d43d9dd50e45f926efda4ff153 Mon Sep 17 00:00:00 2001 From: Luan Freitas Date: Tue, 17 Mar 2026 10:27:23 -0300 Subject: [PATCH 3/3] fix: remove PCMU, keep only PCMA (always 8000 Hz per G.711 spec) --- pkg/mpegts/producer.go | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/pkg/mpegts/producer.go b/pkg/mpegts/producer.go index 0d2ef669..14417bff 100644 --- a/pkg/mpegts/producer.go +++ b/pkg/mpegts/producer.go @@ -91,7 +91,7 @@ func (c *Producer) probe() error { case StreamTypeMetadata: for _, streamType := range pkt.Payload { switch streamType { - case StreamTypeH264, StreamTypeH265, StreamTypeAAC, StreamTypePrivateOPUS, StreamTypePCMATapo, StreamTypePCMUTapo: + case StreamTypeH264, StreamTypeH265, StreamTypeAAC, StreamTypePrivateOPUS, StreamTypePCMATapo: waitType = append(waitType, streamType) } } @@ -147,18 +147,6 @@ func (c *Producer) probe() error { Codecs: []*core.Codec{codec}, } c.Medias = append(c.Medias, media) - - case StreamTypePCMUTapo: - codec := &core.Codec{ - Name: core.CodecPCMU, - ClockRate: 8000, - } - media := &core.Media{ - Kind: core.KindAudio, - Direction: core.DirectionRecvonly, - Codecs: []*core.Codec{codec}, - } - c.Medias = append(c.Medias, media) } } @@ -175,8 +163,6 @@ func StreamType(codec *core.Codec) uint8 { return StreamTypeAAC case core.CodecPCMA: return StreamTypePCMATapo - case core.CodecPCMU: - return StreamTypePCMUTapo case core.CodecOpus: return StreamTypePrivateOPUS }