清掉 5 个确认没人调用的遗留函数
staticcheck 的 U1000 一直报这 5 个,逐个核对过引用(含同名方法、测试、字符串调用、反射): - runFFmpeg:runFFmpegWith 的薄包装,没有任何调用点 - isLiveOn(uid int):包级函数没人用,实际在跑的始终是 streamer.isLiveOn() 方法 - quitRecord:需要收尾的地方都直接 updateLiveInfo(..., isRecording = false) - setLiveInfo:整体覆盖 liveInfo,早已被 updateLiveInfo(原地改部分字段)取代 - isRecording(liveID):字段 info.isRecording 到处都在直接用 上一轮那个 jobActive 虽然也是 U1000,但它是「本该接上却漏接」的护栏(接回后 P0 的并发问题才解决),所以这次删之前特意确认这 5 个不是同类情况:它们都有 等价且更合适的现役替代实现。 验证:gofmt -l 空;go vet ./... 空;go build ./... 通过;go test ./... 全绿(11.3s); staticcheck -checks=all 的 U1000 归零。
This commit is contained in:
@@ -933,14 +933,9 @@ func buildEncoders(bitrate int, ffmpegFile string) []videoEncoder {
|
||||
return encoders
|
||||
}
|
||||
|
||||
// 运行 ffmpeg,输出直接透传到控制台
|
||||
// ffmpeg 的进度回调:已输出时长(秒)、实时倍速、帧率、已写出字节
|
||||
type ffmpegProgress func(outSec, speed, fps float64, totalSize int64)
|
||||
|
||||
func runFFmpeg(ffmpegFile string, args []string, dir string) error {
|
||||
return runFFmpegWith(ffmpegFile, args, dir, nil)
|
||||
}
|
||||
|
||||
// 跑一次 ffmpeg。cb 不为空时加 -progress pipe:1 取结构化进度;
|
||||
// ffmpeg 自己的统计行仍在 stderr 里,照旧进日志,单独用命令行时不会少东西。
|
||||
func runFFmpegWith(ffmpegFile string, args []string, dir string, cb ffmpegProgress) error {
|
||||
|
||||
@@ -258,22 +258,6 @@ func getLiveID(uid int) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
// 根据 uid 查看主播是否正在直播
|
||||
func isLiveOn(uid int) bool {
|
||||
liveRooms.RLock()
|
||||
_, ok := liveRooms.rooms[uid]
|
||||
liveRooms.RUnlock()
|
||||
if ok {
|
||||
return true
|
||||
}
|
||||
|
||||
if isLive, room, err := tryFetchLiveInfo(uid); err == nil {
|
||||
defer liveRoomPool.Put(room)
|
||||
return isLive
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// 获取主播直播间的标题
|
||||
func (s *streamer) getTitle() string {
|
||||
return getTitle(s.UID)
|
||||
|
||||
@@ -221,11 +221,6 @@ func stopRecord(uid int) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// 退出直播视频录制相关操作
|
||||
func quitRecord(liveID string) {
|
||||
updateLiveInfo(liveID, func(i *liveInfo) { i.isRecording = false })
|
||||
}
|
||||
|
||||
// 初始化直播视频录制
|
||||
func (s streamer) initRecord(ctx context.Context, liveID, filename string) {
|
||||
defer func() {
|
||||
|
||||
@@ -248,13 +248,6 @@ func getLiveInfo(liveID string) (liveInfo, bool) {
|
||||
return liveInfo{}, false
|
||||
}
|
||||
|
||||
// 将 info 放进 lInfoMap 里
|
||||
func setLiveInfo(info liveInfo) {
|
||||
lInfoMap.Lock()
|
||||
defer lInfoMap.Unlock()
|
||||
lInfoMap.info[info.LiveID] = info
|
||||
}
|
||||
|
||||
// 原地更新 liveInfo 的部分字段,不覆盖其他字段(弹幕和视频录制共用同一个 liveInfo)
|
||||
func updateLiveInfo(liveID string, f func(*liveInfo)) {
|
||||
lInfoMap.Lock()
|
||||
@@ -275,14 +268,6 @@ func isDanmu(liveID string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// 根据 liveID 查询是否正在录制直播视频
|
||||
func isRecording(liveID string) bool {
|
||||
if info, ok := getLiveInfo(liveID); ok {
|
||||
return info.isRecording
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// 跨盘搬运成片时的临时后缀:拷一半失败也能一眼看出不是成品
|
||||
const partSuffix = ".acfunlive.part"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user