Skip to content

Commit 9d12dd1

Browse files
committed
fix: audio rtp timestamp
1 parent cc83e41 commit 9d12dd1

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

native.go

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"time"
1313

1414
"github.com/jetkvm/kvm/resource"
15+
"github.com/pion/rtp"
1516

1617
"github.com/pion/webrtc/v4/pkg/media"
1718
)
@@ -243,17 +244,30 @@ func handleAudioClient(conn net.Conn) {
243244

244245
scopedLogger.Info().Msg("native audio socket client connected")
245246
inboundPacket := make([]byte, maxAudioFrameSize)
247+
var timestamp uint32
248+
var packet rtp.Packet
246249
for {
247250
n, err := conn.Read(inboundPacket)
248251
if err != nil {
249252
scopedLogger.Warn().Err(err).Msg("error during read")
250253
return
251254
}
252255

253-
logger.Info().Msgf("audio socket msg: %d", n)
254-
255256
if currentSession != nil {
256-
if _, err := currentSession.AudioTrack.Write(inboundPacket[:n]); err != nil {
257+
if err := packet.Unmarshal(inboundPacket[:n]); err != nil {
258+
scopedLogger.Warn().Err(err).Msg("error unmarshalling audio socket packet")
259+
continue
260+
}
261+
262+
timestamp += 960
263+
packet.Header.Timestamp = timestamp
264+
buf, err := packet.Marshal()
265+
if err != nil {
266+
scopedLogger.Warn().Err(err).Msg("error marshalling packet")
267+
continue
268+
}
269+
270+
if _, err := currentSession.AudioTrack.Write(buf); err != nil {
257271
scopedLogger.Warn().Err(err).Msg("error writing sample")
258272
}
259273
}

0 commit comments

Comments
 (0)