diff options
Diffstat (limited to 'mkvlib')
| -rw-r--r-- | mkvlib/ass.go | 16 | ||||
| -rw-r--r-- | mkvlib/c/exports.go | 4 | ||||
| -rw-r--r-- | mkvlib/mkv.go | 6 | ||||
| -rw-r--r-- | mkvlib/shared.go | 2 |
4 files changed, 21 insertions, 7 deletions
diff --git a/mkvlib/ass.go b/mkvlib/ass.go index 826c484..f7c195c 100644 --- a/mkvlib/ass.go +++ b/mkvlib/ass.go @@ -98,8 +98,8 @@ func (self *assProcessor) parse() bool { ec++ } else { data, err := io.ReadAll(f) - str := toUTF8(data) if err == nil { + str := toUTF8(data) self.subtitles[file] = str } else { ec++ @@ -108,6 +108,7 @@ func (self *assProcessor) parse() bool { if ec > 0 { printLog(self.lcb, `Failed to read the ass file: "%s"`, file) } + _ = f.Close() } if ec == 0 { opt := parser.SSAOptions{} @@ -194,7 +195,7 @@ func (self *assProcessor) parse() bool { if ___reg.MatchString(v) { v += "0123456789" } - v += "\u0020\u00a0" + v += "a\u0020\u00a0" self.m[k] = new(fontInfo) self.m[k].runes = []rune(v) self.m[k].oldName = strings.Split(k, "^")[0] @@ -376,8 +377,12 @@ func (self *assProcessor) checkFontMissing(f *fontInfo, i int, c bool) bool { } } } + } else { + return false } } + } else { + return false } h := "N" if c { @@ -886,7 +891,12 @@ func (self *assProcessor) matchCache(k, o string) (string, int) { names := self.getFontName(v.File) if len(names) > 0 { _count++ - if !self.checkFontMissing(self.m[o], _count, true) && self.strict { + f := new(fontInfo) + f.oldName = _k[0] + f.file = ok + f.index = i + f.runes = self.m[o].runes + if !self.checkFontMissing(f, _count, true) && self.strict { ok = "" i = 0 continue diff --git a/mkvlib/c/exports.go b/mkvlib/c/exports.go index d52e6f6..b24b345 100644 --- a/mkvlib/c/exports.go +++ b/mkvlib/c/exports.go @@ -124,11 +124,11 @@ func MakeMKVs(dir, data, output, slang, stitle *C.char, lcb C.logCallback) bool } //export A2P -func A2P(a2p, apc bool, pr, pf string) { +func A2P(a2p, apc bool, pr, pf *C.char) { if !checkInstance() { return } - getter.GetProcessorInstance().A2P(a2p, apc, pr, pf) + getter.GetProcessorInstance().A2P(a2p, apc, gs(pr), gs(pf)) } //export GetFontsList diff --git a/mkvlib/mkv.go b/mkvlib/mkv.go index 6ec8931..ca6a083 100644 --- a/mkvlib/mkv.go +++ b/mkvlib/mkv.go @@ -424,9 +424,13 @@ func (self *mkvProcessor) CreateBlankOrBurnVideo(t int64, s, enc, ass, fontdir, t = new(assProcessor).getLength(ass).Milliseconds() fontdir = strings.ReplaceAll(fontdir, `\`, `/`) fontdir = strings.ReplaceAll(fontdir, `:`, `\\:`) + fontdir = strings.ReplaceAll(fontdir, `[`, `\[`) + fontdir = strings.ReplaceAll(fontdir, `]`, `\]`) ass = strings.ReplaceAll(ass, `\`, `/`) ass = strings.ReplaceAll(ass, `:`, `\\:`) - args = append(args, "-vf", fmt.Sprintf("subtitles=%s:fontsdir=%s", ass, fontdir)) + ass = strings.ReplaceAll(ass, `[`, `\[`) + ass = strings.ReplaceAll(ass, `]`, `\]`) + args = append(args, "-vf", fmt.Sprintf(`subtitles=%s:fontsdir=%s`, ass, fontdir)) } if s == "" { if t > 0 { diff --git a/mkvlib/shared.go b/mkvlib/shared.go index b76b3ac..05b964d 100644 --- a/mkvlib/shared.go +++ b/mkvlib/shared.go @@ -11,7 +11,7 @@ import ( ) const libName = "mkvlib" -const libVer = "v1.9.3" +const libVer = "v1.9.7" const LibFName = libName + " " + libVer |
