清掉 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:
tamakyi
2026-09-26 09:37:11 +08:00
parent 8e82aa54c6
commit 9684346067
4 changed files with 0 additions and 41 deletions
-5
View File
@@ -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 {
-16
View File
@@ -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)
-5
View File
@@ -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() {
-15
View File
@@ -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"