Files
monibuca/plugin/rtmp/pkg/const.go
2024-05-14 20:39:26 +08:00

51 lines
1.0 KiB
Go

package rtmp
import (
"fmt"
"time"
"m7s.live/m7s/v5/pkg/util"
)
const (
PacketTypeSequenceStart = iota
PacketTypeCodedFrames
PacketTypeSequenceEnd
PacketTypeCodedFramesX
PacketTypeMetadata
PacketTypeMPEG2TSSequenceStart
)
type RTMPData struct {
Timestamp uint32
*util.RecyclableBuffers
}
func (avcc *RTMPData) GetSize() int {
return avcc.Length
}
func (avcc *RTMPData) MarshalJSON() ([]byte, error) {
return []byte(fmt.Sprintf(`{"Timestamp":%d,"Size":%d,"Data":"%s"}`, avcc.Timestamp, avcc.Length, avcc.String())), nil
}
func (avcc *RTMPData) String() string {
reader := avcc.Buffers
first10 := avcc.Malloc(10)
reader.ReadBytesTo(first10)
defer avcc.Free(first10)
return fmt.Sprintf("%d % 02X", avcc.Timestamp, first10)
}
func (avcc *RTMPData) GetTimestamp() time.Duration {
return time.Duration(avcc.Timestamp) * time.Millisecond
}
func (avcc *RTMPData) WrapAudio() *RTMPAudio {
return &RTMPAudio{RTMPData: *avcc}
}
func (avcc *RTMPData) WrapVideo() *RTMPVideo {
return &RTMPVideo{RTMPData: *avcc}
}