Browse Source

rtmp: add DTS field to video / audio messages

pull/1003/head
aler9 3 years ago
parent
commit
d0781e5e4a
  1. 3
      internal/rtmp/message/msg_audio.go
  2. 3
      internal/rtmp/message/msg_video.go

3
internal/rtmp/message/msg_audio.go

@ -12,6 +12,7 @@ import ( @@ -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 { @@ -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) { @@ -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,

3
internal/rtmp/message/msg_video.go

@ -12,6 +12,7 @@ import ( @@ -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 { @@ -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) { @@ -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,

Loading…
Cancel
Save