mirror of
https://github.com/kerberos-io/agent.git
synced 2026-10-19 17:38:25 +00:00
Update mp4.go
This commit is contained in:
+12
-13
@@ -39,6 +39,7 @@ type MP4 struct {
|
||||
StartPTS uint64
|
||||
VideoTotalDuration uint64
|
||||
AudioTotalDuration uint64
|
||||
AudioPTS uint64
|
||||
Start bool
|
||||
SPSNALUs [][]byte // SPS NALUs for H264
|
||||
PPSNALUs [][]byte // PPS NALUs for H264
|
||||
@@ -215,22 +216,20 @@ func (mp4 *MP4) AddSampleToTrack(trackID uint32, isKeyframe bool, data []byte, p
|
||||
|
||||
if mp4.AudioFullSample != nil {
|
||||
|
||||
SplitAACFrame(mp4.AudioFullSample.Data, func(aac []byte) {
|
||||
duration := pts - mp4.AudioFullSample.DecodeTime
|
||||
fmt.Printf("Adding sample to track %d, PTS: %d, Duration: %d, size: %d\n", trackID, pts, duration, len(aac[7:]))
|
||||
mp4.AudioTotalDuration += duration
|
||||
mp4.AudioFullSample.Data = aac[7:] // Remove the ADTS header (first 7 bytes)
|
||||
mp4.AudioFullSample.DecodeTime = mp4.AudioTotalDuration - duration
|
||||
mp4.AudioFullSample.Sample.Dur = uint32(duration)
|
||||
mp4.AudioFullSample.Sample.Size = uint32(len(aac[7:]))
|
||||
err := mp4.AudioFragment.AddFullSampleToTrack(*mp4.AudioFullSample, trackID)
|
||||
if err != nil {
|
||||
log.Printf("Error adding sample to track %d: %v", trackID, err)
|
||||
}
|
||||
})
|
||||
dts := pts - mp4.AudioFullSample.DecodeTime
|
||||
fmt.Printf("Adding sample to track %d, PTS: %d, Duration: %d, size: %d\n", trackID, pts, 21, len(mp4.AudioFullSample.Data))
|
||||
mp4.AudioTotalDuration += 21
|
||||
mp4.AudioPTS += dts
|
||||
mp4.AudioFullSample.DecodeTime = mp4.AudioPTS - dts
|
||||
mp4.AudioFullSample.Sample.Dur = uint32(21)
|
||||
err := mp4.AudioFragment.AddFullSampleToTrack(*mp4.AudioFullSample, trackID)
|
||||
if err != nil {
|
||||
log.Printf("Error adding sample to track %d: %v", trackID, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Set the sample data
|
||||
//flags := uint32(33554432)
|
||||
var fullSample mp4ff.FullSample
|
||||
fullSample.DecodeTime = pts
|
||||
fullSample.Data = data
|
||||
|
||||
Reference in New Issue
Block a user