Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( VP8KeyFrame16x16 = []byte{0x10, 0x02, 0x00, 0x9d, 0x01, 0x2a, 0x10, 0x00, 0x10, 0x00, 0x00, 0x47, 0x08, 0x85, 0x85, 0x88, 0x85, 0x84, 0x88, 0x02, 0x02, 0x00, 0x0c, 0x0d, 0x60, 0x00, 0xfe, 0xff, 0xab, 0x50, 0x80} H264KeyFrame2x2SPS = []byte{0x67, 0x42, 0xc0, 0x1f, 0x0f, 0xd9, 0x1f, 0x88, 0x88, 0x84, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x00, 0x03, 0x00, 0xc8, 0x3c, 0x60, 0xc9, 0x20} H264KeyFrame2x2PPS = []byte{0x68, 0x87, 0xcb, 0x83, 0xcb, 0x20} H264KeyFrame2x2IDR = []byte{0x65, 0x88, 0x84, 0x0a, 0xf2, 0x62, 0x80, 0x00, 0xa7, 0xbe} H264KeyFrame2x2 = [][]byte{H264KeyFrame2x2SPS, H264KeyFrame2x2PPS, H264KeyFrame2x2IDR} )
Functions ¶
This section is empty.
Types ¶
type AppWriter ¶
type AppWriter struct { *TrackSynchronizer // contains filtered or unexported fields }
func NewAppWriter ¶
func NewAppWriter( track *webrtc.TrackRemote, rp *lksdk.RemoteParticipant, codec types.MimeType, src *app.Source, sync *Synchronizer, syncInfo *TrackSynchronizer, writeBlanks bool, ) (*AppWriter, error)
func (*AppWriter) SetTrackMuted ¶
type Synchronizer ¶
a single Synchronizer is shared between audio and video writers
func NewSynchronizer ¶
func NewSynchronizer(onFirstPacket func()) *Synchronizer
func (*Synchronizer) AddTrack ¶
func (s *Synchronizer) AddTrack(track *webrtc.TrackRemote, identity string) *TrackSynchronizer
addTrack creates track sync info
func (*Synchronizer) GetEndedAt ¶
func (s *Synchronizer) GetEndedAt() int64
func (*Synchronizer) GetStartedAt ¶
func (s *Synchronizer) GetStartedAt() int64
func (*Synchronizer) OnRTCP ¶
func (s *Synchronizer) OnRTCP(packet rtcp.Packet)
OnRTCP syncs a/v using sender reports
type TrackSynchronizer ¶
Click to show internal directories.
Click to hide internal directories.