1
0
Fork 0
forked from External/mediamtx

srt, udp: support reading and writing MPEG-1 audio streams (#2147)

This commit is contained in:
Alessandro Ros 2023-08-05 14:47:20 +02:00 committed by GitHub
parent 230ebc6a08
commit 8bb71ac8d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 218 additions and 137 deletions

View file

@ -204,7 +204,7 @@ func (s *udpSource) runReader(pc net.PacketConn) error {
}},
}
r.OnDataMPEG4Audio(track, func(pts int64, _ int64, aus [][]byte) error {
r.OnDataMPEG4Audio(track, func(pts int64, aus [][]byte) error {
stream.WriteUnit(medi, medi.Formats[0], &formatprocessor.UnitMPEG4AudioGeneric{
BaseUnit: formatprocessor.BaseUnit{
NTP: time.Now(),
@ -224,7 +224,7 @@ func (s *udpSource) runReader(pc net.PacketConn) error {
}},
}
r.OnDataOpus(track, func(pts int64, _ int64, packets [][]byte) error {
r.OnDataOpus(track, func(pts int64, packets [][]byte) error {
stream.WriteUnit(medi, medi.Formats[0], &formatprocessor.UnitOpus{
BaseUnit: formatprocessor.BaseUnit{
NTP: time.Now(),
@ -234,11 +234,35 @@ func (s *udpSource) runReader(pc net.PacketConn) error {
})
return nil
})
case *mpegts.CodecMPEG1Audio:
medi = &media.Media{
Type: media.TypeAudio,
Formats: []formats.Format{&formats.MPEG1Audio{}},
}
r.OnDataMPEG1Audio(track, func(pts int64, frames [][]byte) error {
stream.WriteUnit(medi, medi.Formats[0], &formatprocessor.UnitMPEG1Audio{
BaseUnit: formatprocessor.BaseUnit{
NTP: time.Now(),
},
PTS: decodeTime(pts),
Frames: frames,
})
return nil
})
default:
continue
}
medias = append(medias, medi)
}
if len(medias) == 0 {
return fmt.Errorf("no supported tracks found")
}
res := s.parent.setReady(pathSourceStaticSetReadyReq{
medias: medias,
generateRTPPackets: true,