fix: 使用上次结束时间戳造成崩溃问题

This commit is contained in:
ydajiang
2025-07-24 20:14:51 +08:00
parent 95925e2778
commit 525911fd9a
3 changed files with 12 additions and 11 deletions

View File

@@ -16,7 +16,7 @@ import (
) )
var ( var (
StreamEndInfoBride func(source string, streams map[TransStreamID]TransStream) *StreamEndInfo StreamEndInfoBride func(source string, originTracks []*Track, streams map[TransStreamID]TransStream) *StreamEndInfo
) )
// Source 对推流源的封装 // Source 对推流源的封装

View File

@@ -18,7 +18,8 @@ func init() {
// 如果重新推流之前陆续有拉流端断开直至sink计数为0删除保存的推流信息。 // 如果重新推流之前陆续有拉流端断开直至sink计数为0删除保存的推流信息。
type StreamEndInfo struct { type StreamEndInfo struct {
ID string ID string
Timestamps map[TransStreamID]map[utils.AVCodecID][2]int64 // 每路track结束时间戳 Timestamps map[TransStreamID]map[utils.AVCodecID][2]int64 // 每个传输流的结束时间戳
OriginTracks map[utils.AVCodecID]interface{} // 原始推流track
M3U8Writer M3U8Writer // 保存M3U8生成器 M3U8Writer M3U8Writer // 保存M3U8生成器
PlaylistFormat *string // M3U8播放列表 PlaylistFormat *string // M3U8播放列表
RtspTracks map[utils.AVCodecID]uint16 // rtsp每路track的结束序号 RtspTracks map[utils.AVCodecID]uint16 // rtsp每路track的结束序号
@@ -26,15 +27,15 @@ type StreamEndInfo struct {
} }
func EqualsTracks(info *StreamEndInfo, tracks []*Track) bool { func EqualsTracks(info *StreamEndInfo, tracks []*Track) bool {
//if len(info.Timestamps) != len(tracks) { if len(info.OriginTracks) != len(tracks) {
// return false return false
//} }
//for _, track := range tracks { for _, track := range tracks {
// if _, ok := info.Timestamps[track.Stream.CodecID]; !ok { if _, ok := info.OriginTracks[track.Stream.CodecID]; !ok {
// return false return false
// } }
//} }
return true return true
} }

View File

@@ -667,7 +667,7 @@ func (t *transStreamPublisher) doClose() {
tracks = append(tracks, track.track) tracks = append(tracks, track.track)
} }
sourceHistory := StreamEndInfoBride(t.source, t.transStreams) sourceHistory := StreamEndInfoBride(t.source, t.originTracks.All(), t.transStreams)
streamEndInfoManager.Add(sourceHistory) streamEndInfoManager.Add(sourceHistory)
} }