rename 'track' references into 'format'

This commit is contained in:
aler9
2022-12-13 18:06:41 +01:00
parent 50d6b2e916
commit 38b24b8e26
32 changed files with 123 additions and 123 deletions

View File

@@ -1574,9 +1574,9 @@ func (c *Client) Seek(ra *headers.Range) (*base.Response, error) {
func (c *Client) OnPacketRTPAny(cb func(*media.Media, format.Format, *rtp.Packet)) {
for _, cm := range c.medias {
cmedia := cm.media
for _, trak := range cm.media.Formats {
c.OnPacketRTP(cm.media, trak, func(pkt *rtp.Packet) {
cb(cmedia, trak, pkt)
for _, forma := range cm.media.Formats {
c.OnPacketRTP(cm.media, forma, func(pkt *rtp.Packet) {
cb(cmedia, forma, pkt)
})
}
}
@@ -1593,9 +1593,9 @@ func (c *Client) OnPacketRTCPAny(cb func(*media.Media, rtcp.Packet)) {
}
// OnPacketRTP sets the callback that is called when a RTP packet is read.
func (c *Client) OnPacketRTP(medi *media.Media, trak format.Format, cb func(*rtp.Packet)) {
func (c *Client) OnPacketRTP(medi *media.Media, forma format.Format, cb func(*rtp.Packet)) {
cm := c.medias[medi]
ct := cm.formats[trak.PayloadType()]
ct := cm.formats[forma.PayloadType()]
ct.onPacketRTP = cb
}

View File

@@ -267,16 +267,16 @@ func TestClientPlay(t *testing.T) {
require.Equal(t, base.Describe, req.Method)
require.Equal(t, mustParseURL(scheme+"://"+listenIP+":8554/test/stream?param=value"), req.URL)
trak := &format.Generic{
forma := &format.Generic{
PayloadTyp: 96,
RTPMap: "private/90000",
}
err = trak.Init()
err = forma.Init()
require.NoError(t, err)
medias := media.Medias{{
Type: "application",
Formats: []format.Format{trak},
Formats: []format.Format{forma},
}}
medias.SetControls()
@@ -466,7 +466,7 @@ func TestClientPlay(t *testing.T) {
err = readAll(&c,
scheme+"://"+listenIP+":8554/test/stream?param=value",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
require.Equal(t, &testRTPPacket, pkt)
err := c.WritePacketRTCP(medi, &testRTCPPacket)
require.NoError(t, err)
@@ -608,9 +608,9 @@ func TestClientPlayPartial(t *testing.T) {
_, err = c.Setup(medias[1], baseURL, 0, 0)
require.NoError(t, err)
c.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
c.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
require.Equal(t, medias[1], medi)
require.Equal(t, medias[1].Formats[0], trak)
require.Equal(t, medias[1].Formats[0], forma)
require.Equal(t, &testRTPPacket, pkt)
close(packetRecv)
})
@@ -892,7 +892,7 @@ func TestClientPlayAnyPort(t *testing.T) {
var med *media.Media
err = readAll(&c, "rtsp://localhost:8554/teststream",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
require.Equal(t, &testRTPPacket, pkt)
med = medi
close(packetRecv)
@@ -1012,7 +1012,7 @@ func TestClientPlayAutomaticProtocol(t *testing.T) {
c := Client{}
err = readAll(&c, "rtsp://localhost:8554/teststream",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
close(packetRecv)
})
require.NoError(t, err)
@@ -1245,7 +1245,7 @@ func TestClientPlayAutomaticProtocol(t *testing.T) {
}
err = readAll(&c, "rtsp://myuser:mypass@localhost:8554/teststream",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
close(packetRecv)
})
require.NoError(t, err)
@@ -1367,7 +1367,7 @@ func TestClientPlayDifferentInterleavedIDs(t *testing.T) {
}
err = readAll(&c, "rtsp://localhost:8554/teststream",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
close(packetRecv)
})
require.NoError(t, err)
@@ -1554,7 +1554,7 @@ func TestClientPlayRedirect(t *testing.T) {
ru = "rtsp://testusr:testpwd@localhost:8554/path1"
}
err = readAll(&c, ru,
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
close(packetRecv)
})
require.NoError(t, err)
@@ -1754,7 +1754,7 @@ func TestClientPlayPause(t *testing.T) {
}
err = readAll(&c, "rtsp://localhost:8554/teststream",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
if atomic.SwapInt32(&firstFrame, 1) == 0 {
close(packetRecv)
}
@@ -2218,7 +2218,7 @@ func TestClientPlayIgnoreTCPInvalidMedia(t *testing.T) {
}
err = readAll(&c, "rtsp://localhost:8554/teststream",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
close(recv)
})
require.NoError(t, err)
@@ -2636,7 +2636,7 @@ func TestClientPlayDifferentSource(t *testing.T) {
}
err = readAll(&c, "rtsp://localhost:8554/test/stream?param=value",
func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
require.Equal(t, &testRTPPacket, pkt)
close(packetRecv)
})

View File

@@ -71,8 +71,8 @@ func (cm *clientMedia) setMedia(medi *media.Media) {
cm.media = medi
cm.formats = make(map[uint8]*clientFormat)
for _, trak := range medi.Formats {
cm.formats[trak.PayloadType()] = newClientFormat(cm, trak)
for _, forma := range medi.Formats {
cm.formats[forma.PayloadType()] = newClientFormat(cm, forma)
}
}
@@ -193,12 +193,12 @@ func (cm *clientMedia) readRTPTCPPlay(payload []byte) error {
return err
}
trak, ok := cm.formats[pkt.PayloadType]
forma, ok := cm.formats[pkt.PayloadType]
if !ok {
return nil
}
trak.readRTPTCP(pkt)
forma.readRTPTCP(pkt)
return nil
}
@@ -266,13 +266,13 @@ func (cm *clientMedia) readRTPUDPPlay(payload []byte) error {
return nil
}
trak, ok := cm.formats[pkt.PayloadType]
forma, ok := cm.formats[pkt.PayloadType]
if !ok {
cm.c.OnDecodeError(fmt.Errorf("received RTP packet with unknown payload type (%d)", pkt.PayloadType))
return nil
}
trak.readRTPUDP(pkt)
forma.readRTPUDP(pkt)
return nil
}

View File

@@ -23,11 +23,11 @@ type clientFormat struct {
onPacketRTP func(*rtp.Packet)
}
func newClientFormat(cm *clientMedia, trak format.Format) *clientFormat {
func newClientFormat(cm *clientMedia, forma format.Format) *clientFormat {
return &clientFormat{
c: cm.c,
cm: cm,
format: trak,
format: forma,
onPacketRTP: func(*rtp.Packet) {},
}
}

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the G711 media and format
var trak *format.G711
medi := medias.FindFormat(&trak)
var forma *format.G711
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// decode a G711 packet from the RTP packet
op, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the G722 media and format
var trak *format.G722
medi := medias.FindFormat(&trak)
var forma *format.G722
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// decode a G722 packet from the RTP packet
op, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -63,14 +63,14 @@ func main() {
}
// find the H264 media and format
var trak *format.H264
medi := medias.FindFormat(&trak)
var forma *format.H264
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup RTP/H264->H264 decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup H264->raw frames decoder
h264RawDec, err := newH264Decoder()
@@ -80,11 +80,11 @@ func main() {
defer h264RawDec.close()
// if SPS and PPS are present into the SDP, send them to the decoder
sps := trak.SafeSPS()
sps := forma.SafeSPS()
if sps != nil {
h264RawDec.decode(sps)
}
pps := trak.SafePPS()
pps := forma.SafePPS()
if pps != nil {
h264RawDec.decode(pps)
}
@@ -97,7 +97,7 @@ func main() {
// called when a RTP packet arrives
saveCount := 0
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// convert RTP packets into NALUs
nalus, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -35,17 +35,17 @@ func main() {
}
// find the H264 media and format
var trak *format.H264
medi := medias.FindFormat(&trak)
var forma *format.H264
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup RTP/H264->H264 decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup H264->MPEGTS muxer
mpegtsMuxer, err := newMPEGTSMuxer(trak.SafeSPS(), trak.SafePPS())
mpegtsMuxer, err := newMPEGTSMuxer(forma.SafeSPS(), forma.SafePPS())
if err != nil {
panic(err)
}
@@ -57,7 +57,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// convert RTP packets into NALUs
nalus, pts, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -40,14 +40,14 @@ func main() {
}
// find the H264 media and format
var trak *format.H264
medi := medias.FindFormat(&trak)
var forma *format.H264
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup RTP/H264->H264 decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup H264->raw frames decoder
h264RawDec, err := newH264Decoder()
@@ -57,11 +57,11 @@ func main() {
defer h264RawDec.close()
// if SPS and PPS are present into the SDP, send them to the decoder
sps := trak.SafeSPS()
sps := forma.SafeSPS()
if sps != nil {
h264RawDec.decode(sps)
}
pps := trak.SafePPS()
pps := forma.SafePPS()
if pps != nil {
h264RawDec.decode(pps)
}
@@ -73,7 +73,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// convert RTP packets into NALUs
nalus, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the H265 media and format
var trak *format.H265
medi := medias.FindFormat(&trak)
var forma *format.H265
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup RTP/H265->H265 decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// convert RTP packets into NALUs
nalus, pts, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the LPCM media and format
var trak *format.LPCM
medi := medias.FindFormat(&trak)
var forma *format.LPCM
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// decode LPCM samples from the RTP packet
op, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the MPEG4-audio media and format
var trak *format.MPEG4Audio
medi := medias.FindFormat(&trak)
var forma *format.MPEG4Audio
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// decode MPEG4-audio AUs from the RTP packet
aus, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the Opus media and format
var trak *format.Opus
medi := medias.FindFormat(&trak)
var forma *format.Opus
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// decode an Opus packet from the RTP packet
op, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the VP8 media and format
var trak *format.VP8
medi := medias.FindFormat(&trak)
var forma *format.VP8
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// decode a VP8 frame from the RTP packet
vf, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -37,14 +37,14 @@ func main() {
}
// find the VP9 media and format
var trak *format.VP9
medi := medias.FindFormat(&trak)
var forma *format.VP9
medi := medias.FindFormat(&forma)
if medi == nil {
panic("media not found")
}
// setup decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup the chosen media only
_, err = c.Setup(medi, baseURL, 0, 0)
@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTP(medi, trak, func(pkt *rtp.Packet) {
c.OnPacketRTP(medi, forma, func(pkt *rtp.Packet) {
// decode a VP9 frame from the RTP packet
vf, _, err := rtpDec.Decode(pkt)
if err != nil {

View File

@@ -53,7 +53,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
c.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
log.Printf("RTP packet from media %v\n", medi)
})

View File

@@ -47,7 +47,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
c.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
log.Printf("RTP packet from media %v\n", medi)
})

View File

@@ -53,7 +53,7 @@ func main() {
}
// read RTP packets from reader and write them to publisher
reader.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
reader.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
publisher.WritePacketRTP(medi, pkt)
})

View File

@@ -43,7 +43,7 @@ func main() {
}
// called when a RTP packet arrives
c.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
c.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
log.Printf("RTP packet from media %v\n", medi)
})

View File

@@ -67,8 +67,8 @@ func (sh *serverHandler) OnAnnounce(ctx *gortsplib.ServerHandlerOnAnnounceCtx) (
}
// find the H264 media and format
var trak *format.H264
medi := ctx.Medias.FindFormat(&trak)
var forma *format.H264
medi := ctx.Medias.FindFormat(&forma)
if medi == nil {
return &base.Response{
StatusCode: base.StatusBadRequest,
@@ -76,10 +76,10 @@ func (sh *serverHandler) OnAnnounce(ctx *gortsplib.ServerHandlerOnAnnounceCtx) (
}
// setup RTP/H264->H264 decoder
rtpDec := trak.CreateDecoder()
rtpDec := forma.CreateDecoder()
// setup H264->MPEGTS muxer
mpegtsMuxer, err := newMPEGTSMuxer(trak.SafeSPS(), trak.SafePPS())
mpegtsMuxer, err := newMPEGTSMuxer(forma.SafeSPS(), forma.SafePPS())
if err != nil {
return &base.Response{
StatusCode: base.StatusBadRequest,
@@ -88,7 +88,7 @@ func (sh *serverHandler) OnAnnounce(ctx *gortsplib.ServerHandlerOnAnnounceCtx) (
sh.publisher = ctx.Session
sh.media = medi
sh.format = trak
sh.format = forma
sh.rtpDec = rtpDec
sh.mpegtsMuxer = mpegtsMuxer

View File

@@ -126,7 +126,7 @@ func (sh *serverHandler) OnRecord(ctx *gortsplib.ServerHandlerOnRecordCtx) (*bas
log.Printf("record request")
// called when receiving a RTP packet
ctx.Session.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
ctx.Session.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
// route the RTP packet to all readers
sh.stream.WritePacketRTP(medi, pkt)
})

View File

@@ -125,7 +125,7 @@ func (sh *serverHandler) OnRecord(ctx *gortsplib.ServerHandlerOnRecordCtx) (*bas
log.Printf("record request")
// called when receiving a RTP packet
ctx.Session.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
ctx.Session.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
// route the RTP packet to all readers
sh.stream.WritePacketRTP(medi, pkt)
})

View File

@@ -385,7 +385,7 @@ func TestServerRecordRead(t *testing.T) {
}, fmt.Errorf("invalid query (%s)", ctx.Query)
}
ctx.Session.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
ctx.Session.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
stream.WritePacketRTP(medi, pkt)
})

View File

@@ -79,11 +79,11 @@ func (m *Media) Marshal() *psdp.MediaDescription {
},
}
for _, trak := range m.Formats {
typ := strconv.FormatUint(uint64(trak.PayloadType()), 10)
for _, forma := range m.Formats {
typ := strconv.FormatUint(uint64(forma.PayloadType()), 10)
md.MediaName.Formats = append(md.MediaName.Formats, typ)
rtpmap, fmtp := trak.Marshal()
rtpmap, fmtp := forma.Marshal()
if rtpmap != "" {
md.Attributes = append(md.Attributes, psdp.Attribute{

View File

@@ -90,12 +90,12 @@ func (ms Medias) SetControls() {
}
// FindFormat finds a certain format among all the formats in all the medias.
// If the format is found, it is inserted into trak, and format media is returned.
func (ms Medias) FindFormat(trak interface{}) *Media {
// If the format is found, it is inserted into forma, and format media is returned.
func (ms Medias) FindFormat(forma interface{}) *Media {
for _, media := range ms {
for _, trakk := range media.Formats {
if reflect.TypeOf(trakk) == reflect.TypeOf(trak).Elem() {
reflect.ValueOf(trak).Elem().Set(reflect.ValueOf(trakk))
for _, formak := range media.Formats {
if reflect.TypeOf(formak) == reflect.TypeOf(forma).Elem() {
reflect.ValueOf(forma).Elem().Set(reflect.ValueOf(formak))
return media
}
}

View File

@@ -481,8 +481,8 @@ func TestMediasFindFormat(t *testing.T) {
md,
}
var trak *format.Generic
me := ms.FindFormat(&trak)
var forma *format.Generic
me := ms.FindFormat(&forma)
require.Equal(t, md, me)
require.Equal(t, tr, trak)
require.Equal(t, tr, forma)
}

View File

@@ -1939,16 +1939,16 @@ func TestServerPlayAdditionalInfos(t *testing.T) {
return &ri, ssrcs
}
trak := &format.Generic{
forma := &format.Generic{
PayloadTyp: 96,
RTPMap: "private/90000",
}
err := trak.Init()
err := forma.Init()
require.NoError(t, err)
medi := &media.Media{
Type: "application",
Formats: []format.Format{trak},
Formats: []format.Format{forma},
}
stream := NewServerStream(media.Medias{medi.Clone(), medi.Clone()})

View File

@@ -500,9 +500,9 @@ func TestServerRecord(t *testing.T) {
// these are sent after the response, only if onRecord returns StatusOK.
ctx.Session.WritePacketRTCP(ctx.Session.AnnouncedMedias()[0], &testRTCPPacket)
ctx.Session.OnPacketRTPAny(func(medi *media.Media, trak format.Format, pkt *rtp.Packet) {
ctx.Session.OnPacketRTPAny(func(medi *media.Media, forma format.Format, pkt *rtp.Packet) {
require.Equal(t, ctx.Session.AnnouncedMedias()[0], medi)
require.Equal(t, ctx.Session.AnnouncedMedias()[0].Formats[0], trak)
require.Equal(t, ctx.Session.AnnouncedMedias()[0].Formats[0], forma)
require.Equal(t, &testRTPPacket, pkt)
})

View File

@@ -747,8 +747,8 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
if ss.state == ServerSessionStatePreRecord {
sm.formats = make(map[uint8]*serverSessionFormat)
for _, trak := range sm.media.Formats {
sm.formats[trak.PayloadType()] = newServerSessionFormat(sm, trak)
for _, forma := range sm.media.Formats {
sm.formats[forma.PayloadType()] = newServerSessionFormat(sm, forma)
}
}
@@ -1090,9 +1090,9 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base
func (ss *ServerSession) OnPacketRTPAny(cb func(*media.Media, format.Format, *rtp.Packet)) {
for _, sm := range ss.setuppedMedias {
cmedia := sm.media
for _, trak := range sm.media.Formats {
ss.OnPacketRTP(sm.media, trak, func(pkt *rtp.Packet) {
cb(cmedia, trak, pkt)
for _, forma := range sm.media.Formats {
ss.OnPacketRTP(sm.media, forma, func(pkt *rtp.Packet) {
cb(cmedia, forma, pkt)
})
}
}
@@ -1109,9 +1109,9 @@ func (ss *ServerSession) OnPacketRTCPAny(cb func(*media.Media, rtcp.Packet)) {
}
// OnPacketRTP sets the callback that is called when a RTP packet is read.
func (ss *ServerSession) OnPacketRTP(medi *media.Media, trak format.Format, cb func(*rtp.Packet)) {
func (ss *ServerSession) OnPacketRTP(medi *media.Media, forma format.Format, cb func(*rtp.Packet)) {
sm := ss.setuppedMedias[medi]
st := sm.formats[trak.PayloadType()]
st := sm.formats[forma.PayloadType()]
st.onPacketRTP = cb
}

View File

@@ -192,7 +192,7 @@ func (sm *serverSessionMedia) readRTPUDPRecord(payload []byte) error {
return nil
}
trak, ok := sm.formats[pkt.PayloadType]
forma, ok := sm.formats[pkt.PayloadType]
if !ok {
onDecodeError(sm.ss, fmt.Errorf("received RTP packet with unknown payload type (%d)", pkt.PayloadType))
return nil
@@ -201,7 +201,7 @@ func (sm *serverSessionMedia) readRTPUDPRecord(payload []byte) error {
now := time.Now()
atomic.StoreInt64(sm.ss.udpLastPacketTime, now.Unix())
trak.readRTPUDP(pkt, now)
forma.readRTPUDP(pkt, now)
return nil
}
@@ -271,13 +271,13 @@ func (sm *serverSessionMedia) readRTPTCPRecord(payload []byte) error {
return err
}
trak, ok := sm.formats[pkt.PayloadType]
forma, ok := sm.formats[pkt.PayloadType]
if !ok {
onDecodeError(sm.ss, fmt.Errorf("received RTP packet with unknown payload type (%d)", pkt.PayloadType))
return nil
}
trak.readRTPTCP(pkt)
forma.readRTPTCP(pkt)
return nil
}

View File

@@ -19,10 +19,10 @@ type serverSessionFormat struct {
onPacketRTP func(*rtp.Packet)
}
func newServerSessionFormat(sm *serverSessionMedia, trak format.Format) *serverSessionFormat {
func newServerSessionFormat(sm *serverSessionMedia, forma format.Format) *serverSessionFormat {
return &serverSessionFormat{
sm: sm,
format: trak,
format: forma,
onPacketRTP: func(*rtp.Packet) {},
}
}

View File

@@ -43,20 +43,20 @@ func NewServerStream(medias media.Medias) *ServerStream {
ssm := &serverStreamMedia{}
ssm.formats = make(map[uint8]*serverStreamFormat)
for _, trak := range media.Formats {
for _, forma := range media.Formats {
tr := &serverStreamFormat{
format: trak,
format: forma,
}
cmedia := media
tr.rtcpSender = rtcpsender.New(
trak.ClockRate(),
forma.ClockRate(),
func(pkt rtcp.Packet) {
st.WritePacketRTCP(cmedia, pkt)
},
)
ssm.formats[trak.PayloadType()] = tr
ssm.formats[forma.PayloadType()] = tr
}
st.streamMedias[media] = ssm
@@ -295,9 +295,9 @@ func (st *ServerStream) WritePacketRTPWithNTP(medi *media.Media, pkt *rtp.Packet
sm := st.streamMedias[medi]
trak := sm.formats[pkt.PayloadType]
forma := sm.formats[pkt.PayloadType]
trak.rtcpSender.ProcessPacket(pkt, ntp, trak.format.PTSEqualsDTS(pkt))
forma.rtcpSender.ProcessPacket(pkt, ntp, forma.format.PTSEqualsDTS(pkt))
// send unicast
for r := range st.activeUnicastReaders {