Browse Source

rtmp: add DTS field to video / audio messages

pull/1003/head
aler9 4 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 (
// MsgAudio is an audio message. // MsgAudio is an audio message.
type MsgAudio struct { type MsgAudio struct {
ChunkStreamID byte ChunkStreamID byte
DTS uint32
MessageStreamID uint32 MessageStreamID uint32
Rate uint8 Rate uint8
Depth uint8 Depth uint8
@ -23,6 +24,7 @@ type MsgAudio struct {
// Unmarshal implements Message. // Unmarshal implements Message.
func (m *MsgAudio) Unmarshal(raw *rawmessage.Message) error { func (m *MsgAudio) Unmarshal(raw *rawmessage.Message) error {
m.ChunkStreamID = raw.ChunkStreamID m.ChunkStreamID = raw.ChunkStreamID
m.DTS = raw.Timestamp
m.MessageStreamID = raw.MessageStreamID m.MessageStreamID = raw.MessageStreamID
if len(raw.Body) < 2 { if len(raw.Body) < 2 {
@ -54,6 +56,7 @@ func (m MsgAudio) Marshal() (*rawmessage.Message, error) {
return &rawmessage.Message{ return &rawmessage.Message{
ChunkStreamID: m.ChunkStreamID, ChunkStreamID: m.ChunkStreamID,
Timestamp: m.DTS,
Type: chunk.MessageTypeAudio, Type: chunk.MessageTypeAudio,
MessageStreamID: m.MessageStreamID, MessageStreamID: m.MessageStreamID,
Body: body, Body: body,

3
internal/rtmp/message/msg_video.go

@ -12,6 +12,7 @@ import (
// MsgVideo is a video message. // MsgVideo is a video message.
type MsgVideo struct { type MsgVideo struct {
ChunkStreamID byte ChunkStreamID byte
DTS uint32
MessageStreamID uint32 MessageStreamID uint32
IsKeyFrame bool IsKeyFrame bool
H264Type uint8 H264Type uint8
@ -22,6 +23,7 @@ type MsgVideo struct {
// Unmarshal implements Message. // Unmarshal implements Message.
func (m *MsgVideo) Unmarshal(raw *rawmessage.Message) error { func (m *MsgVideo) Unmarshal(raw *rawmessage.Message) error {
m.ChunkStreamID = raw.ChunkStreamID m.ChunkStreamID = raw.ChunkStreamID
m.DTS = raw.Timestamp
m.MessageStreamID = raw.MessageStreamID m.MessageStreamID = raw.MessageStreamID
if len(raw.Body) < 5 { if len(raw.Body) < 5 {
@ -60,6 +62,7 @@ func (m MsgVideo) Marshal() (*rawmessage.Message, error) {
return &rawmessage.Message{ return &rawmessage.Message{
ChunkStreamID: m.ChunkStreamID, ChunkStreamID: m.ChunkStreamID,
Timestamp: m.DTS,
Type: chunk.MessageTypeVideo, Type: chunk.MessageTypeVideo,
MessageStreamID: m.MessageStreamID, MessageStreamID: m.MessageStreamID,
Body: body, Body: body,

Loading…
Cancel
Save