mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-25 12:32:01 -08:00
* split data into specialized structs * move MPEG4-audio decoding into streamTrack * restore video/audio synchronization in HLS muxer and RTMP server * log decode errors * move H264 decoding and re-encoding here from gortsplib * add tests * update gortsplib
27 lines
612 B
Go
27 lines
612 B
Go
package core
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/aler9/gortsplib"
|
|
)
|
|
|
|
type streamTrack interface {
|
|
onData(data, bool) error
|
|
}
|
|
|
|
func newStreamTrack(track gortsplib.Track, generateRTPPackets bool) (streamTrack, error) {
|
|
switch ttrack := track.(type) {
|
|
case *gortsplib.TrackH264:
|
|
return newStreamTrackH264(ttrack, generateRTPPackets), nil
|
|
|
|
case *gortsplib.TrackMPEG4Audio:
|
|
return newStreamTrackMPEG4Audio(ttrack, generateRTPPackets), nil
|
|
|
|
default:
|
|
if generateRTPPackets {
|
|
return nil, fmt.Errorf("we don't know how to generate RTP packets of track %+v", track)
|
|
}
|
|
return newStreamTrackGeneric(), nil
|
|
}
|
|
}
|