mirror of
https://github.com/Monibuca/plugin-ffmpeg.git
synced 2025-09-26 21:01:16 +08:00
更新 ffmpeg 库搜索范围
This commit is contained in:
42
main.go
42
main.go
@@ -5,6 +5,7 @@ import (
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"runtime"
|
||||
"strings"
|
||||
|
||||
"github.com/dwdcth/ffmpeg-go/v6/ffcommon"
|
||||
"go.uber.org/zap"
|
||||
@@ -54,7 +55,7 @@ func SetAvLib() error {
|
||||
searchDirs = append(searchDirs, ".", "/usr/local/lib", "/usr/lib", "/usr/lib/x86_64-linux-gnu")
|
||||
}
|
||||
|
||||
for _, dir := range searchDirs {
|
||||
for i, dir := range searchDirs {
|
||||
var founds int
|
||||
for k, f := range fnMap {
|
||||
var exp *regexp.Regexp
|
||||
@@ -66,19 +67,38 @@ func SetAvLib() error {
|
||||
default:
|
||||
exp = regexp.MustCompile(k + `(\.\d+)?\.so`)
|
||||
}
|
||||
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
|
||||
FFmpegPlugin.Debug("search lib", zap.String("path", path))
|
||||
if err != nil {
|
||||
FFmpegPlugin.Error("search lib error", zap.Error(err))
|
||||
if i == 0 {
|
||||
filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
|
||||
if strings.HasPrefix(path, ".git") {
|
||||
return nil
|
||||
}
|
||||
FFmpegPlugin.Debug("search lib", zap.String("path", path))
|
||||
if err != nil {
|
||||
FFmpegPlugin.Error("search lib error", zap.Error(err))
|
||||
return nil
|
||||
}
|
||||
if !info.IsDir() && exp.MatchString(info.Name()) {
|
||||
FFmpegPlugin.Info("load lib", zap.String("path", path))
|
||||
f(path)
|
||||
founds++
|
||||
}
|
||||
return nil
|
||||
})
|
||||
} else {
|
||||
// 遍历一层目录
|
||||
files, err := os.ReadDir(dir)
|
||||
if err != nil {
|
||||
FFmpegPlugin.Error("read dir error", zap.Error(err))
|
||||
continue
|
||||
}
|
||||
if !info.IsDir() && exp.MatchString(info.Name()) {
|
||||
FFmpegPlugin.Info("load lib", zap.String("path", path))
|
||||
f(path)
|
||||
founds++
|
||||
for _, file := range files {
|
||||
if !file.IsDir() && exp.MatchString(file.Name()) {
|
||||
FFmpegPlugin.Info("load lib", zap.String("path", filepath.Join(dir, file.Name())))
|
||||
f(filepath.Join(dir, file.Name()))
|
||||
founds++
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
}
|
||||
if founds == libNum {
|
||||
return nil
|
||||
|
Reference in New Issue
Block a user