From d0781e5e4a33ef1a81a43b5089dcca53f2202cf1 Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Tue, 7 Jun 2022 23:13:31 +0200 Subject: [PATCH] rtmp: add DTS field to video / audio messages --- internal/rtmp/message/msg_audio.go | 3 +++ internal/rtmp/message/msg_video.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/internal/rtmp/message/msg_audio.go b/internal/rtmp/message/msg_audio.go index 82c98350..413bd4f1 100644 --- a/internal/rtmp/message/msg_audio.go +++ b/internal/rtmp/message/msg_audio.go @@ -12,6 +12,7 @@ import ( // MsgAudio is an audio message. type MsgAudio struct { ChunkStreamID byte + DTS uint32 MessageStreamID uint32 Rate uint8 Depth uint8 @@ -23,6 +24,7 @@ type MsgAudio struct { // Unmarshal implements Message. func (m *MsgAudio) Unmarshal(raw *rawmessage.Message) error { m.ChunkStreamID = raw.ChunkStreamID + m.DTS = raw.Timestamp m.MessageStreamID = raw.MessageStreamID if len(raw.Body) < 2 { @@ -54,6 +56,7 @@ func (m MsgAudio) Marshal() (*rawmessage.Message, error) { return &rawmessage.Message{ ChunkStreamID: m.ChunkStreamID, + Timestamp: m.DTS, Type: chunk.MessageTypeAudio, MessageStreamID: m.MessageStreamID, Body: body, diff --git a/internal/rtmp/message/msg_video.go b/internal/rtmp/message/msg_video.go index 975ab5d7..afc16c57 100644 --- a/internal/rtmp/message/msg_video.go +++ b/internal/rtmp/message/msg_video.go @@ -12,6 +12,7 @@ import ( // MsgVideo is a video message. type MsgVideo struct { ChunkStreamID byte + DTS uint32 MessageStreamID uint32 IsKeyFrame bool H264Type uint8 @@ -22,6 +23,7 @@ type MsgVideo struct { // Unmarshal implements Message. func (m *MsgVideo) Unmarshal(raw *rawmessage.Message) error { m.ChunkStreamID = raw.ChunkStreamID + m.DTS = raw.Timestamp m.MessageStreamID = raw.MessageStreamID if len(raw.Body) < 5 { @@ -60,6 +62,7 @@ func (m MsgVideo) Marshal() (*rawmessage.Message, error) { return &rawmessage.Message{ ChunkStreamID: m.ChunkStreamID, + Timestamp: m.DTS, Type: chunk.MessageTypeVideo, MessageStreamID: m.MessageStreamID, Body: body,