mirror of
https://github.com/Monibuca/plugin-record.git
synced 2025-12-24 13:07:51 +08:00
fix: stop subscribe when error
This commit is contained in:
4
hls.go
4
hls.go
@@ -72,7 +72,7 @@ func (h *HLSRecorder) OnEvent(event any) {
|
||||
ProgramClockReferenceBase: uint64(v.DTS),
|
||||
}
|
||||
h.WriteAudioFrame(v, pes)
|
||||
h.BLL.WriteTo(h.File)
|
||||
_, err = h.BLL.WriteTo(h.File)
|
||||
h.Recycle()
|
||||
h.Clear()
|
||||
h.audio_cc = pes.ContinuityCounter
|
||||
@@ -87,7 +87,7 @@ func (h *HLSRecorder) OnEvent(event any) {
|
||||
if err = h.WriteVideoFrame(v, pes); err != nil {
|
||||
return
|
||||
}
|
||||
h.BLL.WriteTo(h.File)
|
||||
_, err = h.BLL.WriteTo(h.File)
|
||||
h.Recycle()
|
||||
h.Clear()
|
||||
h.video_cc = pes.ContinuityCounter
|
||||
|
||||
8
mp4.go
8
mp4.go
@@ -80,11 +80,15 @@ func (r *MP4Recorder) OnEvent(event any) {
|
||||
} else {
|
||||
audioData = util.ConcatBuffers(append(net.Buffers{v.ADTS.Value}, v.AUList.ToBuffers()...))
|
||||
}
|
||||
r.Write(r.audioId, audioData, uint64(v.AbsTime+(v.PTS-v.DTS)/90), uint64(v.AbsTime))
|
||||
if err = r.Write(r.audioId, audioData, uint64(v.AbsTime+(v.PTS-v.DTS)/90), uint64(v.AbsTime)); err != nil {
|
||||
r.Stop(zap.Error(err))
|
||||
}
|
||||
}
|
||||
case VideoFrame:
|
||||
if r.videoId != 0 {
|
||||
r.Write(r.videoId, util.ConcatBuffers(v.GetAnnexB()), uint64(v.AbsTime+(v.PTS-v.DTS)/90), uint64(v.AbsTime))
|
||||
if err = r.Write(r.videoId, util.ConcatBuffers(v.GetAnnexB()), uint64(v.AbsTime+(v.PTS-v.DTS)/90), uint64(v.AbsTime)); err != nil {
|
||||
r.Stop(zap.Error(err))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
9
raw.go
9
raw.go
@@ -1,6 +1,7 @@
|
||||
package record
|
||||
|
||||
import (
|
||||
"go.uber.org/zap"
|
||||
. "m7s.live/engine/v4"
|
||||
"m7s.live/engine/v4/codec"
|
||||
"m7s.live/engine/v4/track"
|
||||
@@ -71,10 +72,14 @@ func (r *RawRecorder) OnEvent(event any) {
|
||||
r.AddTrack(v)
|
||||
case AudioFrame:
|
||||
r.Recorder.OnEvent(event)
|
||||
v.WriteRawTo(r)
|
||||
if _, err := v.WriteRawTo(r); err != nil {
|
||||
r.Stop(zap.Error(err))
|
||||
}
|
||||
case VideoFrame:
|
||||
r.Recorder.OnEvent(event)
|
||||
v.WriteAnnexBTo(r)
|
||||
if _, err := v.WriteAnnexBTo(r); err != nil {
|
||||
r.Stop(zap.Error(err))
|
||||
}
|
||||
default:
|
||||
r.IO.OnEvent(v)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user